I've always been frustrated with existing spaced repetition tools that lock my knowledge into proprietary formats or require constant internet access. As a developer who lives in terminals and text editors, I wanted something that:
1. Stores cards as plain text files I can edit with any editor
2. Works seamlessly with Git for versioning and sync
3. Runs in a terminal without distractions
4. Has first-class support for code snippets and programming concepts
GoCard implements the SM-2 algorithm (the same one used by Anki) but instead of a database, it uses a simple directory structure where:
- Each card is a Markdown file with YAML frontmatter
- Directories represent decks and subdecks
- Everything is editable with standard tools
*Key features:*
- Distraction-free terminal UI built with BubbleTea
- Real-time file watching (edit cards in your editor while reviewing)
- Code syntax highlighting for 50+ languages
- Vim/Emacs keybindings for efficient navigation
- Hierarchical deck organization via directories
- Cross-platform (Linux, macOS, Windows)
What sets GoCard apart from other SRS tools is its developer-centric approach. Create cards with your favorite editor, organize them with your file manager, version them with Git, and review them in a clean terminal interface.
I built this because I wanted a knowledge management system that worked with my developer workflow rather than against it. Making everything file-based means I can apply all my existing text-processing skills and tools.
The project is v0.1.0, implemented in Go, and available at: https://github.com/DavidMiserak/GoCard
I'd especially appreciate feedback on the UX design and any suggestions for making it more intuitive for terminal users. Has anyone else built similar file-based knowledge tools? What patterns worked well for you?