
Ebook readers should use the license Google bans
The AGPL clause that keeps big companies away is the one that protects readers. Why Readest and KOReader use it.
If thy heart overfloweth to lend them, lend thy books; but let it be to such a one as S. T. C. … he will return them (generally anticipating the time appointed) with usury: enriched with annotations, tripling their value.
Lamb thought Coleridge's notes made a book worth three times as much. In 2019 Microsoft put its own price on them. It stopped selling ebooks in April, and in July the books people had bought from its store stopped opening. Microsoft refunded every purchase and gave an extra $25 to anyone who had highlighted or written notes in their books.1
Google's open-source policy has a page for one license. It says code under the GNU Affero General Public License (AGPL) "MUST NOT be used at Google", because its rules for software used over a network are "extremely difficult for Google to comply with."
We've put two ebook readers under that license. In March 2014 we switched KOReader, the e-ink reader we worked on for years, from the GPLv3 to the AGPLv3. Twelve years and more than 400 contributors later, it's still AGPL. Readest has been AGPL-3.0 since November 2024.
I think the clause Google can't live with is the reason every reading app should use the AGPL.
A reading app is where your notes live
A reading app holds more than the books. It holds your place in every book, your highlights and notes, and how long you've read. Whoever controls the app's code controls all of that. In 2009 Amazon deleted 1984 and Animal Farm from customers' Kindles because the seller didn't have the rights, and one student lost the notes they had written along with the book.2 In February 2025 Amazon removed the option to download a Kindle book you had bought to your own computer.
Reading apps are now turning into services, and the services are adding AI. Since 2025 Kindle has written its own recaps of book series and answers questions about the book you're reading. Features like that run on the company's servers, next to your highlights and reading history. Whatever runs there does it to every book and every reader at once, and nobody outside the company can check how it works.
The clause Google can't comply with
A closed app uses copyright to reserve all rights for the company. Copyleft uses the same copyright to reserve them for the people who read with the software. Anyone can use, study, change and share copyleft code, on one condition: whoever passes on a copy, changed or not, has to pass on its source under the same license. That keeps every later copy as open as the first. The GPL, the best-known copyleft license, applies that condition only when someone hands over a copy. A company can take GPL code, run it on its own servers, add whatever it likes, and never show anyone the result, because it never handed anyone a copy.
The AGPL closes that gap. If you run a modified version for users over a network, those users get its source. That is the clause Google's policy objects to, and it's exactly the case a reading app is heading into. If anyone takes Readest and runs it as a service, with their own AI or anything else on top, the people reading with it can see what it does to their books and notes, change it, and run their own copy.
Readest has no closed edition. The app and its sync server are in one public repository under the AGPL. You can host the sync server yourself, and your highlights and notes export to Markdown or plain text.3
Copyleft is made of copyright
Copyleft is a condition in a copyright license, and only the people who hold the copyright can offer a different license. When one company holds all of it, it can put the next version under any terms it likes. MongoDB moved from the AGPL to the SSPL in 2018. It could, because everyone who contributed had signed an agreement giving it the rights to their code. HashiCorp and Elastic changed their licenses the same way.4
Readest has no such agreement. Contributors keep the copyright on the code they send, and about 150 people have sent some. Relicensing Readest would need every one of them to agree. We couldn't close it on our own, and every version already released stays under the AGPL.
That is the promise a reader should look for in the app that holds their notes. A company's plans can change with the company. A license with its copyright spread across that many people stays where it is.
Lamb lent his books to Coleridge because they came back with more in them than when they left. The AGPL lends Readest on similar terms. Anyone can take it and write in it, and whatever they add stays open to everyone who reads with it.
Readest is AGPL-3.0 with no CLA. The source, including the sync server, is at github.com/readest/readest.
Footnotes
-
The $25 was flat. One highlight or ten thousand, the notes were worth the same. ↩
-
Of all the books to delete remotely, it was 1984. Jeff Bezos apologized a few days later and called Amazon's "solution" "stupid, thoughtless, and painfully out of line with our principles." ↩
-
The license can't help with a book locked to someone else's store. Readest has no DRM support, and an open reader would not have kept Microsoft's books opening. It would have kept the app, and the notes in it, under the readers' control. ↩
-
Elastic added the AGPL back as a license option in August 2024. ↩