The app started as my wishful thinking that flashcards should really be derived from notes. I've been constantly writing things down and wishing to remember them. However, I never could convince myself to populate a flashcard app with them. I really tried (Anki, Supermemo), but I guess regular form filling is not for me.
So I've started experimenting with flashcards derived from structured notes. Writing the 1st MVP was fast, but productionising it was way harder. Content synchronisation when the user can work from tube/plane and use multiple devices and content is text is… not trivial. So I had to learn about OT (Operational Transformation) and CRDT (Conflict-Free Replicated Data Type), and even implemented a few iterations of CRDT in Swift. This was intellectually rewarding, but the app was not progressing. Also, when you have both app data model and CRDT in your head, you start to over-optimize - you are leaking abstractions. Thankfully, the CRDT market nowadays is pretty mature; Automerge is production-ready, and automerge-swift comes with a nice abstraction. I strongly believe offline-first apps are the future/now.
ChatGPT happened, and it felt like a perfect match for the app, as it's already text-focused. First, it was just to provide prompts for the cards, but when you turn the problem around, you realise that LLM is great for predicting other flashcards in the context of your note. So instead of downloading a premade flashcard deck, you start a new note, give it a title, and click generate. I still find it weird to watch but also mesmerising.
Other features that I think are valuable:
App data sits within your iCloud account until you use Generative AI (LLM). Hopefully, we will get an API from Apple soon.
The Spaced Repetition that I've implemented is not really spaced. I wanted the app to adapt to the user. So it's focusing on sorting the card deck based on your recall and lets you practise as much as you want. I found this approach to work way better for me.
Oh, it's multilingual with text-to-speech.
Here we are; the 1st production-ready "MVP" is live. I'd love to hear your feedback.