Open-source project
hwgilbert16/scholarsome avatar
hwgilbert16/scholarsome

Scholarsome: a self-hosted flashcard server that treats syncing as the problem to remove

Web-based interactive flashcard learning software

790 stars69 forksTypeScriptAGPL-3.0

At a glance

What is it?
Scholarsome is an AGPL-3.0 web application for creating, importing and studying flashcard sets from a central server. It is a reasonable fit for small groups who want Quizlet-style features without per-seat pricing, and a poor fit for anyone who needs spaced repetition today.
Who is it for?
Adopt Scholarsome if you are comfortable running a NestJS and Prisma stack on your own hardware and your study workflow is definition drilling, sharing sets inside a small group, or importing existing Quizlet and Anki decks into a browser interface. Do not adopt it if spaced repetition scheduling is a requirement, since the README lists it as a future feature, or if you need a documented public API for automation.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 84 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The paywall problem Scholarsome was written against

The README states the project was "inspired by the larger sites that are now charging for core functionality" and that it "intends to be a drop-in replacement for any study workflow." That sentence is the whole thesis. The target user is someone who already studies with web flashcards, has hit a limit on set creation, import, or quiz modes, and would rather run a server than pay a subscription. The secondary audience is a teacher or study group that wants shared sets with visibility controls and does not want student data leaving a machine they control. The README puts the privacy claim plainly: users keep "their data secure locally." Note what that does and does not mean. It means the operator holds the database. It does not mean end-to-end encryption, and nothing in the material suggests per-user encryption at rest.

Central server instead of device sync

The design philosophy section rejects the sync model outright. "There is no syncing between multiple devices to worry about, as data is stored, accessed, and edited from a central server." That is a real architectural decision with consequences in both directions. On the plus side, there is no merge logic, no conflict resolution, and no per-device state to reason about. A set edited on a laptop is the same set a phone sees, because there is only one copy. On the minus side, the deployment is now a dependency. If the server is down, or the user is offline on a train, there is no local study mode described in the README. Compare that with Anki, where the collection lives on the device and sync is an optional layer. Scholarsome inverts the default: the server is the source of truth and the browser is the client. The stack reflects that. The README names NestJS for the backend, Angular for the frontend, Prisma as the data layer, and Nx as the monorepo tool. The repository layout under apps/ (front, docs) matches a single deployable web application rather than a set of native clients.

What you can actually do with a set today

The feature list is concrete and worth reading literally. You create study sets, use LaTeX for math expressions, share sets with other users, import from Anki, Quizlet and CSV, export to the same three formats, study in "multiple learning modes," build quizzes from fill-in-the-blank, true/false and multiple choice questions, edit sets, and change set visibility. The import and export paths matter more than they look. They are the escape hatch. A group can move existing Quizlet decks in, and if the project stalls, move them back out to Anki or CSV. That reduces the switching cost considerably, and it is the strongest practical argument for trying Scholarsome before committing a semester of material to it. The quiz generator is the second differentiator. It converts a set into question types automatically, which is a step beyond flipping cards and is the kind of thing the README means by core functionality that other sites paywall.

Installation: containers for production, source for development

The README draws a hard line between two install paths. For self-hosting, "documentation for installation can be found here," pointing at apps/docs/docs/docs/installation/installing.md, and the README describes a "standard container-based system that is used for production installs." For development, the project "is required to be installed outside the standard container-based system," with a separate guide at apps/docs/docs/development/development-guide.md. That second sentence is the one to take seriously. It means the container image is the supported deployment artifact and the dev workflow is a source checkout, presumably driven by Nx targets across the apps/ tree. The material does not reproduce the exact docker or compose commands, so I am not going to invent them. Read installing.md and follow it literally. The config surface you will be touching is the Prisma connection and whatever environment variables the NestJS application reads at boot; neither is enumerated in the README, which is a gap. Before you expose the instance, confirm from the installation doc which database Prisma targets and whether the container expects an external one.

Spaced repetition is not implemented, and that is the decision point

The "Features coming soon" list includes "Spaced repetition system implementation," alongside interactive study games, persistence of quiz results, editing permission sharing, an improved profile page, and a user-accessible API. Read that list again, because it defines the tool's current boundary. Spaced repetition is the mechanism that makes Anki effective for long-horizon memorization, and Scholarsome does not have it yet. Quiz results are also not persisted, so there is no history to review and no data to feed a future scheduler. The README is candid about this: "Scholarsome is far from complete" and the maintainers "believe in shipping fast and early to gain feedback." That is an honest position, and it is also a warning. If your use case is cramming a vocabulary list for a test next week, the missing scheduler costs you little. If your use case is retaining anatomy terms over two years, the missing scheduler is the entire product, and you should stay on Anki until the feature ships. The absence of a user-accessible API is a second limitation worth naming: any automation you want to build around sets has no documented entry point in this material.

How it differs from Anki, and where it sits next to Quizlet

The README itself frames the comparison. It acknowledges that "Anki, SuperMemo, etc." offer "countless features" but argues those tools "can be daunting to new users, or are bloated with features that can be seen as overwhelming." Whether you accept that framing depends on which side of the difficulty curve you sit. Anki's model is a local collection with a mature spaced repetition scheduler, a large add-on ecosystem, and sync as an optional paid service. Scholarsome's model is a hosted web app with a shared database, no scheduler yet, and self-hosting as the only way to keep data in-house. The difference in approach is not cosmetic. Anki optimizes for long-term retention on a device you own. Scholarsome optimizes for zero-setup access from any browser pointed at your server. Against Quizlet specifically, the README's claim is narrower and more defensible: it is an open source alternative that does not paywall core functions and can be run on your own hardware. That is a licensing and hosting argument more than a feature argument, and it is the one the project can actually win today.

Licence, maintenance and the cost of staying current

Scholarsome is AGPL-3.0. If you run a modified version as a network service that others use, the licence's network clause is the part your legal team will want to read, because it extends source-availability obligations to users interacting with the service over a network. I am not giving legal advice; treat that as a flag to check, not a conclusion. On maintenance, the material shows releases at v1.0.10 in December 2023, v1.1.0 in January 2024, and v1.2.0 in March 2024, with the last push to the develop branch in June 2026. That pattern suggests a project that shipped actively for a period and has since moved more slowly on tagged releases, though the develop branch remains the default and is where work lands. The practical upgrade cost is the usual one for a Prisma-backed web app: schema migrations between versions, a container rebuild, and a database backup taken before you pull. Budget for that rather than assuming in-place upgrades are free. The AGPL also means any fork you publish has to carry the same licence, which limits how you can wrap this into a closed product.

Editorial conclusion

Adopt Scholarsome if you are comfortable running a NestJS and Prisma stack on your own hardware and your study workflow is definition drilling, sharing sets inside a small group, or importing existing Quizlet and Anki decks into a browser interface. Do not adopt it if spaced repetition scheduling is a requirement, since the README lists it as a future feature, or if you need a documented public API for automation. Before committing, verify the installation guide at apps/docs/docs/docs/installation/installing.md against your host, confirm which database Prisma is pointed at in your deployment, and check whether the v1.2.0 release from March 2024 is the version you intend to run.

Official sources

  1. hwgilbert16/scholarsome on GitHub
  2. License: AGPL-3.0
  3. Project website
  4. README
  5. Releases
Community notes

Community notes