Anki Community has been formed

26 December 2020

Under the bleak and empty Contributions menu, I have published some minor artifacts related to a spaced repetition aided trainer app called Anki.

Anki is the most efficient when one wishes to learn small pieces of information, such as vocabulary or formulas. With the help of a laptop or a desktop computer, one can input the flip cards that should be reviewed, optionally with pictures and/or audio samples. Having done that, this data can be synchronized to a smart phone, enabling the user to review the cards on the go. These cards can be edited using the portable device as well, although it is much more convenient to do so from a computer.

The biggest advantage of a software of that kind is that it features a technique called spaced repetition, which basically means that the application orders the cards based on your honest feedback, making sure you always review those pieces of information that you are about to forget.

Leitner System

Although Anki is open source, however, by default, it features synchronization via a proprietary service called Anki Web. Some people, similar to me, have an itch to avoid forced centralization, especially when the software is open source. Others may have different reasons, however, we agree on that it would be nice if there would be an option to run the synchronization server in a self-hosted manner.

Community-backed servers have been written by dsnopek, tsudoko and other contributors. There was a single problem, though. Anki versions have been changing from time to time, and every time I wanted to fire up the server, I had to relearn how it should be configured. The latter, for different reasons (including the fact that I was not that comfortable at the time with Python projects), was not always trivial.

I have created a Docker image in a quick and dirty fashion to make the server setup easy and reproducible, and tsudoko - the contributor, whose work I have based the image upon - agreed to put a link in their repository for the dockerized version. As time went on, Anki versions kept changing, meanwhile tsudoko seemingly stopped supporting the server project. I can absolutely understand that they no longer have the time devoted to support the project, and we, as a community, are also grateful to have the legacy source code of the server.

At that point, though, I did not find a more up-to-date version of the synchronization server, and the clients were no longer compatible with the server. As I was not ready to maintain the server itself, I did my best and mirrored those versions of the clients, which were still compatible with the old server.

In June 2020 Vikash Kothary has contacted some of the maintainers, including me, to form a new organization under GitHub, to continue supporting the various parts of the server project together. Anki Community was formed.

Leitner System

At the moment of writing, our contributors work on a Django-based rewrite of the synchronization server (djankiserv), started by Anton Melser.

Recently, the venues of our communication is also being clarified:

  • as of yet we are available at Gitter for quick correspondence,
  • and project-related issues can be opened on Github.
  • We have also found that the chat and GitHub issues may probably not be enough for discussing big picture issues, therefore, with the help of Alessandro Dentella, a Discourse group was created.

We also have an organization-wide wiki page (that I created :)), for recording ideas, walkthroughs, and other useful information.

I’m not sure, how much activity I can undertake, nevertheless I am very happy seeing how this small community was formed out of almost nothing (well, mostly with the former contributors). I really hope, that as our public pages and resources are being organized, more people will find us.