Skip to main content

Check the speedometer on the brand new Blog Awesome (now with 11ty)

Pop quiz, hotshot.


I’m delighted to announce that Blog Awesome (the content you are reading right now) is now built with the Eleventy static site generator. For astute Blog Awesome readers the web site’s design will look mostly unchanged but rest assured: this move will improve the long-term durability, stability, and performance of the project.

We’ve also taken this opportunity to ship a bunch of lovely new open source utilities for other folks looking to make a similar journey to the 11ty ecosystem, and you can read on to find out how we used these here.

Importing Content

The previous web site was authored and delivered via WordPress. We’ve moved the front-end out of WordPress but the current options for content creation remain unchanged. Our technical writers can draft and post new content directly from the WordPress CMS (if they wish!). Additionally, folks comfortable with code can write blog posts locally in the template language and development tools of their choosing.

Anyone can use the same tools

To facilitate this decoupling, 11ty has open-sourced a new Import tool to easily and continuously import content from any WordPress site. Using npm (npx is bundled with npm), the import command might look like this:

npx @11ty/import wordpress https://example.com/

After the command completes, you’ll have all of the blog posts, images, videos, CSS, and JavaScript cleaned up and downloaded to your local project. Post content is (optionally) converted to markdown files, images will be optimized, and any syntax highlighted code snippets will be cleaned up with Prettier.

The new Blog Awesome’s origin story started as Eleventy’s own Base Blog with the content imported directly into the content/blog folder of the template project.

Icons

At Font Awesome, we know a thing or two about icons so we had to do something special for the 11ty ecosystem here too. For peak developer experience and ultimate control over site performance, we’re using a special new experimental 11ty plugin for Font Awesome icons: @11ty/font-awesome.

This plugin builds a per-route SVG spritesheet for every page on your Eleventy project, with tree-shaking enabled by default. To use an icon, copy the HTML directly from the Font Awesome icon search into any page and you’re done!

<i class="fa-solid fa-bus-simple"></i>

The above HTML sample is rendered as with only a single instance of the SVG no matter how many buses are used. These icons work before (and without) JavaScript or CSS as well.

Colors

Most of the posts on Blog Awesome include a featured image at the top. Sometimes this featured image has a full width design treatment that bleeds out to cover the entirety of the header. Previously, these colors were manually configured. Now these colors are parsed out of the image directly without any additional intervention required using another 11ty plugin (@11ty/image-color).

Consider the following sample featured image from No, You’re Not Seeing Double. We Just Added the Remaining Duotone Styles!:

drawn illustration of red and blue 3d glasses

We’ve found the following theme colors and can use them to style the header:

Avoiding manual assignment of these colors allows us to more consistently adjust the text, icon, and logo colors in the header to have optimal color contrast.

The in the footer has a little easter egg that also makes use of these colors!

Keep it above 50 mph

Even better, we were able to deliver a much faster user experience for visitors as well. Let’s have a look at some before and after performance metrics for the home page.

Asset Type Before After
Total 1.5 MB (transfer) 134 kB (transfer)
HTML 18 kB 14 kB
CSS 597 kB 0 kB (inlined)
JavaScript 61 kB 2.4 kB
Fonts 212 kB 77 kB
Images 604 kB 36 kB

The following stats were gathered from Google’s PageSpeed Insights tool.

Metric Before After
FCP 4.5s 1.2s
LCP 7.1s 1.4s
TBT 240ms 0s
CLS 0.001 0
Lighthouse

We hope y’all enjoy the new site as much we enjoyed building it and the open source dividends that came along too. Now it’s your turn to go make something awesome!