REST API

Content lives in a SQLite database (data/academy.db) generated from the Markdown files in content/courses by scripts/build-db.mjs. Every page and every JSON file below is generated from it at build time, so the whole site is served as static files.

MethodEndpointReturns
GET/api/tracks.jsonLearning tracks in order, each with its courses.
GET/api/courses.jsonAll courses in learning order with lesson, question and cheat-sheet counts.
GET/api/courses/{slug}/course.jsonOne course: overview, versions, lifecycle, tools (HTML) and the module → lesson syllabus.
GET/api/courses/{slug}/lessons/{lesson}/lesson.jsonOne lesson with grade, priority and HTML body.
GET/api/courses/{slug}/questions.jsonEvery interview question of one course, in course order.
GET/api/courses/{slug}/cheatsheet.jsonCheat-sheet sections for one course.
GET/data/questions.jsonAll interview questions with level, priority and HTML answer (filter them on your side).
GET/data/search.jsonPlain-text rows for lessons, questions, cheat sheets and courses, used by the site search.
GET/api/stats.jsonTotals: tracks, courses, lessons, questions, scenario questions, cheat-sheet sections.

Levels and priorities