Tobias Davis

Designing better software systems.

Free resources for building better systems, contact me for system design help, or get on the email list (or use RSS).

Site logo image

Why An11ty?

I’ve been using Eleventy for a number of different content-based websites (aka “blogs”) for a while now. As much as I’ve grown to like it, I have never liked that the content (aka the Markdown files I spend hours writing) and the design (aka the Nunjucks and configs and so on) are mixed into the same folder.

One thing that I always appreciated about WordPress (even though we parted ways years ago) is that the content and design were distinctly different things. You could try out a different “theme” and none of your main content would be modified or destroyed.

(Having written a few things for WordPress in the past, I feel competent to have thoughts about it.)

It’s easy to criticize other people’s decisions, especially about software design, but one mistake I think Eleventy made is not keeping the content and layout/design distinct.

This becomes even more critical with Eleventy: since all the template, rendering, and compiling is mixed in to the folder with your content, you are the one responsible for making sure over two thousand dependencies (see here for a probably-outdated list) are kept up to date and configured properly.

Enter An11ty.

I created An11ty to be that (relatively simple) tool that would let me keep my blog posts in a folder, and my template somewhere else.

When I start my next simple blog site for my next big idea, I don’t want to spend my brain cycles fiddling with a bunch of configuration details, and I don’t want the background stress of making sure everything is up to date when I publish my next blog post.

Instead, I just want to write content.

On the other hand, I don’t want to be so trapped by a framework, that I can’t manage to update simple (or even complex!) things.

While still very much works-in-progress, the official template and official starter show how you can make a template that is easy to set up and start using, but also fully modifiable.

(There’s also a minimal starter that shows how little is needed to get started.)

That’s about all I have to report at this time. It’s still very incomplete, but since I’m using An11ty for a handful of different websites, it will continue to see development over time.