7 months ago, I shared a prototype of Janus, an automated flashcard generator that I work full-time on. I want to first thank you all for both your support and feedback; it has buoyed my spirits and made this journey incredibly rewarding.
In my original post, I focused solely on the question 'how do we get targeted and well phrased flashcards?'. However, I have realized that the fundamental problem my tool is trying to solve is far more broad: How quickly can you go from "I want to remember this fact" to having flashcards in your memory system?
In this post I want to share with you 2 iterations on Janus that have tried to get closer to answering this question.
I'd love to hear your thoughts on this direction. I know AI flashcard generation is not for everyone, but I am convinced it can be a valuable part of Anki power user's toolset.
Iteration 1: Highlight Centric Pipelines
The most common architecture of flashcard generator is "text-centric"; flashcards are generated from a block of text but are not grouped by location or source position. A variation of this may use citations to link content from the card to particular parts of the original material, but the grouping of cards is still at the document level.
Where interests are dense, this works well: the AI can make cards on everything and that will still align with what the user wants. This is often the case for medicine or law, where the professor says "you need to know this all for the exam".
But what about knowledge-workers? They are digesting and skimming more content but choosing to remember a sparse subset: a stat here, a quote there. If the flashcard generator were to produce cards naively on everything, you can imagine how many irrelevant prompts would be written.
I saw some very interesting experimental prototypes at the start of this year (By Dwarkesh and By Zander) that share a common perspective: that flashcards should be made from highlights.
This is compelling because:
- Highlights are effective proxies for personal relevance: they are an annotation that says "I think this is important".
- Highlights are natural inputs to a flashcard writing algorithm: smaller input chunks allow models to focus more and to expend more reasoning tokens per flashcard.
A "highlight-centric" approach is compatible with dense material too. Instead of needing to manually make the highlights, you can ask the AI to do it for you, and it will partition notes into focused segments covering exactly the same ground. Highlights 'group' relevant and contiguous text together, similarly to the role of a paragraph.
In Janus, every card is associated with a highlight/section of the text. There are two core AI operations: "highlight" - that identifies useful spans of text to turn into sections - and "write cards" - that takes a section and makes additional cards for it. The pipeline then joins the highlight step with the write step.
Iteration 2: Flashcard Inbox
There are overlooked costs to using AI flashcard generators. This lost time has the potential to undermine the claimed time-savings of AI generation.
I traced through each step of Janus on an example text - the first paragraph from the Catholic Church's wikipedia page:
- Upload the text: 15 seconds
- Wait for Upload: 5 seconds
- Trigger the flashcard generator: 5-20 seconds depending on whether you add a prompt
- Wait for the generator to complete: 15-60 seconds
- Review Output: ~5 seconds per card on average, calculated by measuring the time between the previous stage and the next stage, divided by the number of cards
- Export Deck: 15 seconds
This comes out to approximately 2 minutes + 5 seconds per card Given that it takes about 15-45 seconds to write a flashcard, any text yielding below 5 flashcards is not worth putting through the generator. For reference, when I ran this workflow on the catholic church paragraph, I got 13 cards in 2 minutes 21 seconds, including deleting 2 of those cards and editing 1.
Is it also possible to make AI flashcard generation worth the time for smaller sized decks? Say even 1 card (like a quote)? We would need to eliminate the high overhead costs of running the tool.
In iteration 2, I introduced the "flashcard inbox" view. Instead of actively waiting to 1) upload 2) generate, you can make a single request and come back to an inbox with cards ready to review. Although the total time required to complete the entire pipeline hasn't changed, you don't need to idly wait. You can fire the request, forget, and come back later. This effectively eliminates the waiting time - and required attention - from our calculation: the tool requires now approximately 1 minute + 5 seconds per card of active time (on the Catholic Church example, it took me 49 seconds)
Crucially, this new workflow only works if the review step is lightning fast and we aren't sneakily shifting the 'waiting time' into 'tedious review time.' The Inbox acts as a triage system. Cards are grouped by their source highlight and densely packed. You can rapidly scan, edit, or delete cards in bulk. It’s designed for quick verification, not deeply involved editing.
The Future
These workflows are still very experimental. But my hunch is that they are the starting point for going below "1 minute" workflows. If you could highlight a tweet or a paragraph in your notes and send it directly to an inbox, the highest friction part of the process - uploading - disappears entirely.
What do you think
I really like this! But one question that applies to almost all AI tools: How do you make sure the cards it produces are accurate? You'd have to go double-check the cards with the source right? (which wouldn't take much longer than making a card)
Couple things:
1) Cards are always generated from source material and so the AI is analysing more than it is synthesing. For example, if a paragraph introduced a term with a definition, there would be a card asking you what the definition of that term is, and the definition should be pretty close to verbatim what was in the text. This makes it far more accurate than if you asked it to make flashcards on topic X without grounding it in a document.
2) Cards are grouped and placed next to the highlight they are based off of. This makes the review time much shorter.
Perfect, thanks!
kinda random but I really like the design :)
https://preview.redd.it/wmnfp49xws4g1.png?width=2820&format=png&auto=webp&s=cec19fbc14d596185327dfe4ab276ee3840cbf80
Not random! Thank you for sharing the love back.
When I started I had no experience at all designing. Janus was a desktop app as an early prototype (bad idea for sure) and looked like this. So means a lot to hear you like the design!
And I hope it gets even better
<333
I gave it a go and it seems quite promising. It does give me more trust in using AI generated flashcards.
I noticed though that the cards are written in English, even though the source is written in Dutch. Are other languages not supported (yet)?
To guarantee the language, you can add in the request "Make sure cards are in Dutch".
The auto-language detection should happen automatically but I think its a little hit and miss at the moment but I am trying to make it more reliable.
Adding language selection (like a dropdown) is also on the road map :)
This is really cool, will definitely be trying it out. Do you have any thoughts on a workflow for podcasts? They're a big source of cards for me, and my current workflow is really tedious.
I definitely do! Here are a couple options:
1) Upload the Youtube edition of the Podcast: Janus will transcribe it for you. You can then either ask for specific sections or you can read the transcript, highlight the points of interest and then turn those into flashcards.
2) Snipd + Readwise: If you have a snipd membership, you can sync those podcast highlights to Readwise. Then Janus has a Readwise integration that allows you to upload the highlights, and therefore make flashcards from that. You can alternatively sync your snipd highlights to a PKM app like Obsidian and then copy and paste these into Janus as text.
3) (Soon) Podcast support: Basically the same as (1) except you can put in the podcast url (spotify or apple podcasts) and it will pull the transcription for you.
I would love to discuss with you your current workflow and needs, and maybe can give advice or tweak the tool for you. Can do that on the Discord server: https://discord.gg/VCtEDAu9Ss
That's fantastic!
I'll give it a try and also hop in the discord when I have some time.
How do the cards appear in my deck? I need to manually import them? It would be fantastic if the "user approved" generated cards get synced to my target deck automatically.
This is a tool made especially for Anki users, so no need to migrate; you still rehearse in your favorite SRS app.
To export the decks you make to Anki, you can either
- export as an .apkg file (and then click and import into Anki once it;s in your downloads)
- or setup Anki Connect so that you can send the cards directly to a target deck!
Here is some documentation: https://docs.janus.cards/workflow/export/integrations/anki
Ah oki ankiconnect, thank you. I agree completely with the inbox logic. Good job overall!
[removed]
Thank you!
And not the whole journey, but just the start ;)
Exciting stuff :)
I tried giving it a shot, and I know someone mentioned it already, but it really struggles with language learning material. I do see a lot of potential with this. I plan to give some medical school material a shot and see how it works. Thanks for all the work you put into this!
Hi! I really liked the highlight approach, because this is how I usually study: I read, highlight, then make my cards manually based on what I marked as important. It would be so helpful to have an AI tool that could actually make good cards for dense topics like history. I appreciate you working on this. 🙏🏻
Thank you! What type of material are you reading? Web articles, textbooks, physical books? I wanted to work on a web clipper tool that you could use to highlight web pages and have each highlight automatically turned to flashcards ready for review in the inbox. Does that sound interesting to you?
Usually it's pdf documents that professors send us, sometimes it's webpages. Sure! I think it would be nice that we could edit and highlight text ourselves too. 🙏🏻
commenting so i can see the development of this! such an awesome tool for graduate students. and med students who have hundreds of slides worth of material. i tried a long time ago to use AI cards for months it just would just hallucinate all the time. Hope this project works out well!
Great work!
I have been using LLM-based flashcard creation since GPT-4 came out and have been thinking about making an app around it since.
Congrats you actually executed the idea!
Really insightful, enjoyed reading this. Thanks for the thoughtful approach.
Quick q, do you see a future for SAAS software like this?
It looks like you've made a nice UI over a fine tuned prompt to generate anki cards. The UI can show cards side-by-side with the original content.
Is there more to it than that?
I'm asking because I can vibe code something like this very quickly, I'm sure not as polished, but probably 60% of the way there, but very usable.
Thoughts?
As far as trying to cut time out of creating cards? I'm not really sure the economy there makes sense because the time spent creating cards is learning time.
I'm looking at AI to aid in the learning process by creating a tutor that engages me and asks me to teach it the subject a la socratic method. I feel that's a better use of AI, and generating cards out the other end is fairly trivial.
Its a great question.
From a feature perspective, there is more to Janus than UI and a prompt:
- support and processing for a wide set of material including PDF, Webpages, Youtube, Audio, Video, Readwise
- ability to highlight the document manually and get cards for those individual highlights
- ability to create, save and reuse prompts to create flashcards and also to edit a single card (like "Convert Q&A to Cloze")
- Soon: can choose your LLM, web clipper suport, auto image occlusion.
From the business perspective, yes I think you could create something with a few of these features using vibe coding but: a) you'll get something with far fewer features and at a lower quality b) you will have sunk time into the project and money on vibe coding tools. Let's say conservatively 5-10 hours of your time. That probably comes out to maybe $100 dollars to create the tool, but you still need to pay for the AI credits to run it. SaaS offers a better tool at a smaller additional cost (less than $100 margin)
---
To your second question, it really depends on your learning process. For medics for example, the information is not hard to understand per-se but it just has to be downloaded into their brains and practicing/testing yourself with flashcards does a great job at that.
When I learn, I spend an hour writing questions I have, research with Google and ChatGPT and compiling answers as a set of notes in Obsidian. I then want to commit this to memory so I upload the markdown file to Janus (along with a saved prompt), and get about 50 cards to practice with.
Those cards are essentially a translation of my notes. The learning happened when I wrote the notes and any additional time it would have cost me to make those cards wouldn't have helped me "learn" anything more.
this sounds like a really interesting project. it would be cool to see how AI can simplify flashcard creation while ensuring quality. I'm curious about the feedback loop for improving the accuracy of the generated cards over time.
Do you mean potential ways the platform could personalize and improve card quality based individual and aggregate feedback?
I see a few possible futures routes (not mutually exclusive):
- Training models based on the signals like deleted vs exported cards vs edit cards
- Using the user's existing decks to avoid duplicates, to know what topics they are interested in (and not interested in), and to guage the style and wording they prefer
Congratulations on the work. I did some superficial tests and was intrinsically curious about decoding the content. I saw that the AI pre-selects the content, on the front the user sees a part of the text with a highlighter. How did you decode the content?
In English: Congratulations on your work. I ran some superficial tests and became intrinsically curious about how the content is decoded. I saw that the AI preselects the content, and on the front end, the user sees part of the text highlighted. How does this decoding work?
Thank you!
What do you mean by decoding? Every document is first converted to text and then I use an LLM call to select text worth turning to flashcards.
Pt-Br: This "encoding" would be the "highlights text," which prompts the LLM to use and focus on the construction of the cards. This is one of the interesting parts of your proposal that differentiates it from NotebookLM, as NotebookLM does not allow us to demarcate in such a subtle way which part of the text it should focus on.
English: This "encoding" would be the "highlights text," which prompts the LLM to use and focus on the construction of the cards. This is one of the interesting parts of your proposal that differentiates it from NotebookLM, as NotebookLM does not allow us to mark which part of the text it should focus on.
So to get the model to actually highlight text for you is quite difficult (probably simplest is just ask it to give the text verbatim and then search, but there are some other tricks too). Fine tuning models to do this probably is the future.
Then for giving this test to the models, I show the highlight + a window of text before and after so it can see the context
There is no free version ?
Someone has to pay for the AI sadly. Soon I should have support for some of the free models but they aren’t that good.
Looks promising but when I attempted to utilize it to make me some medical flashcards from notes, it don’t really make the cards atomic and just seemed to cluster all the information into one big card. Secondly it just basically rewrite the card instead of rewording complex medical jargon.
That does sound disappointing and a little suprising.
Can we connect on the discord and see what ways we can get better cards for you (probably prompting both the highlighter and the flashcard writer)?
https://discord.gg/c5QhK7SkzT
Private message me here and I’m just driving home from the gym and maybe we can connect on discord within the next 30 minutes?
https://preview.redd.it/786ybvyp5nag1.png?width=2044&format=png&auto=webp&s=ca83902c1832c5d3e4af0b9d0cd9c504068e49dd
Tried to create a deck by copying the URL from a quizlet and got this message. How do I fix it because I do not see a "challenge" below?
I’m not super familiar with quizlet. Isn’t it a flashcard ecosystem? Presumably you would want a Quizlet -> Anki converter?
The website looks like it is protected by Captcha which I don’t think Janus can get around. Maybe a solution for now is to copy and paste the text you want and use the Text option in Janus?
In the coming 1-2 months I will be building a Anki Web Clipper that might also help