Anki parity roadmap
A transparent map of Repeto's current Anki-compatible foundation, partial workflows, and remaining production work.
Repeto aims to preserve the concepts that make a serious spaced-repetition collection durable: notes, fields, note types, templates, sibling cards, deck trees, scheduling history, portable packages, and honest review.
The team audited all 55 pages in the current Anki desktop manual navigation, plus AnkiDroid user and engineering documentation. That audit is a requirements source, not a claim that every feature below is already shipped.
Available foundation
These workflows have a real implementation in the current product codebase:
- stable field and template identities, built-in note families, typed answers, Cloze, Image Occlusion, manual-add duplicate warnings, diagnostics, guarded conversion, and manual Empty Cards cleanup;
- the tested
repeto-anki-template-v1safe rendering profile across web, Android, iOS, and API fixtures, plus locally bundled and bounded Anki-delimited MathJax on web; - nested deck display and study scope, accessible ID-based creation parent picker with path preview, direct
Parent::Childnaming, confirmed subtree move/drag, missing-parent repair, numeric-aware sorting, hierarchical quotas, and configurable IANA timezone/rollover ownership; - FSRS-6 scheduling, durable learning/relearning state, configurable learn-ahead, manual and automatic sibling burying, 9,999-card web/iOS/Android sessions, additive Custom Study limits, private deck copies, and explicit preset sync;
- full web Card Info, durable-before-advance FIFO review outboxes and confirmed-review undo across web/iOS/Android, reviewer lifecycle actions, authored audio replay/pause/seek, and temporary record-and-listen voice;
- a Cards/Notes Browser with diagnostics,
w:word andprop:rretrievability search, sorting/pagination, configurable columns, saved views, literal or resource-bounded regex one-field find/replace, duplicate tagging and explicit keep-one deletion, atomic bulk transformations, and reload-persistent conflict-safe receipt history; - filtered decks with eight orders including FSRS relative overdueness, configurable preview delays, home-deck scheduling, guarded lifecycle actions, native backup coverage, and cross-device sync;
- direct
.apkgre-import with explicit update/ignore/add-new choices, plus structured CSV/TSV import and export with GUID/type/deck/tag directives, per-row mappings, bounded media staging, preview fingerprints, atomic commit, and idempotent retry; - native live-collection backup/download, protected empty or replacement restore, and five pre-replacement recovery points in Settings;
- legacy schema-11
.colpkgexport and proof-bound exact replacement through the API, with modern or lossy packages kept preview-only; - previewed Media health repair/trash/restore with conflict-safe Undo;
- Marketplace immutable-package and media verification, schedule-preserving updates, three-way conflict detection, and overwrite-or-fork recovery;
- FSRS evaluate/optimize/apply, retention reschedule preview and protected commit, deterministic workload simulation, stability/retrievability/retention views, and retained attributable deleted-card history;
- Help and recovery checks, privacy-safe diagnostics, route/application error boundaries, and clear recovery guidance.
Partial workflows
These areas work, but do not yet cover the complete Anki behavior:
| Area | Current boundary |
|---|---|
| Deck hierarchy | Creation and moving support stable parent IDs and canonical paths. Maximum depth, complete Default-deck lifecycle, and broad invalid/orphan repair beyond missing parents remain open. |
| Ordering | All six ordinary new-card gather modes and five post-gather sort modes ship. The complete review-order matrix, review-ahead algorithm, and dynamic filtered terms do not. Automatic sibling-bury controls ship in global presets and deck-private copies. |
| Note types | Web/API stable identities and standard/Cloze conversion ship. iOS authoring preserves field/template IDs through rename and reorder and creates fresh IDs for duplication; Android round-trips IDs but its manager remains read-only. Empty Cards excludes content-derived Cloze/Image Occlusion; IO→IO is narrow API-only and cross-kind conversion is rejected. |
| Template safety | The shared safe profile is tested but deliberately excludes scripts, remote resources, dynamic media, and unsupported Anki filters. Native typed-answer rendering is safe but interactive typed entry remains web-only. |
| Reviewer | Web is the complete reference surface. All clients have durable-before-advance review delivery and confirmed-review undo. Deck audio/autoplay and answer-time policy ship on web/API, but native composed audio, temporary voice, hardware shortcuts, pronunciation scoring, and some platform power workflows remain incomplete. |
| Browser | Full Anki operator coverage, arbitrary field columns/column reordering, field/tag/all-results replacement scopes, duplicate schedule comparison/merge, and saved-view rename in web remain. Bounded regex replacement, duplicate tag/keep-one decisions, and persistent receipt history ship. |
| Filtered decks | No freshly shuffled random rebuild, dynamic terms, or early-review algorithm. Configurable preview delays ship; home-deck learning/relearning steps are intentional. |
| Recovery and portability | Native restore is live-collection replace, not merge, deleted-item recovery, account backup, or timed DR. The web exact schema-11 .colpkg replacement is proof-bound; modern anki21b remains preview-only. |
| Media and Marketplace | Repair never fetches or permanently purges bytes and avoids dynamic/collision rewrites. Marketplace safe updates lack a pre-write itemized diff, and legacy installs without a baseline may require fork. |
| Statistics | FSRS rescheduling has an explicit stale/replay-safe preview-and-commit flow but no Undo. Optimization requires complete sufficient history. Arbitrary search scopes, PDF reports, and every legacy Anki graph remain. |
| Mobile | Safe template rendering and review-delivery integrity have a cross-client baseline, but full Browser, filtered-deck, authoring, recovery, media-repair, audio/voice, and accessibility parity does not. |
Highest-priority parity work
- Native feature parity. Finish Android authoring and carry composed audio/temporary voice, broader keyboard access, Browser, filtered decks, safe recovery, and durable offline lifecycle actions across iOS and Android while preserving the shared review-delivery contract.
- Finish the scheduling matrix. Add the remaining review-order modes, filtered early-review semantics, and conflict-safe Undo for committed retention rescheduling.
- Complete Browser power workflows. Broaden operators, fields, and replacement scopes, then add duplicate schedule comparison/merge tools.
- Strengthen recovery and portability. Add timed policy-controlled backups, modern
.colpkgcompatibility only where exact, and clearer itemized Marketplace update previews. - Broaden safe authoring. Extend the shared template fixtures, content-derived Empty Cards, Image Occlusion conversion/editor ergonomics, and accessible native typed answers.
Product decisions still open
- maximum supported deck nesting depth: five or ten;
- exact empty/hidden/rename behavior for the Default deck;
- whether Repeto will ever expose an SM-2 scheduler alongside FSRS;
- privacy and offline fallback for AI-assisted pronunciation feedback;
- the scope of third-party extensions without executing untrusted Anki add-on code.
What parity does not mean
Repeto will not reproduce desktop-specific Qt installer troubleshooting or pretend Anki add-ons can run safely in a hosted web application. It should provide equivalent user outcomes where they matter, preserve portable collection semantics, and label Repeto-specific enhancements honestly.
Status on this page changes only when an end-to-end user flow, storage contract, and focused tests exist. A database field or prototype alone is not counted as shipped behavior.