Spaced-repetition flashcards that live in your own Solid Pod.
The app, its vocabulary and shapes (ns/) and the ready-made
decks (decks/) are published together at
https://solid-memo.com/, one released version at a time
(docs/deployment.md).
Solid Memo helps you remember what you learn. You study flashcards, and the app shows each card again just before you would forget it: this is called spaced repetition. It comes with about a hundred ready-made decks and a few short courses, in six languages, and you can write your own.
Most flashcard apps keep your cards and your study history on their own servers. If the app closes, or you want to move, your history stays behind. Solid Memo keeps them in your own Solid Pod instead: an online data store that you choose and control, from any provider or on your own server. Solid Memo only reads and writes there, in an open format that other apps can use too. You can also try it as a guest first, with everything kept in your browser.
It is for:
- learners who want their study data to stay theirs;
- deck and course authors, who write, check and publish decks in Solid Memo Studio (docs/studio.md);
- developers building on Solid, who can reuse its vocabulary, its shapes and its decks (docs/vocab.md, docs/shapes.md).
How to use it: docs/user-guide.md, which also says which browsers it supports. What it is for, and what it is not: docs/objectives.md. The same, for learners, authors, technologists and decision makers: solid-memo.com/about. It aims to meet WCAG 2.2, the W3C's accessibility guidelines, at level AA, with a keyboard and a screen reader as well: what is checked, the gaps known and how to report a barrier are in docs/accessibility.md.
| Your decks | Studying a card | A course's chapter |
|---|---|---|
![]() |
![]() |
![]() |
| The deck library | Your progress | Study activity |
![]() |
![]() |
![]() |
And Solid Memo Studio, where deck authors write and publish decks and courses, on a desktop's screen:
To see what the app does without signing in, open the report of its user journeys: tests that use the app in a browser as a person would, step by step, from CI's run on the version the site runs (none after a deploy by hand) (docs/testing.md).
Solid Memo is stable from version 1.0.0, its first release: the
app and its data formats can be relied on, and a change that breaks
them comes with a new major version. Its versions follow
Semantic Versioning, and each is released by
semantic-release, from the commits' types, once CI passes on main.
Each is tagged, with notes, on the
releases page, and
CHANGELOG.md says what changed in each. The site runs
the latest version, and nothing between two versions. How versions are
chosen and released is in docs/releasing.md.
Your data is safe across versions: every data format is versioned, and the app brings older data in your Pod up to date in place (docs/migrations.md). The vocabulary, the shapes and the library's decks have versions of their own, and a published version is never changed.
Solid Memo is committed to meeting the Standard for Public Code, an open standard for code that others can reuse, trust and help build. The badge at the top of this page says so. It shows that the project aims to meet every criterion, not that it meets them all yet: an assessment lists which requirements are met, which are not, and why (docs/standard-for-public-code.md).
Solid Memo is a static web page with no server-side code, so you can run your own copy on any web host:
npm ci
npm run browsers # once: Chromium, which the build draws the docs' diagrams in
npm run build # the whole site, the docs included, in apps/web/dist/
npm start # builds it, then serves it at http://localhost:4173Upload the contents of apps/web/dist/ to any static web space
(docs/deployment.md).
docs/reuse.md says what to change for your own copy,
and what must stay the same so that your users' data still works with
Solid Memo; docs/configuration.md lists the
settings.
You need Node 24 (see .nvmrc) and npm; Chromium for
npm run check and npm run build, which draw the docs' diagrams in it
(docs/markdown.md): npm run browsers
installs it once (on Linux, a machine that lacks the system libraries
it needs gets them with sudo npx playwright install-deps chromium);
Docker Engine 28.3.3 or later (or Docker Desktop) for the
end-to-end tests; and, for the optional pySHACL cross-check, Python 3
with scripts/requirements-ci.txt
installed. The dev container has all
of them.
npm ci
npm run browsers # once: Chromium, which npm run check and npm run build draw the docs' diagrams in
npm run dev # the site, from source
npm run check # lint and formatting (Biome, Turtle, Markdown), spelling, typecheck, tests (100% coverage), drift, the deck library, boundaries, the repository's own checks
npm run test:pod # the end-to-end tests, against Solid servers started in DockerHow the code is laid out: docs/architecture.md;
each package's own README.md says what it exports and may import;
how it is tested: docs/testing.md; how it is written:
docs/style.md; the terms the docs use:
docs/glossary.md; everything else:
docs/.
Everyone is welcome to suggest a change, report a problem or send one.
- Report a bug or suggest a feature in the issues.
- Ask a question or share an idea in the discussions.
- See the changes under way in the pull requests, and send your own: CONTRIBUTING.md says how.
- Report a security problem privately, never in a public issue: SECURITY.md.
Apart from security reports and code of conduct reports, the project talks only in public and in writing, in issues, Discussions, pull requests and commit messages, with no chat and no calls (GOVERNANCE.md).
How active the project is: its pulse, its commits and its contributors. How the project is run and who decides: GOVERNANCE.md. What is planned: ROADMAP.md. How we treat each other: CODE_OF_CONDUCT.md.
English is the authoritative language of the code, the docs, commit messages, issues and pull requests. The app itself speaks English, Swedish, Korean, German, Spanish and French (docs/i18n.md).
Solid Memo is released under the MIT License. That covers
everything in this repository, the documentation (docs/) and
the vocabulary and shapes (ns/) included, unless a file says
otherwise.
The ready-made decks carry their own licenses, stated in each deck
(dcterms:license, docs/deck-library.md) and
shown in the app. The vendored SHACL shapes keep their own: the DCAT-AP
shapes are CC BY 4.0 (license)
and the SkoHub SKOS shapes Apache 2.0
(license); see
packages/vocab/vendor.
The repository follows the REUSE
specification: every file states its copyright and license, in an SPDX
header or, for the files that cannot or must not carry one (the decks
among them), in REUSE.toml, and the text of every license used is in
LICENSES/. reuse lint checks it in CI
(docs/style.md).







