Web Applications

Recall

Built by Katrina Villamor

A spaced-repetition trainer I built for my sister's nursing board review, later opened up to her study group.

  • Builder email verified

    Verification

Project screenshot
Type
Personal
Category
Web Applications
Published
Jul 25, 2026
Updated
Jul 25, 2026
Built withNext.jsTypeScriptSupabaseTailwind CSSVercel
TopicsEdtechHealthtech

About this project

What I built & why

My sister was revising for nursing boards with paper flashcards and reviewing the same cards she already knew while neglecting the ones she didn't. Spaced repetition apps exist, obviously, but the good ones assume you'll build a deck and she needed to type in material from lecture handouts on a phone at odd hours. I built her something with a deliberately fast card-entry flow and a scheduler that just works without configuration. It took about a month of evenings, and it's the only front-end project I've finished.

The problem

It solves the problem that revision time is finite and attention goes to the wrong material. The scheduler decides what to show and when, so the student doesn't have to. It's for people revising a large body of factual material under a deadline — my sister first, then eight people in her study group, then a handful of their friends. It doesn't try to be a general knowledge tool; there's no import, no marketplace, no sharing beyond a group you're invited to.

What I owned

All of it, which is why the code is the way it is. I did the scheduling algorithm, the data model, the Next.js app and the deployment. The scheduler is a variant of a well-known spacing algorithm with the parameters adjusted after watching how my sister actually used it — she reviewed in long sessions the night before, not daily, and the standard parameters punish that pattern harshly. I also did the interface design, which a designer friend looked at and described as functional, correctly.

Technical & product decisions

I chose to make the group feature a shared deck with individual schedules, rather than a shared schedule. Eight people revising the same material are at different points and giving them a common queue would have made it useless for everyone but the median student. I stored review history as an append-only log rather than just the next-due date, which let me change the scheduling parameters twice without losing anyone's progress — I recompute from history. I also deliberately left out any gamification. My sister was revising for a professional qualification under real pressure, and a streak counter that makes her feel worse for missing a day was not something I wanted to build.

Hardest challenge

The hard part was cramming. The scheduling literature assumes steady daily review, and real students under deadline pressure do eight-hour sessions two days before an exam. My first version scheduled cards weeks out and was useless in that mode. I added a deadline-aware mode where you enter your exam date and the scheduler compresses intervals to fit, prioritising cards you're weakest on and accepting that long-term retention is not the goal any more. It's academically the wrong thing to do and it's what the situation calls for.

Result & impact

My sister passed, which I obviously can't attribute to a flashcard app, but she used it daily for four months and preferred it to what she'd been doing. Her study group of eight adopted it and about twenty people have used it since, entirely by word of mouth. I've had two requests to add a feature that would turn it into a general study platform, and I've said no both times — it does one thing for one kind of user and I have no interest in maintaining more than that.

Who else worked on it

My sister tested every version and was blunt about the ones that were annoying, particularly the early card entry flow which took too many taps to use while listening to a lecture recording. Her friend in the study group found the bug where a shared deck's edits wiped other people's review history, which was the worst thing I've shipped and which she caught within a day. A designer friend looked at it once, told me it was functional, and declined to elaborate.