Top
Best
New

Posted by thomascountz 2 days ago

Hashcards: A plain-text spaced repetition system(borretti.me)
392 points | 187 commentspage 3
mstipetic 2 days ago|
I wish more people knew about GNU recutils instead of inventing new formats
OJFord 2 days ago||
I like recfiles, it's been a while but I started on Rust helpers (OP project is in rust) if it's any use: https://github.com/OJFord/recfiles-rs

Not abandoned exactly, I just haven't been working on the project that I wanted it for in gosh has it been that long.

sundarurfriend 2 days ago|||
I wish there were more/better tools for working with recutils. I had a phase of trying to use recutils wherever it made sense, a few years ago, but the format has a lot of redundancy (not a bad thing in itself), and editor support to make working with that easier was basically non-existent (perhaps it exists only for Emacs). Using the command-line interface for everything was way too cumbersome. Visidata claimed to support the format, which got me excited, but in my experience it mangled the file if you had anything more than a basic set of records, and the support for display too was overall very rudimentary.
leobg 2 days ago|||
Guilty as charged. First time I hear about it. Thanks. Looks like a natively LLM friendly database format.

https://en.wikipedia.org/wiki/Recutils

mstipetic 2 days ago||
Yes! I have a whole blog post in the works about how they make an awesome LLM memory layer.
knowsuchagency 2 days ago||
Could you link to it? I'd love to read it. This is also my first time learning of recutils
leobg 2 days ago||
Dito. (Or MeeToo, +1, or whatever the hell people say these days.)
shakna 2 days ago|||
The mascot doesn't really help with adoption of the format.
allarm 1 day ago||
No one cares about their mascot that much, of course. Say hi to Fred and George!
shakna 1 day ago||
Eight years ago: https://news.ycombinator.com/item?id=15302279

I mean... Its even in the FAQ. It's a question people care to ask.

allarm 9 hours ago||
> Eight years ago

Kind of proves my point. Someone asked a question 8 years ago, that doesn't look like something that has any effect on adoption really.

shakna 2 hours ago||
The complaint, today, is it doesn't have much adoption.

So the question always being around kinda does suggest there's difficulty.

Unless it's somehow become widely used?

mbo 2 days ago|||
Aren't the hashcards complaint recutils files too?
blitz_skull 2 days ago|||
Inform me please. Never heard of it.
OJFord 2 days ago||
You could think of it like markdown but for structured data, with a spec for how to do that and a utility for querying them.
zetalyrae 2 days ago||
I actually know about Recfiles lol.
jwrallie 2 days ago||
I think the overall idea is good.

If the cards are identified in the database as their hashes, wouldn’t editing the content reset all repetition data so far?

Anyone here has been using FSRS long enough to have comments about its effectiveness? I think it’s general consensus that moving from SM-2 to FSRS will show great improvement. I’m using SuperMemo 9 though, so it’s much harder to understand whether there will be an improvement or not.

WhyNotHugo 1 day ago|
I’ve been storing cards as markdown with a horizontal ruler separating the prompt from the response and another ruler separating historical data.

That is: the historical data in on the same file as the card. This makes cards trivial to sync.

brianjlogan 2 days ago||
This was a super interesting article for me as I'm working on a prototype software aiming to promote spaced repetition and some newer wave learning science as a common approach to "leveling up" in an age where AI is pushing the competitiveness of human labor.

I've thought about posting to HN but I'm a little apprehensive of when and how to post.

Anyone interested in this and/or have some advice for posting my prototype online for feedback?

gala8y 2 days ago||
You might want to read https://news.ycombinator.com/showhn.html.
brianjlogan 2 days ago||
Thank you!
willmorrison 2 days ago||
Very interested, I’ve been working on SRS software and care about this problem too. My email is in my profile.
_JoRo 2 days ago||
As someone who has used spaced repetition extensively I will just provide a few insights that might be helpful:

1. Decide on what's important. Just because you learn something doesn't mean that it should be logged to the system. I used to log a lot of minor details (like niche method signatures or command flags to the system). If you make cards for every detail like this then you will be trapped reviewing 100s of cards daily that you likely never use.

2. For the cards you deem are important, make sure you understand the concept. This often means making 2-5 cards for the concept that test your understanding from different angles (definition, pros, cons, how would I explain this to someone else, etc...). This helps to cement the concept at a foundational level.

3. Try to move from the existing flashcards to 2nd order flashcards or pure application after the first couple reviews. So your foundational cards are now set to review in 6 months or 1 year. At this timescale if you prioritized what was important and made sure that you understood the foundational concepts, then usually simply doing things related to the concepts will be the reviews (and sorry to say but if in 1 year you get a card related to what you are doing, but never used, chances are it probably wasn't that important). In addition to doing, you can also create 2nd order flashcards (which might compare 2 concepts). These types of cards test the foundational knowledge indirectly, and are helpful for higher order thinking.

In conclusion, I think spaced repetition is a very effective tool for efficient learning (especially in the first 60 days or so after learning something). I think the major pitfall is not prioritizing what cards get made and being stuck in review hell.

yellow_lead 2 days ago||
I'm happy to see others in the space, but I wish Anki competitors would implement a decent 'import from Anki' feature. Otherwise, I think most existing users of SRS are unlikely to switch (because we use Anki and have thousands of cards there already).

The data format of Anki is a bit complicated but at least it's SQLite. I've seen a ton of shared decks and resources on ankiweb, but it's true you can't easily put them on GitHub.

allenu 2 days ago||
I wrote my own flashcard app and had a very basic import from Anki feature and I have to admit that I underestimated how Anki handles it. My first attempt at import was very naive and sort "flattened" the imported data into simple front/back content. It lost a lot of fidelity from the original Anki data.

After investigating the way Anki represents its flashcards a bit more, I can really appreciate the way Anki uses notes, models, and templates to essentially create "virtual cards" (my term).

I suspect other people creating their own flashcard apps underestimate the data model Anki uses and have a hard time matching their own data model with Anki's, which may be why decent import options are hard to find. If someone wants to support Anki deck import, they have to essentially use the same data model to represent notes and models (plus cloze deletions). I'm now adopting Anki's model for my flashcard app for better import fidelity.

Regarding the SQLite data format, I was thinking it would be great if there were a text-based format instead for defining the deck and its contents as that would make it much easier to collaborate on shared decks on GitHub, like you suggest. It would be great to have a community work on essential flashcard decks together in an open format that encourages branching and collaboration. I know some groups do this with Anki decks, but I can't imagine the SQLite file format makes it easy to collaborate.

I don't think it would be that hard to come up with a universal text file-based format for a flashcard deck that supports notes, models, templates, and assets. For instance, we could have each note placed in its own text file and have the filename encode the a unique ID of that particular note. Having unique identities for everything would make it easier to re-import updated decks to apply new updates if you had previously imported the deck. The note files could also be organized into sub-folders to make it easier to organize groups of info that should be learned together.

tvshtr 2 days ago|||
I think that many devs missed the fact that Anki went through major rewrite and all of its business logic/its brain/api are now contained in few rust crates. They're a pleasure to work with and it's very easy to write alternative frontends (just finished one). You don't have to import anything because you can just use the same db, and cards as Anki.
CGamesPlay 2 days ago|||
Wow, I haven't used Anki since... before they switched to date-based releases, but the new version is a big step improvement from versions I have used previously. When I updated, opening the app for the first time opened the terminal for a text-based installer, which didn't inspire confidence, but it's well improved. (This isn't really related to the backend changes you're mentioning, but this comment inspired me to take another look at Anki.)
tvshtr 2 days ago||
The PyQt GUI is still meh but overall it's much better (and nowadays much much faster). I think it's still unnecessary crufty and unfriendly in places. That being said I wrote both web and TUI front-ends and it can definitely be streamlined and cleaned up. Interestingly, stripped of the GUI, running core (with old db and profile) uses just ~15MB.
pityJuke 2 days ago|||
This feels as if it deserves a write up, did not know that they migrated from Python to a primarily Rust backend. Would love to know the why/what from the team.

(Anecdotally, Anki has seen a huge quality increase in the past couple of years.)

tvshtr 1 day ago||
Most def. It's ALL Rust underneath, the PyQT gui (on desktop) is basically a legacy compat layer, mostly because they need to support vast amount of add-ons, and the editor is quite complicated piece of UI.
WhyNotHugo 1 day ago|||
I’ve been writing my own flashcards (purely text-based, no SQLite like in this case) primarily because Anki never worked out for me (too hard to use, too hard to sync, everything too complicated). I have zero time or motivation to research how to import data from it.

This needs to be contributed by folks coming from Anki. By folks who actually have interest in the feature.

rikafurude21 2 days ago||
Isnt a sqldump just a text file? That should be easily shareable on Github
yellow_lead 2 days ago||
Yes, but for Hashcards they're using markdown, so it's much easier to collaborate on
jbstack 2 days ago||
> First, [Anki] is ugly to look at, particularly the review screen.

You can customise note types with CSS and Javascript, which means that you can make cards look however you want.

johanyc 2 days ago|
"Anki" is ugly. not anki note
jbstack 2 days ago||
Yes but the article said "particularly the review screen". 95% of the review screen is made up of your card, which you can customise.
GaggiX 2 days ago||
Also Anki is not ugly at all in general, the interface of Hashcards looks much uglier to me.
rsanek 10/8/2025||
>I have learned that the biggest bottleneck ... is just entering cards into the system.

Couldn't agree more. I think I would take this opinion and go even further -- we shouldn't be making cards fully by hand much, if at all, anymore. AI-assisted card creation is to me clearly the future, and already AIs are good enough for this to work well.

jiehong 2 days ago|
But making the card actually help in forging a memory of it.
jwrallie 2 days ago||
I think it’s a matter of scale, you can create hundreds of cards in a few minutes with LLMs, and then delete a third later during learning.

It depends on the nature of what’s being learned. For language learning for example this is very effective as you can create it directly from content so that you have context.

analogpixel 2 days ago||
Does anyone outside of people in school or language learners use these type of tools in any interesting ways?
MichaelNolan 2 days ago||
Know personally in real life? No. But there are plenty of examples of people using Anki/SRS tools for interesting things outside of school or 2nd language. I’m firmly in the camp that SRS is widely underrated and underused for working adults.

Some examples would be Michael Nielsen, Gwern Branwen, Andy Matuschak and u/SigmaX (reddit - not sure his real name)

* http://augmentingcognition.com/ltm.html * https://gwern.net/spaced-repetition * https://andymatuschak.org/prompts/ * https://imgur.com/a/anki-examples-math-engineering-eACA7QM * https://imgur.com/a/anki-practice-cards-language-music-mathe...

dangus 2 days ago||
They'll always be "underrated" and underused because they're so damn unenjoyable.

Sure, we all need to study and learn things in life here or there, but the flashcardification of the process makes it boring and painful.

From my own personal experience trying it, I find the process to be too far removed from the practice of accomplishing what you are setting out to learn to do. An analogy might be like memorizing a recipe by using Anki cards and not physically cooking it versus doing cooking it a bunch of times without deliberately trying to memorize the recipe. For me, the latter is far more effective because you have your 6 senses of mnemonics to memorize what you are doing. I may not remember that I need 2 cups of flour, but I remember that I scooped my purple flour scoop twice and that the white contents felt powdery like flour and grainy like sugar. Even if I forgot the recipe my body would have smelled, seen, touched, weighed the material and I have all these physical clues to work with.

Learning by doing, experiencing, immersing is more of a "repetition that you don't even know you're doing" while Anki/SRS has the feeling of a chore and an obligation.

runarberg 2 days ago|||
I tried to use Anki learn chess openings. I think it is a decent usecase, however I quickly gave up because I had to get better at visualizing the moves from algebraic notation (a skill worthy of learning anyway if you want to become good at chess). However I never continued my chess improvement goals to the extent where I picked up Anki again for this purpose.
lugu 2 days ago|||
For maths, but not only: https://cognitivemedium.com/srs-mathematics
ouked 2 days ago||
Ive used Anki to learn musical intervals
kuil009 2 days ago||
Rather than treating SRS as a learning tool for facts, I find it far more valuable as a system for recording and periodically revisiting past judgments, especially to reflect on whether a decision made in context was actually a good one.
nomadygnt 2 days ago|
This seems really interesting to me as I don’t often work in domains that require me to know a lot of facts, but I still feel like SRS could be useful. I just don’t quite know how to use it. Could you give me an example of what you mean here? What kind of decisions do you find meaningful to periodically reflect on?
pvdebbe 2 days ago|
Perfect timing. I just started to teach my wife Finnish so that she'll have easier time with real language lessons when she gets her paperwork sorted out to move here. And I've feverishly been looking for a self-hosted SRS system where I can feed new content to the "decks" and she can consume it on her schedule. Making micro decks that she'd import in Anki wouldn't be very convenient. This would seem perfect to me.

I'm happy to hear other suggestions too?

hiAndrewQuinn 1 day ago||
Loistavaa, what a perfectly tailored comment for me, I have like 80% the thing for you at https://finnish.andrew-quinn.me/ . Unfortunately I'm all in on Anki but maybe these will sway you nonetheless.

Every 6 months I create around 5000 Anki cards out of the last 6 months for reading practice of the YLE Selkouutiset news, on a sentence by sentence basis: https://github.com/Selkouutiset-Archive/selkokortti

For raw isolated vocabulary my finfreq10k Anki deck can't be beat! https://ankiweb.net/shared/info/1149950470

But in your case, and for writing practice, you may also like https://github.com/hiAndrewQuinn/finyap , which is self-hosted in the sense that a new deck is just a CSV file in "scenarios".

Tsemppiä vaimollesi!

pvdebbe 1 day ago||
Fantastic tools you've collected here! My rationale for building own decks for my wife is that I'm intending to start slow and easy, and I'll build new cards that are closely tied to days' lessons I'm giving her. I'm hopeful that after a while she gains confidence to start going through premade decks. With anki and similar tools it's important not to just memorize words without having some handle on how to build sentences etc. I spent a lot of time learning Japanese that way, only to find that I maybe memorized words but to build sentences with them...
freshteapot 1 day ago||
I have something close to this, even a helpful bulk import. But it works on your own account not someone else’s.

The feature

https://learnalist.net/faq/add-a-list-overtime-for-spaced-le...

Bulk import ui https://learnalist.net/toolbox/srs-add-overtime-v1.html

You’re welcome to try it, it is not self-hosted.

I also have a mobile app, and have been thinking of how to simplify the server etc.

Equally been thinking about how to modify the mobile app to work better with a different backend but still maintain notifications (local instead of server).

It used to be in the public domain but I moved it to a private repo. I am open to moving it back, there is just a small part of the code I want to keep private.

More comments...