Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I made a minimalist spaced repetition tool (memordo.com)
140 points by mvind on July 25, 2020 | hide | past | favorite | 77 comments



Theory / 2 Cents: don't just work on a GUI for spaced repetition cards, invent an open file format for spaced repetition (perhaps an XML plus an schema, or a JSON based file format, a subset of HTML or markdown, etc...).

The idea is that you create a file format spec, perhaps even some open source libraries to operate on the file format. And then you sell a really nice GUI for editing that (perhaps a web page, perhaps a mobile app, perhaps both?).

If your format is good people will use it, perhaps create new editors for it: if you have competition on GUIs it means you succeeded :-). Some people may be willing to pay for a hosted version or an app, others will likely host it themselves, I'm sure people would donate to you, the main developer if that was the case.


This is how Mochi[0] works. It exports a .EDN file that describes the cards, decks and review history. There are a few libraries out there that work with the format[2] but no one has adopted the format in their own apps AFAIK. Anki also has an export format but it's not documented.

[0] https://mochi.cards/ [1] https://mochi.cards/faq.html#how-can-i-create-my-own-mochi-f... [2] https://github.com/knubie/subs2srs


The Anki Database format (.anki2) is documented here: https://github.com/ankidroid/Anki-Android/wiki/Database-Stru...


Agreed. I'm working on a set of specs like this[1] to expand on the mnemonic medium[2][3] work Michael Nielsen and I started last year. I'll be interested to see how the ecosystem evolves…

[1] https://www.patreon.com/posts/bringing-ideas-36925173 (despite the URL, this is an unlocked post describing the high-level concept)

[2] https://quantum.country

[3] https://numinous.productions/ttft/


Hi Andy,

Is it possible to see the draft spec for the file format? A standards-based approach sounds great and I'd like to support this in LearnAwesome.org and perhaps contribute in development too?


(for those following the thread, I replied on Twitter: Yes, that’d be great! I want to spend some more time working with authors before formalizing as a spec, but certainly will reach out when things feel less molten. https://twitter.com/nileshtrivedi/status/1287150574480134145)


I created a file format designed for sharing data in-between language learning apps (JSON based + signature). It’s not released yet but if someone is interested please reply below. It would be great to have software other than mine using it.


I'm interested, though primarily because i'm duplicating the work you're describing - hah.

I'm interested in writing two main components:

1. Information storage, with retention / etc. My initial feature scope is likely going to focus on retention (spaced rep) and storage (archiving sources), long term i want to dog food a general purpose knowledge base.

2. Data storage. Unfortunately every time i start working on the schemas for the information storage i end up reinventing so many features of general purpose data storage, like versioning, data deduplication, etc - i end up with a clone of Git :(

So i'd love to hear some words of wisdom on this subject. I imagine you - sanely - focus more on #1, but that's not an area i've obsessed about yet too much.

This whole topic does interest me though - part of the reason i'm writing the data layer is because i want a git-like behavior to be able to slice other sources of information up with the ease and safety of git. So the idea of information source interop is close to my hear - but the idea of IO with external formats has not been big on my radar.

As i make progress with the information side of things, i'll have to keep that in mind. My model embraced self-hosting and i really want to avoid information hostage. So this convo has already been valuable :)


I'm definitely interested.


Thanks for your interest! I'll edit the spec draft a little more, write a quick big picture explanation and then send you an email.


I would also like to learn more when it is ready


I’m interested as well!


Love this idea! I had built a widget so that any website anywhere can embed practicable flashcards (like quantum.country) by storing user's progress in localStorage. But the idea of an open file format that can be imported in any app of user's choice would be a better approach.

https://github.com/learn-awesome/flashcard


How about a directory (or zip file) of .txt files for the format of the cards.


Anki does it sort of like this. It's just a zip file but instead of a txt file, it stores cards in a Sqlite database. All the resources are in the same folder. Unfortunately, the data schema is not great (in my opinion) and so it has some limitations on how it can be extended.

I'm working on my own flash cards app (see my other comment) and decided to do something similar. I actually want people to create tools to create new decks. I think the ideal is something like what Anki has in Ankiweb, a place to share decks with others.


Creator here. As a University student I was struggling a lot with the huge amount of information I needed to remember for my courses. I started using spaced repetition (Anki) and it worked great! I enthusiastically shared this method with my family but they got overwhelmed by the complexity of the Anki interface and all the options. I wanted to change that.

So I built memordo. I focused on creating a minimalist but still productive interface for creating memory cards that supports image, latex, code and clozes. I also built a chrome extension so you can add memory cards instantly whether you are reading pdfs or wikipedia.

I learned so much coding, like rendering latex instantly in a chrome extension, or the painful complexity of wysiwyg editors. I ended up using a vue based framework called tiptap. It works as a wrapper on top of prosemirror. (https://github.com/ueberdosis/tiptap...)

Anyways, I would love to hear what you guys think about this project!


I've spent about 10 minutes kicking the tires so I may have missed things which are actually there. These are my thoughts, excuse the roughness of it all:

* Editing - Keyboard shortcuts for committing a card? Undo system in the editor would be useful. Contextual help for the icons on hover.

* Decks - Perhaps separate tab for this rather than the side panel being the only way to view them

* notifications - Avoid the alert pop up for notifications when the user does an unexpected action. Maybe the area under the CARD CREATOR title might be the place for it.

* navigation - there should be quick navigation to study or desk views always present. Having to click on the side panel, then click is a little inconvenient.

* New Cards - it's possible to get to the Card Creator without any decks created. If I want create a new deck for this card, I'd have stop editing and click the side panel. Surely typing a new deck name in the Deck form on the Card Creator would be less confusing?

You'll get two types of users coming to this app. Those who are familiar with spaced repetition apps and those who aren't. I'd recommend spending time on polishing the onboarding experience for noobie users. For the more experienced user I would expect a few features if this was going to be a more modern anki-lite, like a deck view organisable in a folder format or tags, or an undo system for the editor.

Having an exportable format is extremely important for me personally. Might be different for other people.


Hi. Thank you such much for your feedback! I have noted all of your valuable points down. Thanks for taking the time!


Nice.

I would not pay for this but might buy it as an app on my phone.

I would be more likely to buy a subscription of you had a ton of decks on it like memrise does.


Yes, that is a valid point! From my experience the card creating process is also really valuable and forces you to distill the information down to something concrete.

But I totally get you, that for something like learning a language it would be nice to have some predefined decks.


I've sent you an email at info@memordo.com


Hi. I'm very sorry but I configured the email wrong, so I did not receive your email. Could you please try to send it again?


Please, do not use white lies on your web.

This is not free to use. This is useless on free. It's like tesla saying that chargers are free to use on front page, then on pricing: but only first 0.1kWh.

this is dark pattern.


Calling it a dark pattern is a bit much. Dark patterns are intentionally misleading. The free account here clearly shows the limits before you sign up.


This is a valid point. What do you think would be respectable amount of free cards? - or is having a card limit even the right way to of differentiate between free and premium?

Very interested in hearing your points - i'm totally new to this.


I think you need to make a decision and go in one of two directions:

* 25 (or maybe 50) card limit, and call it something like "Try before you buy"

* 100 (or maybe 200) card limit and call it "Free"

Basically either the free tier is usable for a reasonable period of time for a reasonable subset of your customer base, or it's a "free trial" to get people setting up and seeing the value without having to enter credit card details.

If you go with the "free trial" approach, the precise wording for what you call it will be important. I put a couple of minutes thought into trying to come up with a good suggestion and "Try before you buy" isn't too bad, but there maybe a better idea.


I can't imagine too many for whom a SRS app with a 100 card limit would be useful.


I have started to use Anki to memorise certain important things for flying - standard radio frequencies for instance. I have a library of around 40 cards and haven't expanded in a while.

I agree that for long term widespread usage you're going to end up with many more, but you can do something useful with 100.


I think once you talk to your potential client base, then you may see that a tool for spaced repetition is in far less demand than ready-made card stacks on specific subjects.

If it's at all possible (and it is in very many cases), the vast majority of people would rather pick up an existing stack and start learning instead of spending time on creating it from scratch. Ultimately the goal is to learn and the simpler the solution, the better it is.

That is, your target audience consists of people who are not interested in pre-made stacks or who can't find any on a subject they are interested in. Try and understand who these people are, imagine their use-cases and then see how to give them enough as a hook, but without being obviously useless out of the box.

One of the options is to not limit card counts in free, but rather offer paid features that would actually justify a monthly charge - cloud storage of their stacks, shared multi-device use, ability to share stacks with other people or to use stacks shared by others (! e.g. in school setups). This sort of thing. Monthly fees should be well justified and fair.


You described me. What's the best in the market for the user you described?


Basically everything described above is in Anki / AnkiWeb [0]:

- Pre-made decks of cards on a range of subjects available on the web ("shared decks").

- Cloud storage of cards (AnkiWeb).

- Syncing reviews between platforms (desktop app, phone, web).

[0] Full disclosure - I've used Anki daily for over 4 years now on ~30,000 cards, and I haven't tried any other tools.


> Pre-made decks of cards on a range of subjects available on the web ("shared decks").

This is of very varied quality though. Some decks are made by university professors that teach a class on an advanced topic, and they are top notch. Other decks are simply wrong, and questionable. This especially applies to language learning, since people creating the decks aren't proficient yet.

That's why I loved Wanikani [1]. In the end, it is just Anki with some extra stuff, but you pay for the excellent quality of the content.

[1] https://www.wanikani.com/


I appreciate you responding.

I would say 250+ and no more than 1000 should be more than enough. Usually doing 20..40 new DAILY is a max if you are doing anything bigger.

I would allow users bigger db (1000..5000) but would limit to the moment they will reveal (open) 250 new cards.

You want them to create habbit. This needs more than few weeks. Completly dont worry about them using 200 or 500, if habbit do not kickin, they will leave you no matter what you offer.

p.s. my experience come from doing 20k rep spacing english. It took me around 10 years of daily doing it.

p.p.s. I paid for my 20k english course, 15 USD. that was for the app, complete 20k cards with phrases and VOICE audio. Mind it. 15 usd. Your tool would cost 10yrs125 whooping 6000 usd :)


Thanks for insight, i'll definitely use it! It is a valid point about your English course but myself I don't use SRS for language learning I use it for mathematics, cs, and economics, so that was why I implemented latex and codeblocks. But I think some sort of predefined/shareable deck solution could solve this problem.


I think your math is off by a factor of ten: $5/month * 12 months/year * 10 years = $600, not $6,000. I do agree with the general point, though, it seems like education is a really tough market to monetize as people are very price-sensitive.


I'm always curious on what type of feedback the author really is looking for or if it is just cheap ad.

$5 for unlimited and basically 25 cards for 'free' makes it quite obvious that this tool does not provide anything the market already offers.

Aren't people analysing what is already out there?

Anki/Ankiweb is free. What student will every pay $5/month for your service? No one.

I assume that you will visit your subscription numbers, your page counts for a few weeks, you will see no magic and sudden richness, and either you loos interest or you discover that someone is misusing your server through some bug and you shut it down.

I don't wanna be pessimistic, don't get me wrong, but i really want to know what your mental idea was showing it here.

If you really wanna have feedback: - Make it as simple and fast and easy to create new cards/decks - Add an IOS/Android App; Either native or PWA - Fix your unicode stuff , doesn't work everywhere just because it works on your pc - Actually teach people how to write proper cards; Your description, to be honest, is as shitty avg as any other website

And as a final point: Actually think of something which is worth $5 per Month and makes any difference to what the market already has to offer.


I'm working on my own flash card app [1] and I agree with you that charging a monthly subscription is too much. I think to make a new flash cards app or service viable, you need to have an open ecosystem. This means an open file format, easy to share cards, and no subscription fee. If the service goes down, then what are you supposed to do with your cards? I think this is one reason why Anki is so successful. Obviously it's free, but the file format is understood and decks are easily shared.

The plan for my app is just to charge a one-time fee to get the app and not charge a monthly fee or anything. On top of it, the file format will be "open" (i.e. you can peek at how it works easily). Obviously that means I can't rely on a service, but there are still ways to allow people to sync their data or share decks with each other.

[1] https://www.ussherpress.com/freshcards/


I agree with this. Just use Anki instead and sync with Ankiweb.


Thank you so much for your valuable feedback! This was a proof of concept of the idea of creating cards through a chrome extension. There is still a lot of crucial features missing, and I know that now. But from my experience Anki is not an easy tool to use for non-technical users, so the aim for memordo is to have the easability of quizlet but the functionality of anki.


I take advantage of that complexity though. For example, I practice intentional vocabulary acquisition by adding cards in my own custom note type called 'Vocab.'

I installed AnkiConnect add-on which allows me to communicate with Anki over a simple HTTP API and complimented it with a CLI tool which automatically fetches the audio or whatever is needed to fill in the fields for the card and adds it to Anki.

So all you have to do is open the terminal and write "add [word]". And the magic happens:

1. A card which the agent is prompted to pronounce the word, followed by the correct pronunciation.

2. A card which the agent is prompted to write down the word after hearing the pronunciation.

3. A card which requests a random example sentence featuring the word, served by a local server. (https://i.imgur.com/11E3IqE.png)

The last card is the most helpful, it provides comprehensible input in the form of unique sentences that uses that word, so you get acquainted with the word's collocations, the context in which it is used and etc.


> I take advantage of that complexity though.

So do I. I suspect we're not the target users of the app then.

The target user is probably someone who'd write math equations as "a^2 + b^2 = ?" instead of learning how to use LaTeX in Anki.


HN as a technical audience is probably not your target audience, but I do think users of flashcards tend to be students.

I don't know many students who (1) want to use flashcards and (2) have the money to pay 5$ a month for something that isn't food/netflix/spotify/beer/rent.

I'd love to see how this works out for you, maybe I'm wrong about the target audience being the less-technically inclined but motivated students. Alternatively, if the app is good, but the pricing model is wrong, might just change it to charging something like 2,99$ per user, or per year or something like that.


If I can just add a slightly less critical point to the above — yes, the $5 price turned me off, but I think it's a great concept. As I read this, I had physical revision cards in front of me, filling them up with formula prior to joining a lecture, so I could use them for reference.

Would I use this for book marking formulae and research? Potentially. But would I pay for it? Sadly not.

It's a great idea, but there have to be two things to make this successful I think: a useful concept, and a tool valuable enough to be worth money.

Good luck, and don't give up!


HN might not be your target audience. There are a lot of "power users" here.

As an aside I wrote up why Anki doesn't work for me, perhaps you'll find something there that inspires you.

https://medium.com/@iandanforth/why-anki-doesnt-work-for-me-...


I think the flash card space is interesting because I think Anki users are very much "power users". Because it takes a curve to learn how to use it (poor UI) and there are lots of extensions, the type of person who ends up using it is a more advanced user.

The rate limiting is a big issue and I think something can be overcome. I'm working on my own app and what I've done is made it so you can limit the number of cards you review per day. Your daily lessons will usually be some combination of overdue cards and new cards. However, if you have too many overdue cards, there's no point in adding new cards to your lesson.

I know with SRS reviewing a card "just before you are going to forget it" is a big part of why people believe it's effective. However, I think that's just an imperfect model, so I think if you push an overdue card by a day or two, it'll still be effective. (i.e. there's no reason to force someone to review cards on a given day, obviously there's a window here where if you review too far in the future, you're going to find it harder) With this in mind, I made it so if you rate limited your daily lesson, the app just pushes the overflow to the next day. I think there are also other variables that make the models imperfect (some facts are easier to remember than others, how you present the content might make it easier/harder to remember, and so on).

Regarding easy input, I'm not familiar with how easy or hard it is to input images and audio, but I made sure that my app allowed a super easy drag and drop. In general, the app should make it incredibly easy to create new cards, edit existing, and add various media. Cards are the lifeblood of the tool, so working with them should be super fluid.

As for other modalities, I think that's an interesting topic to dive into. With self-learning applications, you have to balance making the most general use cases easy. Once you started adding more complex card types, your UI is going to have add affordances to make those possible, which has the effect of making it more challenging for the novice (who just uses text, images, and audio) to use.

Anyway, to sum up, it's definitely an interesting space because you have power users who may want to pull your app one way and regular users who may pull the app another way. I think finding the right balance of features is a challenge.


Silly idea, but hear me out/please answer:

Who owns the content/material? Are you (the dev/owner) planning to collect these, go through them, vet them, improve them/resell them?

Are you building a knowledge base/library were you can sell to others the memory/flash-cards, and share the revenue with the creators?

What is the end-game? Is it just the hope of the $5 per month?


I think you'll need to offer something significantly better than what is already available for free on other apps to really get traction. This space is already pretty crowded -- https://en.wikipedia.org/wiki/List_of_flashcard_software -- but I still think there's plenty of room to improve on what current services offer.

Agree with the others that your pricing doesn't make sense. You want to get users to the hook point of SRS. Very few people reach this point [0], and having an arbitrary card limit will only make this worse. I would provide a very generous free trial period that has all the features of the full version -- perhaps something like 60-90 days. If someone is actually still using the app at the end of the trial, they'll be really easy to convert because they see the huge benefits. The reality is, the vast majority of your sign ups will not reach that point, but a bigger proportion will if they don't have the arbitrary card limit that prevents them from seeing the real value of SRS.

Best of luck to you!

[0] There's a blog post out there from an author of free SRS software that laments how awful the conversion rates were because users just don't stick with SRS, but I can't seem to find it.


By minimalist I didn't realize you meant minimalist in features, just design. Regardless I think everyone, not just power users, could benefit from a SRS, but part of me thinks that the time investment that is required to get started on Anki is what keeps people going when they're still in the early stages. It's kinda like a buy-in.

Do you support exporting your cards into a csv format?


Thanks for your feedback, very valuable! I'm very much still at the early stages of this project, I decided to go public to get feedback as soon as you could add a card from the chrome extension and then study it.

There is no support for exporting cards, but I have noted it and will consider it in the future. Thanks again for your comment!


What I'd like is a system to let me browse, create and organize my "notes," to use the Anki term of art, in a literate, flexible way. You could probably build it on top of Anki using tags and/or data hidden in HTML, but I think it would provide enough added value to justify paying for it.

Basically, I want WorkFlowy for Anki notes. I should be able to organize my notes into hiearchical categories and browse them easily. Currently, it's difficult to find the gaps in your Anki deck on a given topic unless you're very careful and thorough with your tagging. And even then, only being able to view one card at a time makes it hard to quickly scan through the cards under a given tag.


I use Roam [0] with Neuracache [1] to get a similar workflow to what you're describing. My notes are hierarchical and searchable w/ Roam. If I want to create an Anki entry, I add #flashcard anywhere in the note. I use secondary tags and links to further categorize these notes. The next time I import my Roam db to Neuracache all #flashcard entries are synced.

[0] https://roamresearch.com/ [1] https://neuracache.com/


This sounds very similar to https://www.remnote.io/.


Wow, that's exactly what I was looking for! Thanks for the tip.

Edit: I see that you're actually the creator. Thanks for making this!


It is hard take an idea, spend the time to build, and make it live. Congrats on doing this!

I'm not the target audience, so I can't comment on the value proposition. I'll just point out a few things I noticed on the site:

- The "Free" signup button brings you to the login and not register page. Also the $5 pay link goes to login too. I used the $5 link and then clicked register. Registered and was never asked for payment. - On the register, suggest not asking for username creation unless you really need it...just use the email as the username. - The step-though-guide last step has "next" and doesn't do anything. Should be close. There are a few good step guide packages out there you might want to consider. - In the app, clicking "Upgrade" give a 500 error. - If you try to create a card before creating a deck says need to select a deck. People probably will first click on create card first, so suggest have a default deck that you can select right away. - Created a single card and says I have 2 cards when studying. I think counting both sides of the card.


For some reason I find the website really hard to read, maybe try something like this? https://imgur.com/a/cNWZosc


Thanks. I definitely have to iterate on the frontend design, I still have a lot to learn. But I agree on your picture that I need to de-clutter the frontpage. Thanks for your feedback!


Have you tried the open-source SRS https://www.memcode.com folks? With images & formatting & SM2 spaced-repetition algorithm too.


Good idea in principle, appears to be well executed, but this must not be a service. Just because it can be made into one, it doesn't mean it should be.

No reason whatsoever why this can't be a locally hosted offline web app that uses local storage for its state. I can see some people wanting to do their exercises using several devices and for that an optional syncing service would make sense, but adding a permanent online dependency for what is inherently an offline app operating with local data makes zero sense. Even if it were free.


Just to let you know, clicking on "Features" or "Pricing" doesn't work if you are not on the home page. It can't find the anchors which are located on the home page.


Hey man thanks! still a lot of learning to be done on the frontend..


Awesome, I'm going to try it out. I really think there's a lot of room for professional SRS tools.

A few things I've found using SRS.

- I often want to practice on the go, but Anki's mobile offering isn't great for inputting new cards, or managing partial cards (i.e. I think of a sentence I don't know).

- I have a couple modes of operation. When I'm studying I'm often at a computer, so I want bulk input/output - i.e. create a lot of cards fast.

- Offline support is essential, since my study time is usually during my commute.

Anyway, congrats on launching!


New SRS tools are great but I am yet to see anything that Anki and Polar doesn't provide.

Rather than seeing half-baked closed source apps like this I would just prefer more devs contributing to Anki.


Small nitpick: your main headline on the site has a typo in the word 'knowledge'.

That said it looks interesting, but for me personally the only big reason to switch away from Anki would be more keyboard controls so I don't need to switch to the mouse and back for some menu interactions. Then again syntax highlighting in code blocks does sound like a neat feature for some situations.


Thanks for your thoughts and very valuable nitpick (I have fixed it now). I definitely agree that keyboard controls are very essential to the card making process, and I will look into that!


Hi, nice work with this! Another small typo under the "Retain information with Spaced Repetition" header in the first bullet point, effecient -> efficient.


Thanks for spotting the typo! I have fixed it now.


One more: 'A _breif_ title' on the /suggestions page.


Thank you! I have fixed it now :)


I applaud your efforts but you have to think of some other pricing model or none at the moment.


Hi. The "features" and "pricing" links no longer work after you click on "Demos" or "What is Spaced Repetition?" links.

Also, it might make sense that the bar holding those links remains visible at the top... or not.


Hi. Thanks for your valuable observation - I have fixed it now :-)


I made a tool like this when I was 11 years old, to help me with my homework.

(This was in the Apple ][ days)


What is Spaced Repetition? Never heard of it.


The very first non-navigation-bar text on the linked site says: "The Next Generation Spaced Repetition Tool to help you Retain More Knowledge: Create memory cards anywhere on the web", which should give some clues. A little lower down there's a link saying "Click here to check out our 5 minute introduction to spaced repetition", linking to ... a brief explanation of spaced repetition and why you might want to use it.

Anyway. The idea is that when you learn something, you are likely to forget it eventually, and that when you _remind_ yourself of something you've learned that postpones the likely forgetting by an amount of time that increases according to how long it was since you learned it. So if you want to learn something and retain it, you should keep reminding yourself just before you would have forgotten. Fortunately, it seems that for most of us the time we remember a thing for is somewhat longer than the time between reminders, which means that learning something this way doesn't take an unreasonable number of reminders before it's lodged in your brain long-term.

So: a spaced repetition system is a thing that helps you learn. You give it a bunch of things you want to learn; it tests you and remembers -- separately for each individual thing -- when you were last tested and how you did. If its algorithm matches your brain reasonably well, a fairly small investment of effort can help you get a lot of stuff imported lastingly into your brain.

The most common use of these things is for learning foreign language vocabulary, but of course that's by no means all you can do with them.


It's a flashcard system that schedules the cards to be reviewed based on how new the information is.

A basic system is to review each card after 1,2,4,8,etc days, resetting if you don't recall the answer from the prompt.


>>"What is Spaced Repetition? Never heard of it."

Maybe you did and forgot about it :-)





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: