mrkeyoor.com_
Thu 03 Sept 14:36 UTC
Dataevaluationupdated 03 Sept 2026

anki review

Anki is the source code for a desktop flashcard program that schedules reviews according to how well you remember each card. It stores structured notes, renders card templates with media, and can synchronize collections through AnkiWeb so study can continue across supported clients.

trackingstars / 7d
Verdict

Our Anki checkout pulled 688 Yarn packages and 507 MB in 37 seconds, then its web build failed after 4 seconds on missing generated paths. Use the packaged app if your goal is studying; use this repository only when an add-on cannot do the job and you can work through its multi-language build and review rules. The active releases and issue handling are reassuring, though source contributors should require the documented ./ninja check path to pass before trusting a change.

We ran it

Lab card: what happened when we ran ankiScreenshot of anki (apps.ankiweb.net)
Install✓ · 37s688 packages · 507 MB
Build✗ · 4s
Testsn/ano test script
Repo4323 files~180,969 lines of source · 20.9 MB · 8 CI workflows

Answers from our run

Does anki build from source?

Dependencies installed in 37 seconds (688 packages), and the build failed. We cloned commit 20c475f into a clean Debian container with 3 CPUs and no project-specific setup.

Does anki have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use anki?

Learners who only want to study and do not need source changes: the project directs them to packaged stable or beta builds instead of the development toolchain.

What are the alternatives to anki?

Mnemosyne, AnkiDroid. Our Anki checkout pulled 688 Yarn packages and 507 MB in 37 seconds, then its web build failed after 4 seconds on missing generated paths.

Setup2/5688-package install passed, but the web build failed in 4 seconds
Docs4/5Thin README, backed by detailed build and contribution guides
Community5/530,273 stars, recent releases, and active September issue work
Maturity4/5Established desktop app; source build and current regressions need care

Who it’s for

Learners who want a mature desktop system for long-running, self-authored flashcard collections.
Developers building add-ons against Anki's hooks and Python libraries.
Contributors comfortable crossing Rust, Python, Qt, TypeScript, and Svelte code.
Teams that can test collection changes, scheduling, sync, media, and add-on compatibility before deployment.

Who it’s NOT for

Learners who only want to study and do not need source changes: the project directs them to packaged stable or beta builds instead of the development toolchain.
Contributors who need a small single-language build: our checkout had 4,323 files, and the development guide requires Rust plus N2 or Ninja before platform-specific dependencies.
Projects that cannot comply with AGPL-3.0-or-later and the repository's separately licensed portions.
Teams expecting the Yarn layer to build independently after install: our run failed while loading the Vite config because generated SvelteKit and out paths were absent.
Flatpak deployments matching Debian 13 under ChromeOS Crostini that cannot test first launch: issue 5499 reports v26.08.1 repeatedly crashing before the selected language is saved.
Contributors unwilling to discuss large changes first or link ordinary pull requests to an open issue: both are stated project rules.

Setup reality

Our sandbox installed 688 Yarn packages in 37 seconds and used 507 MB. The build failed with exit code 1 after 4 seconds: Vite could not find ./.svelte-kit/tsconfig.json, then hit ENOENT while resolving /work/repo/out. The Node harness found no tests script or target, so tests were skipped.

The documented source route needs Rustup, a pinned Rust toolchain, N2 or Ninja, and platform-specific packages. ./run orchestrates the development build; end users can avoid it with packaged releases or prebuilt Python wheels. No service credentials are needed to build locally.

Source paths cannot contain spaces, Windows users may hit WSL and MSYS2 conflicts, and lower-end machines can see extra CPU and disk use from rust-analyzer. The full project check is ./ninja check, which our Yarn-focused lab run did not execute.

The 4,323-file repository is for the desktop app

Anki schedules flashcard reviews around the learner's recall instead of showing every card at the same rate. The desktop application supports formatted card templates, audio, images, video, scientific markup, add-ons, and free collection synchronization through AnkiWeb. This repository contains that computer version, not every Anki-branded client. The official site points Android users to the separately developed AnkiDroid project and identifies AnkiMobile as the official iOS app. That split matters when reporting bugs or planning a feature across devices.

The codebase is correspondingly broad. Our checkout held 4,323 files and about 180,969 lines of source in 20.9 MB before dependencies. GitHub identifies Rust as the primary language, while the tree also contains Python libraries, a Qt desktop layer, TypeScript and Svelte interfaces, protobuf definitions, and its own build scripts. A change to card scheduling can have different risks from a visual editor change, and a collection-format change can reach sync clients outside this repository.

Packaged v26.08.1 is the right route for learners

The repository README sends ordinary users to the Anki website and packaged betas. That is sound advice. Version 26.08.1 has installers for supported desktop platforms, while the development guide says the first source build downloads and compiles many dependencies. Prebuilt Python wheels offer a middle route for scripts, add-on completion, or local library use. A learner who only wants spaced repetition gains nothing from debugging Rust, Qt, Vite, and platform headers before making the first deck.

What happened when we ran it

Our run used commit 20c475f in an unprivileged container with 3 CPUs, 8 GB of RAM, and Node 22. Yarn installation succeeded in 37 seconds, adding 688 packages and occupying 507 MB. The repository itself measured 20.9 MB. The lab identified 8 CI workflow files, no Dockerfile, and no tests directory. Those signals describe the checkout and the Node-focused harness; they do not cover Rust crates, Python environments, Qt libraries, or downloaded build artifacts.

The build failed with exit code 1 after 4 seconds. Its log warned that tsconfig.json could not extend ./.svelte-kit/tsconfig.json, then Vite failed to load /work/repo/ts/vite.config.ts. The final error was ENOENT, with Node unable to inspect /work/repo/out. We do not know from that tail why the generated directories were absent. The test phase was skipped because the Node harness found no test script or target, so this run produced no test count.

The official check uses Ninja, not the skipped Yarn target

Anki's development guide tells contributors to install Rustup and N2 or Ninja, then run the application through ./run. The Rust version is pinned in rust-toolchain.toml; newer toolchains may build yet fail tests, and older ones may fail entirely. Ninja 1.10 or newer is accepted, with N2 recommended for clearer status. The repository is orchestrated as one multi-language product, which explains why a direct web build can expect files generated elsewhere even though the log does not prove that was our failure's cause.

The full documented check is ./ninja check, with narrower targets such as check:svelte:editor. Our lab did not execute that command. It found no Yarn test target and stopped after the 4-second build failure. Contributors should therefore reproduce the supported top-level route before filing a build bug or merging a patch. The guide also provides ./ninja format, ./ninja fix, and Cargo's Clippy fixer, while the pre-push hook runs the full check rather than doing so on every commit.

AGPL-3.0 covers Anki, with named exceptions

The LICENSE file places Anki under GNU AGPL version 3 or later, with portions contributed by users under BSD-3. It separately lists files and bundled components under CC BY 4.0, MIT, Apache 2.0, BSD, LGPL, or public-domain terms. Documentation in docs-site uses CC BY-SA 4.0. GitHub consequently reports no single SPDX license for the repository. Anyone distributing a changed desktop build should review these terms rather than treating the top-level license as a one-line permissive grant.

Contribution policy is equally explicit. Large changes should be discussed on the forum before work starts, and ordinary pull requests must link an open issue or may be closed automatically. New behavior generally needs tests. AI-assisted code is allowed only when the submitter understands and reviews every change. Across a 180,969-line repository, those rules reduce speculative work and put a high bar on drive-by patches. Teams seeking a lightly governed base for a private fork may find that process and the AGPL obligations mismatched with their plans.

Version 26.08.1 is active, with specific regressions open

GitHub recorded the last push on September 2, 2026 and 481 combined open issues and pull requests. Stable v26.08.1 arrived on August 5 with fixes for broken custom-study links and a modal button. A v26.09 beta followed on August 25. Recent closed reports include a theme-switching bug, a deck modification-time issue, and a filtered-deck sorting error. The current push, release, beta, and closure activity together show maintained software despite the sizeable queue.

Open issues still matter to deployment choices. Issue 5499 reports a repeatable first-launch crash for the v26.08.1 Flatpak on Debian 13 inside ChromeOS Crostini. Issue 5503 says Anki Desktop 25.09.4 can paste a broken image.png reference from Discord on Windows 10 even with add-ons disabled. Neither report covers every installation. Both identify test cases worth adding when an organization distributes Anki with managed profiles, media-heavy decks, or a fixed Linux packaging method.

Add-ons beat a core fork for most custom behavior

Move into the core repository only when the required behavior cannot live behind supported hooks or external scripts. At that point, use a separate development profile because ANKIDEV disables automatic backups, pass the documented ./ninja check, and test real collection upgrades and sync across the clients in scope. Our 4-second build failure is enough to reject the direct Yarn route we measured. It is not evidence against the packaged study app, which remains the best-supported choice for most Anki users.

Alternatives

ProjectWhat it isPick it when
MnemosyneA desktop spaced-repetition flashcard application with its own learning workflow.pick this instead when you want a smaller dedicated desktop alternative and do not need Anki's add-on and client ecosystem.
AnkiDroidThe free Android client for studying and managing Anki-compatible collections.pick this instead when Android is the primary platform and you are choosing a client rather than changing the desktop codebase.

What people are saying

  1. [github-trending] ankitects/anki
  2. [velocity-scout] ankitects/anki

Sources

  1. Anki repository and README
  2. Anki official website
  3. Anki development guide
  4. Anki contribution guide
  5. Anki license
  6. Anki 26.08.1 release
  7. Flatpak first-launch crash report
  8. Discord image paste report

More data reviews

tidb · Summer2027-Internships · postgres · VictoriaMetrics · awesome-quant · sequelize · the whole board →