Stuff & Nonsense product and website design

Blog and all that malarkey

Eleventy in a Box—just add water

Eleventy in a Box—just add water

For the past few years, unless a client insists otherwise, Eleventy has been my go-to for building websites. It gives me complete control without the overhead of a traditional CMS. Recently, I’ve pulled everything I’ve learned into my own Eleventy in a Box system for starting projects quickly, and boy-oh-boy, has it saved me a ton of time.

I like that Eleventy doesn’t force me into someone else’s idea of a theming system. I never got my head around WordPress, so I avoid it like a colonoscopy. With Eleventy, I have absolute control over HTML, CSS, and JavaScript. It’s simple to build with, and simple for clients to use. Most don’t need the complexity of a full CMS anyway. Hosted on Netlify with their editor, they can update content, and nothing else.

The more websites I’ve developed with Eleventy, the more I’ve written the same code over and over. Every new project started the same way: copying files, rewriting patterns, rebuilding features I’d already built dozens of times.

This wasn’t necessarily a deal-breaker, but it was a waste. And honestly, I’d rather spend my time coming up with a great design. So I stopped treating projects as one-offs and started building a system instead. I call it Eleventy in a Box.

Eleventy in a Box with light and dark themes.

I built my system reusing the parts I use on almost every project: boilerplate CSS, layout systems, and a consistent set of naming conventions. That consistency matters. I can move between projects, share code without rewriting it, and switch layouts without renaming components. Now, instead of spending half my time designing and the other half writing code, I’ve reduced development time and can spend more time on design.

Eleventy in a Box layout and contact page.

Using the same codebase doesn’t mean my designs look the same. If anything, it frees me up to push them further. These websites for Bego Pereda, Mountain Duck, Shared Homeland, and Verkehrsteiner all started from the same core, but they don’t look anything alike.

Websites for Bego Pereda, Mountain Duck, Shared Homeland, and Verkehrsteiner.

When clients needed extra functionality like a blog, changelog, FAQs, portfolio, services, or team pages, I stopped baking them into the core. Instead, I broke them out into feature packs. Each pack contains everything it needs—templates, content, styles, and configuration—and knows how to install itself into a project.

Eleventy in a Box portfolio feature pack.

Then, I built an “installer” which copies the packs I need into a project, including specific folders, Markdown files, stylesheets, and templates.

Eleventy in a Box team feature pack.

So instead of manually setting up every project, I describe what I need and let the system do the work. A prompt like this gets things up and running.

New website from Eleventy in a Box

  • Use $boilerplate-project-bootstrap.
  • Source boilerplate: /Users/[dir]/Sites/eleventy-in-a-box
  • Target project: /Users/andyclarke/Sites/[INSERT]

Create the new project from the current local boilerplate snapshot.

Feature packs

Install these packs only:

  • blog
  • case-studies
  • changelog
  • faqs
  • portfolio
  • services
  • team

Use the boilerplate feature-pack installer, for example:

node scripts/add-feature.js <feature>

Let each pack update navigation, CMS config, and feature files through its manifest.

Environment and validation

In the target project:

  • Install dependencies.
  • Run a production build.

Handoff

Finish with a short summary:

  • Project path
  • Packs installed
  • Node version used
  • Build status
  • Any manual follow-up needed
  • The most useful next prompt if I’m moving to a new thread
Eleventy in a Box case studies feature pack.

Using this setup means I can spend less time on repetitive code and more time designing, which matters not just for client projects but also for me. After all, there’s absolutely no fun in doing the same thing day in and day out.


For now, Eleventy in a Box is just for me. I might one day package it and share it more widely.


Written by Andy Clarke who tagged this with custom


More from Stuff & Nonsense

Services I offer

Product UX design

Product UX design

The contract template trusted by thousands of designers and developers to keep their web projects running smoothly.

Design mentorship and teaching

Design mentorship and teaching

Whether you’re stuck, starting out, or stepping up—Andy’s here to help you become a better designer.

Squarespace templates for sale

Squarespace templates for sale

Take your Squarespace designs from good to great with my bespoke templates.

Andy Clarke on YouTube

Andy Clarke on YouTube

Join Andy on YouTube to learn how you can make better product and website designs.