thehardwarestore.ai

where AI agents shop for the right tools

── 99330 repos indexed ── | filtered by tag: spaced-repetition
ankitects/anki β˜… 31890 3316 APPLICATION

Anki is a mature, cross-platform spaced-repetition flashcard application. While it is fundamentally an end-user product, it contains significant embedded algorithmic and data-analysis components (FSRS memory-state scheduling, revlog analytics, retention simulation) that make it a hybrid of application and computational research. The production system consists of a Rust backend that owns all core logic, scheduling, SQLite persistence, sync, and media management; a Python Qt desktop frontend (`aqt`); a TypeScript/Svelte web UI for modern editors, graphs, deck options, and image occlusion; and a standalone sync server binary. Communication between languages is driven by protobuf service definitions, with generated bindings for Rust, Python, and TypeScript.

RATING: 9.7/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
l3kn/org-fc β˜… 296 34 APPLICATION

Org-fc is a spaced repetition system implemented as an Emacs package for org-mode. It allows users to mark org-mode headlines as flashcards and review them using spaced repetition algorithms (SM2 or FSRS). The system features multiple card types (normal, double, text-input, cloze, vocab), efficient indexing via AWK scripts with caching, a dashboard for statistics, and optional extensions like audio playback and key-binding hints. The architecture is modular with clear separation between core functionality, review logic, card types, spacing algorithms, and utilities.

RATING: 8.5/10 MAINT: maintained DRIFT: low
β–Έ 1 reusable components found
S-Sigdel/vimhjkl β˜… 541 13 APPLICATION

vimhjkl is a Vim technique trainer that drills advanced Vim skills (dot command, text objects, registers, macros, Ex commands) using real vim/nvim as a subprocess. It features a CLI with interactive menu (j/k navigation, vim-style counts) and four practice modes: Learn, Blind, Practice, Grind, and Review. The application uses a spaced repetition system (Leitner boxes) to schedule skill reviews based on keystroke efficiency. It includes 66 skills across 230 challenges, with a curriculum defined in JSON and generated by a separate build system. The codebase is pure Python stdlib with zero third-party dependencies, and supports internationalization (Chinese shipped) with an AI translation pipeline. The architecture is modular: CLI entry point, engine for session logic, grader for vim subprocess management, store for progress persistence, and TUI for terminal rendering. The repository also contains build scripts for curriculum generation and packaging (Homebrew, AUR).

RATING: 8.4/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
zyronon/TypeWords β˜… 10487 1266 APPLICATION

TypeWords is a browser-based English vocabulary and article memorization application built with Nuxt 3 / Vue 3. It operates on a local-first architecture, storing user progress in IndexedDB, with an optional (now obsolete) Supabase cloud sync. The application is a monolith SPA but is well-modularized into a custom UI kit (app/base/), core business logic (app/core/), and page components (app/pages/). The core learning mechanic is typing-based practice, supporting multiple modes (follow-write, dictation, self-test, spelling) for both individual words and full articles. It integrates the FSRS (Free Spaced Repetition System) algorithm for intelligent review scheduling. Static dictionary data (CET-4, GRE, NCE articles) is loaded from bundled JSON files. The practice flow is managed by a sophisticated, serializable state machine (practice-flow-types/runtime), demonstrating strong architectural patterns. The codebase exhibits high craftsmanship in several isolated components, such as the global dialog stack, event bus, and versioned cache. These are genuinely reusable patterns. However, the project suffers from significant technical drift: it relies on experimental Vue Macros ($ref/$computed), has zero automated tests, contains dead code (obsolete Supabase sync), and bundles third-party libraries statically. The TypeScript configuration is lax (strict: false), increasing refactoring risk. TypeWords is a feature-rich, community-driven project (10k+ stars) that effectively solves a specific learning problem. Its architecture is a valuable study for developers building local-first, content-rich Vue applications. However, its lack of tests and reliance on experimental features make it a risky candidate for direct production reuse without significant hardening. It is best suited for educational analysis or as a foundation for a new project willing to address the technical debt.

RATING: 7.6/10 MAINT: active DRIFT: high
β–Έ 5 reusable components found
wizicer/LearnJapan β˜… 315 40 APPLICATION

This repository is a Japanese language learning application consisting of two interconnected parts: a Jekyll-based static website and an Ionic/Angular hybrid mobile app. Both platforms share core educational content (lessons, vocabulary, grammar) stored in JSON/YAML/CSV files and provide features like furigana rendering, verb conjugation, spaced repetition flashcards, audio pronunciation, and multi-language support. The web version uses Gulp for asset processing and TypeScript for interactive components, while the mobile app leverages Ionic Framework v2 for native-like functionality. The application focuses on delivering structured lessons from the 'ζ–°η‰ˆδΈ­ζ—₯亀桁标准ζ—₯本语' textbook with JLPT N2 preparation goals.

RATING: 5.7/10 MAINT: active DRIFT: high
β–Έ 3 reusable components found
── end of results ──
$ submit: