Skip to content

JuliusBrussee/revu-swift

Revu (Open-Source)

Local-first spaced repetition for macOS.
Decks, cards, exams, study guides, and FSRS-powered review sessions in one desktop workspace.

macOS Swift License Download


As featured on

Awesome Swift macOS Apps Awesome Mac Awesome FSRS Awesome SwiftUI


Revu dashboard showing today's review session, learning intelligence stats, and deck sidebar

Revu is an opinionated macOS study app built around real workflows. It uses FSRS scheduling, stores everything locally, and gives you a dense, keyboard-friendly interface that makes serious studying feel organized.

This is a standalone, fully functional version of the app published as open source. The commercial product continues at revu.cards.

Features

  • FSRS-based review engine -- spaced repetition scheduling that adapts to your memory, not just intervals on a timer
  • Full study workspace -- decks, nested folders, cards, exams, study guides, courses, and review history in one place
  • Study session forecasting -- see upcoming workload, retention trajectory, and review velocity
  • Rich import pipeline -- Anki (.apkg, .colpkg, profiles), CSV/TSV, Markdown blocks, and Revu JSON
  • Local-first architecture -- SQLite-backed, no account required, no network dependency, fast
  • SwiftUI design system -- a real token-based system (spacing, typography, color, radius, shadow, animation) behind every screen
  • Keyboard-driven workflows -- built for speed, not clicking through modals
  • Export and backup -- full-fidelity Revu JSON export with stable identifiers

Screenshots

Learning pulse with retention trajectory and review velocity charts Study session with multiple-choice question and progress tracking
Learning pulse -- retention, velocity, and workload forecasting Study session -- multiple-choice with FSRS scheduling
Import workflow with template selection for Anki, Markdown, CSV, and JSON Review session with markdown rendering and math support
Import decks from Anki, spreadsheets, Markdown, or JSON Card review with markdown and LaTeX rendering

Install

Download Revu-1.0.dmg (macOS 14+)

  1. Open the DMG and drag Revu to Applications
  2. On first launch, right-click the app and select Open (required once for unsigned apps)

Build from Source

Requirements: macOS 14+, Xcode 16+

Open Revu.xcodeproj in Xcode and run the Revu scheme. No environment variables or backend setup needed.

# Build from the command line
xcodebuild -project Revu.xcodeproj -scheme Revu -destination 'platform=macOS' build

# Run tests
xcodebuild test -project Revu.xcodeproj -scheme RevuTests -destination 'platform=macOS'

App data is stored locally at:

~/Library/Application Support/revu/v1/
├── revu.sqlite3       # Local database
├── attachments/       # Imported media
└── backups/           # Export staging

Architecture

Revu follows MVVM with actor-isolated persistence and pure scheduling logic:

Revu/Revu/
├── App/           App entry, commands, workspace bootstrap
├── Views/         SwiftUI screens and reusable components (no business logic)
├── ViewModels/    @MainActor state and UI orchestration
├── Services/      Forecasting, session progression, import/export coordination
├── SRS/           FSRS scheduler and review math (pure, no side effects)
├── Store/         Actor-based SQLite persistence, DTOs, repositories
├── Import/        Anki, CSV, Markdown, JSON parsers
└── Export/        Backup generation

RevuTests/         Swift Testing suite
docs/              Architecture, import/export spec, UI design system

Key design decisions:

  • Views have no business logic. All mutations go through view models and services.
  • SRS algorithms are pure functions. Inputs are card state, review history, and settings. No side effects, easy to test.
  • Storage is actor-isolated. SQLiteStore handles schema management and concurrency; repositories provide the async API.
  • Design system is token-based. Spacing, color, typography, radius, shadow, and animation are all defined in DesignSystem.swift with reusable components in NotionStyleComponents.swift.

See docs/architecture.md for the full module overview, docs/import-export.md for format specs and merge behavior, and docs/ui-design-system.md for the canonical UI rules.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

The short version: keep PRs focused, follow the MVVM split, use design system tokens instead of magic numbers, run the test suite before opening a PR, and check for accidental private strings in changed files.

Bug reports should include macOS version, reproduction steps, and sample data if the issue involves import or scheduling.

License

GPL-3.0-only. The Revu name and logo are trademarks and are not licensed for reuse under the GPL.

The commercial product with sync, AI features, and the latest updates lives at revu.cards. This repo is the standalone macOS app -- fully functional, open source, and a solid codebase for anyone interested in local-first software, SwiftUI desktop apps, or spaced-repetition tooling.


Also by Julius Brussee

  • Caveman — Claude Code skill that cuts ~75% of output tokens by talking like caveman. Same accuracy, way less fluff. npx skills add JuliusBrussee/caveman
  • Blueprint — specification-driven development for Claude Code. Natural language → blueprints → parallel builds → working software.

About

Local-first macOS study app with FSRS review, decks, study guides, exams, import/export, and a polished SwiftUI desktop interface.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

Languages