Acc. XIX · Vitrea disciplina — offline study chamber, cultivated 2026
NMAT Reviewer — offline-first NMAT practice PWA
Technical founder · Product engineer · 2026 · Independent studio
A free, offline-first PWA for the Philippine National Medical Admission Test, with 448 original practice questions, four study modes, and progress that never leaves the device.
Vitrea disciplina — offline study chamber, cultivated 2026
Field notes
The context
NMAT review material for Philippine medical-school applicants is typically paid, server-dependent, or both, and existing tools rarely give students a way to study offline or keep their progress private on their own device.
Cultivation
What I built
- Wrote 448 NMAT-style practice questions across eight subtests with verified references, and built four study modes — Practice, timed mock exams, Smart Review, and Leitner-box flashcards.
- Built multi-profile, on-device progress tracking in namespaced localStorage with schema-versioned migrations and corruption quarantine, plus checksummed JSON export/import for backup.
- Built a curated knowledge base of study articles per subtest and full offline operation via Workbox precaching with update notifications.
- Built build-time content validation enforcing per-subtest question minimums, and WCAG 2.1 AA keyboard navigation with prefers-reduced-motion support.
Root system
How it works
A single static SPA (Vite + React Router data router) whose marketing and knowledge routes are prerendered through headless Playwright for crawlers, while study routes stay client-rendered. Content is typed JSON validated by Zod at both build and load time. There is no server, no account, and no analytics — progress lives only on the device, which is the privacy posture the product is deliberately built around — and it deploys to Vercel as a static site with SPA rewrites.
Harvest
Outcomes
- Deployed and usable, with all 448 questions original NMAT-style material, unaffiliated with CEM.
- No user numbers are claimed.
Herbarium
The work itself






Committing to no server and no accounts turned a privacy preference into an architectural constraint that simplified everything downstream — no auth, no backend, no data-handling surface to secure. Prerendering only the crawlable routes while keeping study routes client-rendered kept SEO and offline-first from fighting each other.