My last website was pure HTML and CSS. I love the simplicity of that. No dependencies, no build steps, no databases, no nonsense. And the load times were lightning fast.

So much of the modern web is bloated beyond belief, from JavaScript frameworks that completely replicate the DOM to CMS themes that try to be all things to all people all at once. And while modern JavaScript frameworks have their place and CMSs can be great, I continue to believe in writing and shipping the cleanest, lightest, most bulletproof code possible.

But this time I wanted my new site to be a blog. And though it wouldn’t be too bad for someone like me to write the posts in pure HTML, the hassle of implementing pagination and RSS manually every time I write a new post was enough to get me thinking about ways to make things easier. This isn’t a compromise; it’s about reaching for the right tool for the job. But that doesn’t mean I have to abandon the principle of finding the most lightweight solution for that job. Enter Eleventy.

Eleventy

I’ve never built with a static site generator before, but I know enough about the topic to know that I want a true SSG, not something that’s going to use JavaScript to hydrate each page after load. Using a tool that’ll spit out good old fashioned HTML and CSS not only means that what I ship to users is fast and minimal, it also means that if I ever get sick of using the SSG, I can take my perfectly valid HTML and CSS and go merrily on my way to do whatever I want with it.

When it came to choosing which particular SSG to use, it all came down to simplicity, both in learning curve and use, and Eleventy wins on both counts. I was up and running in no time at all with minimal hassle and no hiccups. And from what I can tell, Eleventy is also one of the fastest compiling contenders out there.

Of course, looking at Eleventy’s copious list of starter projects, its no surprise that most folks don’t waste time in NPMing in oodles of additional frameworks and dependencies since that’s the popular way to code these days. But I find it easy enough to say no to Tailwind or Glitch or what have you. No, the only non-core inclusions I added are Eleventy’s own RSS and syntax highlighting plugins. I’m pretty sure I could build a feed template by hand and skip the RSS plugin easily enough, but I’ll leave that for a little while until I have more mastery of Eleventy’s capabilities and quirks.

Other than that, I’m building with vanilla CSS and Liquid for templating.

Data Store

There are a ton of ways to bring data into Eleventy and you could easily go down the headless-CMS route and come up with something pretty powerful. But with simplicity as my watchword on this project and in the name of avoiding endlessly chaining together services, I decided to add the posts in markdown. I’m still exploring the hows and wheres to find my ideal markdown authoring experience, and I hope to write a post on the topic once I’ve made up my mind a bit. (Forestry.io seems like a thoroughly modern solution, but one that’s probably overkill for this little site.)

Netlify

I’m a big fan of Netlify already, and continuous git-based deployment is definitely the future. And what makes them great for this kind of SSG project is that they handle the build step, so once I’m done developing all the templates and CSS, I can just commit my posts right to GitHub and don’t even need to run Eleventy locally. Everything happens behind the scenes and with minimal effort.

The Future

I always like to experiment with new tools, and I want to keep growing this site like a garden, pruning the weeds here and planting something new there as the seasons come and go. Maybe I’ll give Forestry a try at some point. Maybe I’ll refactor the CSS to use logical properties. For now, I’m just going to keep watering it with new writing and see where it leads me.