Learn things deeply.
Underlayer exists to solve a problem: most technical education is shallow. Courses rush through topics, skip foundational understanding, and rely on re-reading instead of active learning.
Underlayer takes a different approach. Every concept is taught from first principles, verified against authoritative sources, and tested until it sticks. We believe that understanding — not just exposure — is the goal of education.
Each concept follows a consistent structure: Why it exists, how to model it, the real-world details, concrete examples, and connections to other concepts. This ensures you understand not just what, but why.
After every lesson, exercises test your understanding. This isn't optional — it's how learning happens. Struggle is expected and normal.
The FSRS v4 algorithm schedules reviews at the exact moment you're about to forget. This means minimal review time for maximum retention.
Every hex dump, byte offset, and struct layout is verified against real specifications (gABI, ELF spec) or actual tool output (readelf, objdump). No invented data.
FSRS (Free Spaced Repetition Scheduler) is the algorithm behind Underlayer's review scheduling. Unlike older algorithms (SM-2, Anki's default), FSRS models human memory as a multi-component system:
After each review, FSRS updates these parameters and calculates the next optimal review time. The algorithm adapts to your individual memory patterns, not just population averages.
Underlayer is built from scratch using the Chemical programming language. Here's what powers it:
The programming language used for all platform code. Designed for educational tools.
Dual-backend database: SQLite for local development, Turso (HTTP) for production. Same code, same queries.
Course content compiles to static HTML/CSS/JS. Works offline, loads fast, no JavaScript framework required.
Built in public, verified by the community. Every design decision is documented and justified.
Underlayer is open source software. You can view the source code, report issues, and contribute on GitHub.