paulserban.eu

Portfolio Edition

Paul Serban

AI & full-stack engineer · agentic platforms · distributed systems

← Back to portfolio

Featured

Spaced-Repetition Quiz Engine

Flashcards that schedule themselves

Role: Solo builder

  • #react
  • #sqlite
  • #tanstack router
  • #typescript
  • #zustand

Problem

Studying from notes required a backend, account, or paid SaaS - with no algorithm swap and no reuse of existing content.

Approach

Shared SQLite content pipeline to static JSON; CSR React app with pluggable schedulers, reusable UI blocks, and offline PWA caching.

Outcome

Offline-capable study tool that reuses blog content with zero duplication, and a harness for comparing scheduling algorithms.

schedulers
2
answer_formats
4
accounts_required
0
View code Live demo

Problem

I wanted to study from my own notes without a backend, an account, or a paid SaaS - and I wanted to swap scheduling algorithms without rewriting the app. Existing tools either locked content behind their own formats or offered a single opaque scheduler with no way to experiment.

Approach

Questions are authored as MDX next to the posts they belong to, ingested into SQLite, and exported as a static JSON bundle. The web app is a strict CSR React 19 + Vite client: it loads that bundle, tracks learning state in the browser (Zustand + versioned localStorage), and feeds reviews to a pluggable scheduler. Presentation lives as reusable, Storybook-backed blocks in the shared UI kit; this app only owns containers, hooks, routes, store, and algorithms.

Outcome

A genuinely offline-capable study tool that reuses the blog's content with zero duplication, surfaces progress in a full stats dashboard, and offers a clean place to experiment with scheduling research - including measurable comparisons between SM-2 and FSRS.