Remix.run Logo
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 | parent | next [-]

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 a day ago | parent | prev | next [-]

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 a day ago | parent | next [-]

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 a day ago | parent [-]

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 a day ago | parent | prev [-]

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 21 hours ago | parent [-]

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 a day ago | parent | prev | next [-]

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 | parent | prev [-]

Isnt a sqldump just a text file? That should be easily shareable on Github

yellow_lead 2 days ago | parent [-]

Yes, but for Hashcards they're using markdown, so it's much easier to collaborate on