I Built matbrown.dev
Table of Contents
I built a new site: matbrown.dev. Drop a folder of numbered markdown files in, and it becomes a course automatically: a table of contents, runnable code examples, and a set of questions to check your own understanding at the end of each lesson. No build step. No file to update by hand.
Four courses are live now: Git, TypeScript, and two I just added, Python and How LLMs Work. Python starts from the basics and goes through classes, inheritance, and packaging. How LLMs Work covers the actual mechanics behind the tools most people are using right now: tokens, embeddings, attention, how these models get trained, how they generate text, and where they actually fall short. I ran every lesson through a few rounds of review before publishing, because I wanted the content to hold up, not just sound plausible.
Why I built it
I take a lot of notes. Most of them sit in a file somewhere and never get touched again.
I wanted a way to turn old notes, or something new I'm studying, into an actual course: lessons that build on each other in order, with a way to check whether I understood what I just read. Writing it that way forces me to organize the material properly instead of just collecting it.
Once it exists in that form, there's no good reason to keep it to myself. If a course helped me learn something, someone else might get the same use out of it.
Search
With four courses and dozens of lessons, browsing stopped being enough, so I added search. Offline, and entirely in the browser, same as the search on this blog.
The mechanism had to be different, though. This blog is static. Every page gets built ahead of time, so Pagefind can crawl the finished HTML and index exactly what a visitor sees. matbrown.dev is a single-page app instead. Every lesson gets rendered from markdown in the browser, on the fly, so there's no folder of finished pages for anything to crawl.
What I did instead: build the search index in the browser, from the same markdown content the app already loads to render the lessons in the first place. Type a query, get the lessons that match from any course, with a short excerpt showing why, and click straight through.
What's next
More courses are coming. If there's something you'd want to see covered, let me know.
Take a look: matbrown.dev.
- ← Previous
I Built a Home for hackerapps - Next →
Things I Love: The Book