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 web/API codebase:
- collection-wide notes, ordered fields, tags, note types, and multiple templates;
- safe note-type mutation planning for existing positional field data;
- a routed note-type manager for ordered fields/templates, front/back/CSS editing, isolated live preview, server diagnostics, protected deletion, and preview-first standard note conversion;
- practical template replacement, conditional sections, metadata,
FrontSide, text filters, and cloze rendering; - sibling materialization for standard, optional-reverse, and cloze note types;
- built-in forward-and-reverse, optional-reverse, typed-answer, and Cloze families, with typed-answer comparison in the reviewer;
- Image Occlusion creation and editing with safe raster upload, rectangle/ellipse/polygon mask groups, two reveal modes, durable sibling reconciliation, preview, and a specialized reviewer;
- nested
Parent::Childdeck display and parent-subtree study scope; - FSRS-6 scheduling with Again, Hard, Good, and Easy;
- durable learning-step, scheduler-day, new-position, active-queue, burial, and undo state;
- configurable learning/relearning steps, retention, maximum interval, leeches, and a core ordering subset;
- 9,999-card API/session ceiling with per-deck daily limits;
- global study presets, complete private deck copies, explicit full sync, and today-only limits;
- reviewer reveal/rate, edit, flags, marks, card/note bury and suspend, reset/forget, set due, note copy/delete, current/previous summary, manual unbury, shortcuts, and durable offline review/undo;
- automatic sibling-bury semantics for new, review, and interday-learning cards at the API/scheduler layer;
.apkgpreview/import and single-deck.apkgexport with media and supported scheduling history;- deck-level text search, filters, selection, Shift-click ranges, bulk delete, and image attachment;
- a collection-wide Cards/Notes browser with structured query diagnostics, server sorting/pagination, and safe suspend/bury/delete actions;
- filtered-deck custom study with one or two browser-search filters, per-filter limits/orders/counts, preview or rescheduling behavior, and guarded build/rebuild/empty/delete lifecycle actions;
- a review-before-write structured-text importer for UTF-8 CSV/TSV/delimited files, explicit mappings and duplicate policies, diagnostics, atomic commit, restored drafts, and idempotent retry;
- statistics scopes, 4:00 a.m. scheduler days, first-review-per-card/day true retention, a 21-day mature boundary, separate overdue forecast data, several distributions, and CSV export;
- sync entities for note types, configs, decks, notes, cards, review history, and media.
Partial workflows
These areas work, but do not yet cover the complete Anki behavior:
| Area | Current boundary |
|---|---|
| Deck hierarchy | No drag-and-drop reparenting, parent picker, final depth enforcement, or complete Default-deck lifecycle. |
| Preset hierarchy | Parent sessions do not yet enforce every descendant and ancestor quota combination. |
| Scheduler day | Learning/interday state is durable and rollover uses local 4:00 a.m.; the boundary remains fixed and authoritative IANA timezone/DST ownership is incomplete. |
| Ordering | Intraday/interday/review/new priority and core new/review choices exist; separate gather/sort phases, retrievability, deck-priority, and every parent/child quota combination do not. |
| Note types | Reverse families, typed-answer review, Image Occlusion, live template diagnostics, safe custom-type deletion, and preview-first standard conversion work in the web manager. In-use positional mutations are blocked; Cloze/Image Occlusion conversion, stable field/template identities, automatic masks, Empty Cards cleanup, and full cross-client rendering remain incomplete. |
| Reviewer | The web action menu covers the production-critical lifecycle actions. Full-history Card Info exists in the API but the web dialog is still compact; unsuspend, audio replay/seek, temporary voice, and native-client parity remain incomplete. |
| Browser | The collection browser, substantial query subset, and same-source-type Notes conversion work. Saved searches, all Anki operators, configurable columns, find/replace, duplicates, moves, repositioning, rescheduling, and undoable bulk operations remain. |
| Filtered decks | The complete current web lifecycle works, including creation, study, rebuild, empty, and delete. Cross-device sync, filtered-specific learning steps, dynamic terms, early-review scheduling, and relative-overdueness/retrievability orders remain incomplete. |
| Import/export | Deck packages and the structured-text import screen work. Exact native backup/restore, legacy .colpkg export/read-only preview, and media audit exist in the API; text media/GUID/header parity, text export, user recovery UI, modern lossless .colpkg replace, conflicts, and automatic backups remain incomplete. |
| Statistics | Core definitions and scheduler-day grouping were corrected; deleted-card history retention, several Anki graphs, FSRS stability/retrievability views, optimize/evaluate, and workload tools remain incomplete. |
| Mobile | Responsive web and native foundations exist, but offline/background/media/accessibility behavior is not yet fully equivalent across clients. |
Highest-priority parity work
- Collection identity and authoring safety. Finish stable field/template identities, duplicate handling, empty-card cleanup, specialized conversions, and cross-client rendering.
- Scheduling correctness. Complete hierarchical limits, configurable rollover/timezone ownership, deterministic gather/sort phases, backlog retrievability, and FSRS evaluation/optimization tools.
- Finish backend-founded product flows. Ship and test the full Card Info view, native backup/restore controls, and media-integrity repair UI.
- Collection browser transformations. Add remaining query operators, saved searches, configurable columns, find/replace, duplicates, tag/flag changes, moves, repositioning, rescheduling, and undoable bulk operations.
- Audio and pronunciation. Centralize replay/pause/seek, deck audio policy, recording, explicit microphone privacy, and a non-AI fallback.
- Recovery and portability. Add automatic versioned backups, modern lossless
.colpkgreplacement only when it can be protected honestly, conflict recovery, structured-text export, and guided media repair. - Statistics and FSRS tools. Retain deleted-card history, complete state/age graphs, expose stability/retrievability, and add optimization, evaluation, and workload simulation.
- Cross-client production parity. Bring the web contracts to iOS/Android with offline, background, media, keyboard, and screen-reader verification.
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.