1 comment

[ 1.9 ms ] story [ 16.1 ms ] thread
Hello, HN!

I've taken a few months off between jobs and decided to properly build something I've wanted for a while now.

MemKit is a spaced-repetition flashcard app done right. (Disclaimer: it's still a work in progress, so it's not "done" in that sense of the word.) Here's what I mean by "done right":

- Minimal friction to use. You can immediately start using the app. You are automatically given an account. You don't have to sign up or type in a username or password.

- No demands. You don't have to set a n email, phone number, or even a username! But you can, if you want to. Email or phone number is a necessity for account recovery, of course. Note that emails and phone numbers are not yet implemented.

- No ads. No selling data. No algorithms to maximize use — users should only use the app if and when they want to.

- Maximal simplicity / minimal complexity. There is really only one feature — tags. Tags allow you to group together arbitrary things for ease of review (e.g., #math groups together all math things). When you make a thing, you can associate to it multiple tags. And a single tag can be associated to multiple things. You don't need "courses" and "flashcard sets" preclude the association of a single flashcard to multiple sets, in many competing apps. I have attempted to avoid bloat and complexity as much as possible.

- You grade yourself. Many education apps grade your answers for you. I think self-grading is a crucial part of the learning and memorization process.

- The right technology. This is the most contentious point. I chose Rust and an extremely fast server-side rendering framework, Maud, coupled with a minimal amount of vanilla JS. Nginx is my web server and, I know this is somewhat dubious, redis is my primary DB. I want to see how far I can scale on 1 $30/month server as my only cost, outside of my domain registration.

Please let me know if you like it!

Roadmap:

- emails and phone numbers (going with mailgun and twilio)

- better insight into time-to-review, how often a thing was missed, etc.

- API, image, and sound support to enable, say, uploading 1,000 most frequently used Spanish words

- AI generated quizzes. Obviously comes with all current downsides of LLMs but self-grading avoids many of these problems.