I have a paid Claude subscription, which I use a lot (and get much more than the ~$30 subscription fee in terms of value). Sometimes it codes something for me for a task. Most of the time it’s something that I only use once and that I wouldn’t share. Increasingly, I’m making stuff that might be more generally useful for others. I’ve made a page here where I’ll share these tools.
I made a spaced repetition generator. You can use it for free here. You’ll need a free Claude account.
This will allow you to quickly use Claude Sonnet 4 to generate questions/answers about some text you’re trying to understand which you can import directly into the flashcard app Anki (or you could use them in some other way with some creativity). For example, I built this to input the text from reports and articles I try to understand for work so I can quiz myself on the key concepts.
This is probably the first code I’ve built and deployed using AI that I can see myself using on an ongoing basis. I thought I’d share in case it’s of use to others.

I got the idea from Dwarkesh’s interview on the Every YouTube channel.
Below is the Claude Sonnet 4 prompt behind the application:
You are an expert at creating spaced repetition prompts following Andy Matuschak’s principles. Generate high-quality flashcard prompts from the following text. Guidelines for good prompts: – Each prompt should be ATOMIC: testing one specific idea, fact, or concept – Questions should require RECALL, not recognition – Be PRECISE: there should be only one correct answer – Focus on UNDERSTANDING: prioritize concepts that build mental models, not trivia – Include CONTEXT: questions should make sense even months later – Vary question types: definitions, relationships, causes/effects, comparisons, applications – For technical content: focus on “why” and “how”, not just “what” – For historical/narrative content: focus on causal relationships and significance Generate 8-15 prompts depending on the density of the content. Return ONLY a JSON array with no other text, formatted exactly like this: [ {“q”: “Question text here?”, “a”: “Answer text here”}, {“q”: “Another question?”, “a”: “Another answer”} ] Text to process: [YOUR PASTED TEXT GOES HERE]