Lector pays the data back
Lector is a reader app, but the language packs are the product. I didn't build the data in those packs, so it only makes sense to pay back the volunteers.
From this month onwards, Lector pays some of it back: $100 a month, or 10% of profit, whichever is greater. The floor applies now, out of my own pocket, because Lector is not profitable yet. The percentage takes over when it beats the floor. The funding page carries the split and a record of every payment.
As a Christian, I am called to give generously with no expectation of a return. This will form a portion of my annual giving budget until Lector makes enough to cover it as an entity. Finding a worthy cause is difficult, and the default answer is giving to your local church, but I hope that allocating a portion of this budget will have a small impact globally. Language learning is something that truly has the power to bring people together, across borders. It has been inspiring to watch a small community form in the Discord server from all walks of life. United by a common goal of understanding others.
The first payment is already out the door: $600 to Association Tatoeba, sent on 22 August 2026. Receipt and transaction reference are on the funding page. I am publishing this of course partly for marketing, but it is also in the spirit of transparency which open-source champions, and for accountability from the community.
The interesting part of this process is what I found when I tried to work out who to actually pay.
What Lector utilises
By grepping the codebase, I figured out the dependencies which have the greatest impact to try to figure out apportionment fairly.
- Tatoeba - 756 references. Every example sentence in every pack.
- wordfreq - 204 references. The frequency bands that decide which words you learn first.
- kaikki.org - 184 references. The dictionaries for fifteen-plus languages, extracted from Wiktionary.
- jieba and Kuromoji - 41 between them. Vital for Mandarin and Japanese tokenisation.
- eSpeak NG - 9 references, and it is the only voice Lector has for Esperanto.
Then there is ICU, CLDR and Unihan under the tokeniser, Stanza and UDPipe in the pack builds, OPUS and OpenSubtitles behind the frequency blends, and the SBLGNT text under the Koine Greek pack.
Most of them cannot take the money
I expected to send a payment via Github sponsorships/OpenCollective to each project and be done. Instead I discovered that roughly half the list has no way to receive one.
Anki was the biggest surprise. Lector's Anki add-on is one of its most-used features, so Anki was near the top of my list. Its donation FAQ says Anki runs as a business and cannot easily accept donations. Setting up a Patreon would take time away from working on Anki, so it asks people to buy AnkiMobile instead.
kaikki.org has no sponsor button, no Open Collective, no donation page. There is an email address and a request not to use it for marketing. So I wrote to the maintainer and asked what would actually help support maintenance.
eSpeak NG and jieba have no legal entity at all. There is nowhere to send money. But there is somewhere to send work, which is the part I had not thought through.
Wikimedia can take money but it does not need mine. The Foundation runs a large surplus. A few hundred dollars there does less good than anywhere else on this list, and I believe that Wikimedia is no longer using donations responsibly. Every pack build spits out a list of Wiktionary entries that were missing or malformed. Paying someone to fix those entries improves the data Lector reads and the dictionary everyone else reads too. I'll explore this more in the near future.
That is why 30% goes to a directed work fund instead of a recipient. Held, then spent in single amounts on specific upstream jobs: voice fixes in eSpeak NG for languages Lector ships, corrections to the Wiktionary entries a pack build found broken.
The one I could not fund, and cannot replace
wordfreq is the second-biggest dependency in the codebase. Every frequency band in every pack comes from it. It decides the order of the starter word lists, the bands on the Anki decks, and which words the reader treats as common.
It is finished. Robyn Speer ended the project because generated text polluted the web corpora it sampled, and because Reddit and X closed the data that fed the rest. Her write-up is worth reading in full.
So there is nobody to pay, and I am not going to offer money to a maintainer who stopped precisely because of the kind of text a language-model-adjacent product produces.
The uncomfortable part is not that the project ended. It is that wordfreq's final data already sampled a web containing machine-generated text, and I cannot measure how much of Lector's banding rests on that. The provenance is not recoverable from the published numbers. A frozen source also drifts: new words never arrive, and dead words keep their rank.
This is a hinderance to the funding commitment which money cannot fix. Lector needs to compute its own frequency counts from a corpus with a known cut-off date, and record that provenance in each pack. It is tracked as issue #543, and it is a bigger job than the payments.
Conclusion
The donations are currently small. $1,200US per year won't move the needle on an annual budget, but the hope is that as the project grows, we can contribute more fully to the open language learning ecosystem.
If Lector uses your data and the funding page is wrong about it, or you know a better way to reach a project listed there, open an issue and I will fix it.