Frequently Asked Questions

Common questions about Bitwit

Getting Started

What is Bitwit?

Bitwit is a learning tool that uses spaced repetition to help you get comfortable with theoretical computer science. Cards are scheduled based on how well you know them; things you struggle with appear more often, things you know well appear less frequently.

What topics does Bitwit cover?

Bitwit focuses on theoretical foundations: Lambda Calculus, Boolean Logic, Propositional Logic, Predicate Logic, Lisp, and more. This isn't interview prep or LeetCode. It's the theoretical foundation that makes the rest of CS easier.

View the curriculum to see all available subjects and card counts.

Do I need an account to try it?

No. The first topic of each subject is free and doesn't require an account. Your progress is saved locally in your browser. If you want to sync across devices or access all content, you can create an account and subscribe.

How much time does it take?

Most people do 10-20 minutes per day. Consistency matters more than session length. The spaced repetition algorithm spreads your reviews out over time, so you're not cramming.

Learning & Cards

What makes the questions "parameterized"?

Cards generate with different values, and sometimes different structures, each time you see them. For example, a beta reduction card might show:

Day 1: "Reduce (λx.λy.x) a b"
You think: apply a to get λy.a, then apply b to get a.

Day 2: "Reduce (λf.f (f z)) (λx.x)"
Now you think: substitute identity for f, get (λx.x) ((λx.x) z), reduce inner application to z, then outer to z.

Same concept, but the structure changes. You can't memorize the answer; you have to actually work through the reduction each time. That's what builds real fluency.

Are these cards created using AI?

Mostly. The original set were authored by hand, but that turned out to be unscalable (at least for me). So now I use AI to help generate cards, then review and refine them for accuracy and quality.

I understand concerns about AI-generated content. Hopefully, using AI to generate questions about science and mathematics—questions that will be reused by many people—is a morally permissible use of the technology.

Why not just use Anki?

Anki is excellent! I use it myself. But for mathematical and logical processes, traditional flashcards have a limitation: they show you one example of a problem, and you tend to memorize the connection between that specific input and output without reliably internalizing the process itself.

Bitwit's parameterized cards show you the same concept with different inputs each time. You can't pattern-match your way through; you have to actually perform the reduction, apply the rule, or work through the logic. That's what makes it stick.

What if I get stuck?

Every card shows an explanation after you answer. If you're struggling with a card, the algorithm will show it more frequently until you master it. You can also mark a card as "Again" to see it again soon.

Why theory instead of practical programming?

The goal is getting comfortable with the ideas that all of computer science is built on. When the basics are second nature, advanced ideas become obvious.

How many cards should I review per day?

That's up to you and depends on your goals. The algorithm schedules your review cards automatically; these are cards you've seen before that are due for reinforcement. You control how many new cards to introduce each day (5-20) in Settings.

A typical session runs 10-20 minutes. If reviews are piling up and feeling overwhelming, try "Breather Mode" in Settings to pause new cards and focus on catching up.

Why is the new cards limit capped at 20?

Every new card you learn today becomes a review card tomorrow, and again in a few days, and again next week. Adding too many new cards creates a review avalanche that's hard to dig out of.

20 new cards per day is already aggressive—that's 600 new cards per month! Most people do better with 10-15. The goal is sustainable learning, not a sprint that burns you out.

What if I miss a day (or a week)?

Life happens. When you come back, you'll have a backlog of reviews. The algorithm doesn't penalize you. It just reschedules cards based on when you actually review them. Use Breather Mode to pause new cards while you catch up, then resume when you're ready.

Isn't this just memorization?

I think of it as compression rather than rote memorization—a process of internalizing the invariants, the patterns and structures that underlie the specific examples. By seeing many variations on a concept, you build a mental model that lets you reconstruct the details as needed.

What supplies do I need? Paper, pen...

Just your brain and a modern web browser. You should be able to solve problems mentally, without writing things down. If you find yourself needing scratch paper, you might be trying to learn too much at once. Try reducing the number of new cards per day in Settings.

Whatever pace lets you do the work mentally and comfortably is the right pace. That may vary from person to person, day to day, hour to hour. Adjust as needed and be kind to yourself.

Can I create my own cards?

Not currently. Bitwit's cards are parameterized and validated, which requires careful authoring. I'm focused on building high-quality curated content rather than user-generated cards. For custom flashcards, Anki is excellent.

Account & Billing

What's free vs paid?

Boolean Logic and Lambda Calculus are completely free — over 700 cards covering the foundations of logic and computation, with no restrictions. You also get the first topic of every other subject to sample before subscribing.

A subscription unlocks all topics across all subjects, plus any new content as it's released.

Can I cancel anytime?

Yes. Cancel from your account settings at any time. You keep access until the end of your billing period, then revert to the free content. Your progress is preserved.

What payment methods are accepted?

Visa, Mastercard, and American Express through Stripe.

Is there a refund policy?

If you're not satisfied within 30 days, email me for a full refund. No questions asked.

What if my payment fails or I can't renew?

I don't want a tough month to derail your learning. If your subscription lapses, you get a grace period where you can continue reviewing cards you've already unlocked. You just won't unlock new ones until you resubscribe.

Your progress is never deleted. If you come back months later, everything is still there. Life happens; I'm not going to punish you for it.

Do you offer lifetime access?

Not currently. I'd love to someday, but I don't want to sell a "lifetime" promise before I know I can hold up my end of it. Bitwit is new, and selling lifetime access from day one would feel a bit like a grift.

If I'm still here in a few years and have proven this is sustainable, I'll revisit lifetime pricing. For now, yearly subscriptions are easy to reason about for both of us: you get a year of access, I get a year of runway. Fair trade.

Technical

What devices work?

Bitwit works in any modern browser on desktop, tablet, or phone. If you have an account, your progress syncs automatically.

Is there a mobile app?

No. This is a web app designed to work well on mobile browsers.

Is my data secure?

Yes. See the security section below for details, or read the Privacy Policy.

Is Bitwit open source?

Not yet. I'd like to open-source it eventually, but I'm not ready to commit to maintaining a public codebase while also building the product.

That said: if I ever shut down Bitwit or can no longer maintain it, the source code will be released so others can run it themselves or build on it. Your learning shouldn't die with me.

Security & Privacy

How does Bitwit run card code safely?

Every flashcard contains small JavaScript functions that generate unique question variants and validate your answers. This code runs in a sandboxed iframe with an opaque origin—it cannot access the main page, your cookies, localStorage, or any stored tokens.

Inside that sandbox, a strict Content Security Policy blocks all network requests: no fetch, no XHR, no WebSockets, no image loads, no form submissions. The card code literally cannot talk to the outside world. It communicates with the main page only through structured messages with correlated IDs.

If card code hangs (e.g., an accidental infinite loop), a timeout destroys and recreates the sandbox automatically.

How is card content sanitized?

All card content passes through DOMPurify before rendering. Only a strict allowlist of HTML tags and attributes is permitted. Script tags, event handlers, and dangerous URI schemes are all stripped. This is a separate layer from the code sandbox—even if a card's display text contained malicious markup, it would be neutralized before reaching the page.

How is authentication handled?

Authentication uses AWS Cognito with the Secure Remote Password (SRP) protocol, which means your password never leaves your browser in plaintext. Passwords must be at least 8 characters with uppercase, lowercase, numbers, and symbols. Optional two-factor authentication (TOTP) is supported via authenticator apps.

Signup is protected by Cloudflare Turnstile (a CAPTCHA alternative) plus a honeypot field to block automated account creation.

What about HTTPS and transport security?

All connections are encrypted with TLS 1.2+. HTTP requests are automatically redirected to HTTPS. HSTS headers instruct browsers to always use HTTPS for all Bitwit domains, including subdomains.

What data do you collect?

Your email, learning progress (card reviews, scheduling data), and subscription status. Payment details are processed by Stripe—I never see or store your full card number.

There are no third-party analytics or tracking scripts on Bitwit. No Google Analytics, no Mixpanel, no Hotjar, no tracking pixels. Standard server logs record IP addresses and browser types as part of normal infrastructure operations, but these are not used for behavioral tracking or shared with anyone.

See the Privacy Policy for the complete picture.

What other protections are in place?

A site-wide Content Security Policy restricts which domains can serve scripts, make network requests, or embed Bitwit in a frame. Additional headers prevent clickjacking (X-Frame-Options), MIME-type sniffing (X-Content-Type-Options), and referrer leakage (Referrer-Policy). All API inputs are validated server-side, and Stripe webhooks are verified using cryptographic signatures.

Still Have Questions?

Email me at support@bit-wit.com. I read everything and respond personally.

Or check out the Less-Frequently Asked Questions for the answers nobody needed.

Give It a Try

The first topic is free—no account required.

Start Learning