Ombogo Jr

Building a Site on Eleventy

Why I reached for a static generator instead of rolling my own

Michael Ombogo | 2 July 2026 ♡ 5

I started this site the way I start most things: with a folder and a vague plan. This time the plan was to lean on Eleventy and let it do the boring parts, and I came away happy enough to write down why.

Markdown as the content model

The thing that sold me is that a post is just a file. I open an editor, type some markdown, add a little front matter at the top, and that is the whole content model. There is no database, no admin panel, no schema migration when I decide a post needs a subtitle. If I want to know what I have written, I list a directory. That plainness matters more than I expected. The content lives in text I can grep, diff, and back up like anything else.

Collections without ceremony

Because every post carries a tag, Eleventy hands me a collection for free. I ask for everything tagged post, sort it newest first, and I have an index page. Adding a new entry is dropping a new file into the folder. I never touch a list of routes or register the page anywhere. The build finds it, sorts it in, and moves on.

RSS almost for free

A feed used to be a thing I put off forever. Here it was close to a checkbox. Point the feed plugin at the same collection, give it a title and a base URL, and out comes a valid feed.xml. Readers who want to follow along get to, and I did not have to hand-write a single XML tag.

Zero client JavaScript by default

What I like most is what the site does not ship. By default there is no runtime, no hydration, no bundle to babysit. The pages are HTML and CSS. They load instantly and they will keep working long after any framework I might have picked has moved on to its next major version.

The feeling of a build that just emits HTML

At the end of it, I run one command and a folder of static files appears. That is the whole deploy story: upload the folder. There is something calming about a build whose only job is to turn my files into HTML and then get out of the way.

♡ 5 Recommend Discussion