← Back to work

Case file 03 · Tooling · Product

IDC Revision

Turns my Obsidian study vault into an exam-revision site: a dictionary for each subject, worked problem sets, and past papers you sit in the browser with done, wrong and skipped tracking. My whole class used it, with 500+ users in 30 days.

Year
2026
Role
Solo: design, build, content pipeline
Read
3 min
500+Users in 30 days
744Pages built
6Subjects covered
106Tests passing

Context

An exam-revision site built out of my own Obsidian study vault. Six subjects, each with a dictionary of linked concepts, worked problem sets, step-by-step recipes and past papers you sit in the browser. I built it around the way I already revised (do a past paper, go back to the notes when stuck) and then shared it with my class.

The problem

The material was spread across a vault of markdown notes, PDFs of problem sets, and whatever past papers each department had or hadn't handed out. None of it was easy to find under exam pressure. Doing a paper meant the questions in one window and a hunt through the vault in another, with no record of which ones I'd already got wrong. And the vault couldn't just be pointed at a website. Its file paths have spaces, its links are Obsidian wiki-links, and its notes are written to be read, not rendered.

The vault it is built from

What I built

An Astro site generated from the vault by an ingestion step, so the vault stays where I write and the site has its own copy of the content. Every subject gets a dictionary built from the vault's own wiki-links, problem sets with worked solutions, recipes for the procedures worth memorising, and past papers as real pages instead of PDFs. Each paper has per-question tracking, a self-grade row for open answers, a floating scorebar and a score at the end. Equations render with KaTeX. Where a course gave out no past papers, I wrote mock ones from the course material. A separate tool logs into the university portal and pulls new lecture slides and papers into the pipeline.

A paper, answered in place
Exam-prep cheat sheet

Decisions & iterations

Past papers live on the site, not as attached PDFs, so a question can link straight to the concept behind it and a wrong answer gets recorded instead of forgotten. Ingestion only goes one way on purpose. I write in the vault and the site builds from a copy, because the alternative ties a static build to a folder full of spaces and Obsidian syntax. Pages are generated as drafts and then reviewed, and a flag in each page flips once I've edited it, so re-running ingestion leaves it alone. The most interesting fix was in the question banks. An automated check found that in one paper the correct answer was the longest option 25 times out of 25, and that a draft answer key had come out as a repeating four-letter cycle. Both could be cracked without reading a single question. Options are now matched in length and the key is shuffled, which is the difference between practice and a puzzle.

Preview, review, merge, repeat

Outcome

Deployed and used by my whole class, with over 500 users in 30 days on Vercel Analytics. It grew from one hand-written econometrics sample of 31 pages to 744 pages across six subjects, with 106 tests passing. Past papers now include checked multiple-choice sets, five mock papers for the machine-learning exam alone, and full worked walkthroughs, including a plain-English version of the same material for someone who doesn't code. I built it as the tool I'd revise with, and it became the one my class revised with too.

Credits & tools
Solo: design, build, content pipeline — Alfie ReesAstro 6 · TypeScriptLive at idc-revision · shipped
Case file 03 of 06