Ana Luisa teaches story-based Spanish in Cuenca, Ecuador — beginner to advanced, plus cultural trips across Ecuador and Peru. Her old site was a template she could not edit: schedules went stale, photos rendered stretched, and students had no way to practice between classes.
What we built
A content API with no database — her classes, trips, schedule and flashcard decks live as JSON files the server reads and writes, kept simple on purpose so there is nothing to administer.
A password-protected admin page where she edits everything herself: drag-and-drop photo uploads, a visual weekly-schedule editor, session cards, trips and flashcard decks — with live previews of how each will look.
A spaced-repetition flashcard app (SM-2) so students review each class day's vocabulary on their phones; progress is saved per device with no login, and teachers can share private class decks by link.
One small NestJS server serves both the API and the Angular site in production — a single, cheap deploy on Railway.
The outcome
She updates the site herself after class — new decks, new sessions, new photos — and students practice between lessons. No developer needed for day-to-day changes.