What can Anki ecosystem do with more money

Anki ecosystem in general, and ankidroid in particular, evolves with a lot of constrains. There is few developpers, most of us are students or have a full-time job with it. Also, AnkiDroid do not officially exists, we are just a github repo and a play store account. This mean that AnkiDroid and anki ecosystem is currently limited by volunteer time and the little amount of money that we get through donation[1]. In this post, I'll consider what we may be able to do if we got a lot more money.

This are my personal thought, published without reviews by anybody else. In particular it does not endorse my employer, or any other maintainers or contributors of any mentioned product.

Note

[1] Plus sales for AnkiMobile on iOS, but that is only for AnkiTekts, and pay for AnkiWeb, the synchronization/hosting/deck sharing service.

For context, currently, AnkiDroid have one or two thousand dollars a month on Open Collective. That's nice, but not enough to pay a single senior full-time software engineer in a lot of countries. AnkiPalace gets money by selling course to teach anki and donation I think. Glutanimate has 771 patreons, for an unknown amount of money - I suspect mainly because he sells access to its add-ons in advances. AnkiTekts sells AnkiMobile for iOS for 25€/25$, with infinite update for free. It seems like there is no public information about the number of copy sold.

Help to use the money

Let's now consider how to use the money. I will not give specific numbers for each projects because I've no idea how to budget anything.

The very first need, if we actually got much more money, would be to pay someone to do the administrative work that is required to deal with it. First, we would need to create an organization, a charity, or whatever legal form is relevant. We would then need a real bank account instead of letting Open Collective own the money that was given to us. This will then require tax forms, human resource, accountings and so on.

AnkiDroid is administred by software engineers and other related technical roles; having us in charge of administration would be an inneficient use of resources and also a huge danger for the gestion of the money.

We would also need to get feedback from more experimented project lead, simply to get an idea about how to estimate how much money we realistically need for each project. I do not know professionnal experience of the other AnkiDroid maintainers.

Projects we can pursue with more money

I'll now list what we could do with an incredible more money, a lot more, or just a little bit more. Since I don't know how to budget, I may be wrong in my estimations.

Incredibly more money

I'm trying first to think big. A lot of ideas may eventually scale worldwide but still require significant investment everywhere. Obviously, it would make sens and be necessary first to test things locally and then to ramp up.

Promotion

I think we could a few kinds of promotion every where in the world.

Massively promote Anki ecosystem every where in the world, with big-brand level of advertisement.

Pay youtubers, instagrammer, tiktokker, or whatever people learn new topics today. Create videos in all languages about learning everything. Have videos about learning all languages in all languages. Have video about learning medical school in all languages. About learning programming, mathematics, and so on... in all languages.

Promote anki to whoever is in charge of deciding school and university curiculuum. Reach out also to any system in charge of teaching, mentoring, coaching people, ensure that they know about spaced repetition system and can help their users, clients, employee, onboard. Try to also explain why nobody should be judged over whether they clicked that they knew or that they forgot some thing, as otherwise they could not answer honestly to Anki, and thus could not use properly the scheduling algorithm.

Create partnership with companies in charge of employee education, and ensure that they convince their client that they want their employee to remember what they were taught, and not only to be able to read the material once and then forget it.

Buying existing private software

Buy out AnkiTekts and open source everything. Since in particular all contributors but ankitekts have to agree to give a BSD 3 clauses licences, maybe relicence Anki, AnkiMobile and ankiweb so that it's not under AGPL anymore - if necessary, rewrites the AGPL dependencies; this way company can use this software without fear that it will contaminate their network with the AGPL licence[1].

Also buy out super memo, their algorithm is supposed to be far more advanced than Anki one, and getting the hands on their implementation would be wonderful.

Buying flash card content

Contact publishers of the best manual about every topics, and buy the right to "ankify" their book. To extract knowledge from their book, transform it into flash card, and share them freely. Actually, most cards are only useful if you learned the content before reviewing it, so it's in the publishers and authors best interest that people have access to the flash card, as they may need to buy the textbook to be able to use flash card to their full potential.

Contract with authors to write down flash card about every topic that people may want to learn about, in every languages. Don't just translate, but really localize, so that decks are adapted to each country/state/county/land... school system and culture.

Support helpline

Currently, people can get some support on reddit, forum and mailing list. But that only works if they need help for a specific problem. Ideally, experimented anki users can help people work on improving their cards, the parametrization of their decks, and ensure that people understand the software and how to use it efficiently.

A lot more money

Now I'll be limiting myself to projects that can be achieved if you found some competent teams. This will still require quite a lot of money if you want to fund whole team of competent programmers, managers, designers, full time. However, while costly, for each project, I expect the investment to be limited.

Add-on collaboration system

One of the many advantage of Anki is that it has a huge library of add-ons, that allow to adapt the user process to their need. At least as long as an add-on exists or they know how to code, or have money to hire a developer. However, the add-on system is pretty broken right now. There is no integration test between add-ons. There is no automated test that ensure that add-ons keep working when Anki update; a CI system would run each add-ons test against Anki every day/week, in order to quickly figure out which change caused an add-on to break. There would be a system in which some trusted developers validate other people add-ons and ensure they are not spyware, trojan horse, viruses, and ideally that they don't break the collection. Multiple people would be able to have ownership of an add-on, ensuring that if a developer stop maintaining their add-on, someone else can start over.

Such a project already started, thanks to AnkiPalace; but I do not know how well it went, and as far as I know, a single developer works on it.

Similar issue may eventually occur on AnkiDroid, once it'll have add-ons; but the NPM based system of add-ons may improve some of those issues.

Deck collaboration system

I already wrote about the difficulties of collaborative decks. Essentially, this would require a collaborative platform adapted to flash card, moderation, dealing with copyright, and so on.

High-quality research

As far as I know, exactly two academic papers were written about the impact of Anki on medical school students. I'm really unhappy about the methodology of both of them. Both show that students who elected to use anki after being told about it got significantly better result in medical school exam. However, they did not consider any obvious confounding factors. For example whether people using Anki spent more time, had more motivation, were trying to get more prestigious position... After all, as long as they elected to use an optional software, it's not clear whether the differences comes from the software or from the fact that they have a different mentality.

I would love to figure out how to do proper high-quality research with pre-registered experiment and correct statistics analysis. But that would probably involve paying for people to do the ground work with actual learners.

Reach out to academia

Academia already research how to learn efficiently. I actually was "invited" to one such seminar, where I saw talks about human learning. I offered my help to the searcher to try to create add-on so that their tools can be interfaced with anki; I was never contacted about it. I particularly remember someone studying how to teach people how to recognize birds; and to test how efficient their tool is, they hired Amazon Turk workers. I would expect that they may get more interesting result if they hired people that either want to or need to recognize bird because of their passion or work. Generally, I expect that we may find quite interesting ideas to try out if we had some people who have time to read academic paper, reach out to them, and work on collaboration.

Relatedly, Woz, author of Super Memo, publishes a lot of superMemo wiki. A technical writer who would be able to understand the wiki content and rewrite it in a way that is easier to understand may render an incredible service. While I know of many people who tried to understand the wiki technical content, I do not know a single person who feel like they really grasp it. It seems really interesting, but using a wiki instead of having a standardized way to read things and introduce each concept one after another makes it very hard to understand anything up to the point where you get the full image in your head[2].

UX lab

I don't think we ever did formal UX research about Anki and AnkiDroid. We know for a fact that it's hard to start using it if you don't have someone helping you or quite some patience. We lose quite a lot of users because of this difficulty. Being able to test on new users, in many different languages, with various level of ease with smartphone and computer, may help us a lot figuring out what to improve.

Senior designers

Over the years, a lot of people wanted to redesign anki and ankidroid. Sometime people did a lot of work to create really beautiful flashy animations. However, we want something very efficient. Some learners spend hours with the app everyday, we must be efficient for them. We must also be simple for new learners, children, teenagers, and people who don't care that much. That's a very difficult tasks, and we would really need to work with people who have a lot of experience and were able to do great UI; because not only most of AnkiDroid maintainers today would not be able to mentor a designer, but we would not even know how to judge the quality of their work.

I should note that the two last maintainers that joined seems to have more experience in UI than the previous mainainers. Maybe this problem will actually be solved without hiring senior designers. After all, they are maintainers, claims to be competent, and I trust them to have AnkiDroid best interest at heart, even if it will be strange to see changes merged I can't evaluate.

Scheduler

This may be the most complex task; because it may be the less well defined. Anki scheduler is in charge of deciding what must be reviewed when. It's clearly greater than having nothing, but probably not as great as the state of the art from super memo, duolingo, or academic research. I already wrote about why it's difficulty.

First task is to get data. AnkiWeb allows all users to share data for free; and it also allows AnkiTekts and some academics to analyze a part of the data. AnkiWeb's term state:

In the interests of research and product development, we may use your review history and options (but not the text or media on cards) for statistical purposes, such as calculating the average pass rate across all users.

This is wonderful for privacy reason; however, it means that we can't access to some extremely relevant data. In particular, Duolingo evaluates the difficulty of words/sentences by measuring how often people fail it. Let's say you have a note that teach you that "chair" in English is "chaise" in French. To know how difficult this note is, you'd need to be able to get data from all users that have this note in their deck. They may well be tens of thousands, there is no way for us to know that. There is no way even to know if this is harder for French-speaking learning English or for English-speaking people learning French. And this go on forever on every kind of heuristic we could hope to extract from actual users notes. Maybe cards with mathematics vocabulary should not have the exact same scheduling algorithm than foreign vocabulary or that guitar scales. We can't even use deck by deck analysis of the data.

So we would need to ask people to send us their data, store the data, update them. And the most difficult part, analyze them and devise better algorithm. It would probably require a lot of testings, so ensure that users accept to use different algorithms, some of them maybe less efficient, for the sake of science.

China

Fight to get AnkiDroid trademark back in China and have it available for free to Chinese.

Little bit more money

Finally, let's consider that Anki ecosystem gets a little bit more money. Not enough to start any entire new project. Since I maintain AnkiDroid, I'll concentrate on what AnkiDroid could do with this money.

Localization

The simplest such project would be to localize Anki and AnkiDroid in each country. Pay one person to fully translate anki and ankidroid in each language. We would need to ensure that people really understand what they translate, which is a complex task, as some strings require to really understand Anki and AnkiDroid. That would allow the translation to be consistent.

Buying test devices

AnkiDroid bought a Miui device; simply because a lot of things break and they don't follow general Andorid promises. We probably would need to buy chromebook, foldable device, and generally we would need active developers to get a lot of various devices from various manufacturers and with technologies that can affect the review process or the screen. Currently, the only device was bought because of a specific need, but we may want to be proactive for it, especially when emulator do not exists.

Increasing volunteers' pay

Even if we can't pay for a full time engineer, we may still increase the pay above 10$/hour, or the monthly limit above 20 hours/month.

Pay maintainer for specific task

Let's consider "scoped storage". It's a change that occurred in November 2021 in Android privacy rules, that caused AnkiDroid to not be able to update since then. This tasks require a lot of work and complex architecturale decisions and months of work. That means that we can't just delegate it to new contributors and can't really expect to find a competent freelancer on standard freelancer website; at least not one that will ensure that the migration occurs as smoothly as possible for our millions of users. In this case, it would be nice to be able to pay a maintainer at standard competent freelancer right and ensure that they can spend a few weeks on this, full time, without sacrificing their well-being/income. And when other such complex tasks occur, that it can be done again.

No more money

Then I guess nothing will change. People will just continue to work on whatever they feel like. Hopefully, Anki and AnkiDroid will continue its growth thanks to word of mouth and unrelated youtubers that promote us. And if some dev have time, they'll eventually start working on some of those projects, but any project may still take years.

Why would I consider money for Anki ecosystem in particular

Now that we considered how to use the money, a few thoughts about a natural question: why would anyone put this money in ankidroid itself.

Let's say you want to give money for education; anki ecosystem only help to memorize things, it does not solve issues related to understanding content, it does not help with solving new kind of exercices. It's not even clear that memorizing content is that important in real life; it's very important for a lot of exams, but maybe the priority should be to change the way medical school students are tested instead of helping them rote memorize an extraordinary amount of information.

For the sake of the argument, let's say we still care about improving memorizing stuff, the core use of anki. Will all respects due to anki, it's not the best software that can possibly exists; with enough resources, we may be able to get a better software if we started from scratch. For example scheduling reviews is a very hard problem, and a different design may improve scheduling considerably, which would allow users to spend less time reviewing.

We can still argue that anki has plenty of advantage over a new projet. An existing working codebase, brand recognition, and a growing userbase. Admittedly, we don't have an exponential growth as start-up dreams of, in a year (March 2021 to March 2022), we went from 1.8 to 2.1 millions monthly active users according to play store market[3] But, with no money, we got a twentieth of Duolingo's 40 millions monthly active users, and we allow to learn more than languages. Similarly, the current maintainers of AnkiDroid have a track record of improving the application, and ensuring that the community grows and is welcoming; given how hard it is to hire good developers, working with people who already know the codebase and have proven their skills and involvement diminish the risk.

Notes

[1] Admittedly, that maybe an issue specific for employee of big tech companies.

[2] Actually, I would love to do this work, but I expect I'd love to be able to spend at least a day by week during a semester to really have a chance of success.

[3] let's ignore amazon market, fdroid and direct installations. While not not negligeable in term of user base, they don't impact the overall trajector. Let's also ignore chinese market as we don't have data about it.

Add a comment

HTML code is displayed as text and web addresses are automatically converted.

Add ping

Trackback URL : http://www.milchior.fr/blog_en/index.php/trackback/776

Page top