Learn together, without giving up freedom or accessibility.
OpenLearn is a self-hosted learning platform: a wiki to write knowledge down, a quiz engine to check it, and revision cards to keep it. No advertising tracker, no dependency on a platform — just a server, a browser, and the people using the software.
AGPL-3.0-only · FastAPI + SQLite · Docker · WCAG 2.2 AA · 12 languages
What the software does
OpenLearn puts together three gestures that belong together: writing down what you know, having it recited back, and coming back to it at the right moment.
A wiki that expects cross-references
Markdown pages, versions, a page tree, a link graph, citations and a bibliography. A page always knows who changed it and what changed.
A complete quiz engine
Single and multiple choice, confidence ratings, a live mode hosted by a presenter, solo games, detailed assessment and result export.
Spaced repetition
Any wrong answer can become a card, served again after an interval that grows as it comes back right. It is the oldest and most solid pedagogy there is: repetition at increasing intervals.
Room for every team
Accounts, avatars, roles (author, moderator, administrator), API keys and MCP access give an external tool or agent what it needs to read and create content without the interface.
A server, not a subscription
One Docker image, SQLite by default, backup and restore in a single command. A modest server is enough for a whole class.
Twelve languages, Arabic right to left
French, English, German, Spanish, Italian, Russian, Chinese, Japanese, Portuguese, Hindi, Bengali and Arabic — every screen is translated, not only the landing page.
The question that decided the architecture
Most online learning platforms charge for access to knowledge, track every click, and keep content locked in. We wanted the opposite: software that an association, a school, a lab or a family can put on its own server, leave running for ten years, and walk away from without losing a line.
That choice has technical consequences, accepted one by one. They are described in the philosophy behind the project: why AGPL rather than MIT, why an optional account, why accessibility is not an optional layer, and how the project refuses to measure people.
Documentation
The user guide describes every feature screen by screen, with the real paths of the application:
Getting started
Account, email confirmation, sign-in, navigation, languages, theme.
The wiki
Write in Markdown, keep versions, restore one, cross-link pages, publish.
Quizzes
Create, set the attempt rule, play solo, host a live game, read the statistics.
Revision
Cards, card decks, spaced repetition, printing.
Moderating and administering
Publication queue, notes to authors, accounts, mail, AI, SSO, temporary bans.
API and MCP
API keys, the OpenAPI reference, connecting an agent.
Who it is for
- A teaching team that wants a course space without depending on a vendor.
- An outreach association that writes explainers and wants them revised.
- A quiz club that needs a live mode and a scoreboard.
- A public body bound by accessibility and data-sovereignty requirements.
- A developer looking for a readable example of a FastAPI API, a versioned wiki and accessible front-end components.
Project status
The software is used in public: openlearnproject.org is an open demonstration instance, filled with a catalogue of sample content. The code is complete, tested (over 450 back-end tests plus a browser end-to-end suite), and published under AGPL-3.0-only with a CLA for contributions.
OpenLearn is written by Jean-Pierre GARNIER and released under AGPL-3.0-only. The OpenLearn name and the demonstration instance are not granted with the code: see the trademark terms in the repository.