In this tutorial, I'm going to show you how to take one of the most common tropes of web design -- the card grid -- and make it fluid. | Continue reading
Mobile navigation and the "hamburger nav" pattern aren't going away. In this tutorial, I'll walk you through creating a mobile off-canvas navigation with only CSS and HTML. | Continue reading
Looking back on the past year, I've identified the five stages of my love with the CSS Grid Specification. | Continue reading
I'm still convinced that taking inspiration from punk rock design of the 70s and 80s is going to be a trend. If you want to start small, introduce some angles to your design. This is a simple trick to angle a stripe of content without adding awkward white space. | Continue reading
If you're wondering how to start working with CSS Grid, here are three strategies for adopting it into your workflow. | Continue reading
Contrary to popular belief, CSS is an absolute delight. Many developers I talk to think the phrase "Modern CSS" is an oxymoron. If you haven’t been watching the growth and maturity of CSS in the past 5 years, you’re doing yourself a disservice. | Continue reading
Use :after elements to create the simplest HTML possible to render useful and fun overlays on top of background images. Then extend them with blend-modes! | Continue reading
In a previous tutorial, I described how to create a simple fluid card grid with CSS Grid. In this tutorial, we'll take it a step farther and create promotional spaces that morph in interesting ways. | Continue reading
It’s no secret that I'm a fan of ::before and ::after pseudo-elements. I use them to great effect for creating darkened overlays in this previous post. They have so many uses beyond that, though. Here are my top 3 uses for them in my every-day development process. | Continue reading
An experiment adding dynamic functionality to this site pushed via iOS shortcuts and Netlify functions | Continue reading
I'm beginning my new journey as an independent creator. I've left the comfortable confines of agency life to see what I can do creating resources for designers and developers. I'll be writing, recording, speaking and consulting. Much of this will be under the headi … | Continue reading
It struck me recently as I was writing a new Sass mixin that there may be designers and developers out there that haven't translated vanilla CSS into a Sass function. In this article, I want to show how to take often-used CSS and convert it into a DRY (Don't Repeat Your … | Continue reading
The state of the web in 2018 has been heavy into the world of JavaScript. We've made amazing advancements in the way our sites work. Every site has the ability to feel like an application. Without HTML, though, our fancy future may have a dystopian layer right beneath the su … | Continue reading
The web is suffering from a crisis of trust. Every week there’s a new story posted about a data breach or untrustworthy practices (I’m looking at you, Facebook). How can we fix that? When we create user stories for new features, shouldn’t we also create user worries about them? | Continue reading
Late last year, I took the plunge and began to work full time on my passion - education. That has led to today. Today, I officially launched my first online course - Practical CSS Grid! | Continue reading
In the days before the web was mainstream, it was a place of creation. First for education, then for every random idea that any creator had! As the web transitioned from a network of educational institutions to the consumer force it is today, the early adopters were technologists … | Continue reading
Have you ever wanted to go back in time and see what it was like to browse the web using Sir Tim Berners-Lee's first web browser? I have. Apparently so did the team at CERN. For the 30th anniversary of the world's first web browser, The European Organization for Nuclear … | Continue reading
I'm grateful for my unique journey to find my professional niche. It's taken a lot of twists and turns. Is my journey replicable in this era of developer tooling and convenience? | Continue reading
I enjoy building workflows for pure static sites. I enjoy ingesting data into my build process instead of loading my client-side with fetches. In this example, we'll use Eleventy's ability to use a JavaScript file, to execute code to fetch data on site build, negating t … | Continue reading
I love the new layout modes in CSS. Grid and Flexbox are both amazing features. They each have their place. What if I told you that if you used the "wrong" one, you could double your CSS and HTML? Let's take a look at what appears to be a simple promo grid. | Continue reading
This article covers three topics I think will help define the JAMstack in 2020. | Continue reading
In this tutorial, we’ll take a look at setting up Netlify’s Durable Cache on a third-party API with (artificially) slow returns. We’ll use a proxied dev.to API, throttle it a bit, and see the effects of durable caching on the responses. We’ll also build a function to clear specif … | Continue reading
Launched a new version of the website... it's still pretty much the same, but way less complicated | Continue reading
Astro’s 5.0 beta has released a stable version of its astro:env module. This allows for developers to configure a schema for their environment variables and then take advantage of new feature this opens. | Continue reading
Shoutout to the Astro and Starlight team for helping me get this right. This guide provides step-by-step instructions on how to integrate Astro.js Starlight documentation into a Next.js project using proxies. Astro Starlight is an excellent documentation template. However, if you … | Continue reading
Right at the top, let’s say what’s in the title… The name Jamstack is meaningless… but then again, so is MACH … and composable… and headless… and Developer experience… and serverless…, but also, they’re all hugely important Meaningless and hugely important seem to be almost diame … | Continue reading
Oh hi, everyone! Listen, I've got some really exciting news. I'm honestly kind of shocked. I wrote a book. For a publisher. That comes out tomorrow. Amazing right? Well, listen, it's a book that talks about my absolute favorite development topic: 11ty. Let's not go any farther wi … | Continue reading
11ty Template filters are ways of manipulating data in a variable tag in your template language of choice. Each template language brings it’s own set and 11ty adds a few defaults, as well. Using a built-in filter To use a built-in filter, write a variable or expression in your la … | Continue reading
In these two videos, we take 110 seconds each to discuss how to use 11ty's Global Data files to pull static data with JSON and dynamic (at build time) data with JavaScript. 11ty JSON Data Files In this episode, we’re going to talk about Global data files. Specifically JSON data f … | Continue reading
The Render plugin is comprised of two shortcodes for use in your Nunjucks, Liquid or JS templates. It’s a plugin that is bundled with the main 11ty NPM package and ready to use as soon as you nom install 11ty. To get started with the plugin, you need to install it in your .eleven … | Continue reading
So here’s the deal, y’all: Netlify has this great event for December: dusty.domains, but I don’t have any unused domains! I set myself rules for domain purchases: No auto-renewal. Domains don't renew if they don't have a dedicated purpose after that first year. I've let a LOT of … | Continue reading
Recently, I've been really digging the idea of transitional apps and "islands" architecture for multipage apps. To that point, I've been playing with Slinkity for 11ty and its contemporary AstroJS. Astro is a great framework that lets you create pages and components in your favor … | Continue reading
Ben Holmes (the creator of Slinkity) posted on Smashing Magazine today about the creation of the Slinkity plugin for 11ty. After reading it, I had to give Slinkity a try. The use case My almost-6-year old has a little art website that I set up for him. Originally, it was just HTM … | Continue reading
The latest Eleventy 1.0 Canary releases have come with a special feature: 11ty Serverless. I've got a bigger article coming for this feature, but thought I'd take the time to put together a short guide on building a color code converter using this. View the demo Get the code on G … | Continue reading
Eleventy is an incredibly powerful tool in the Jamstack's static site arsenal. It's a static site generator with some data superpowers. I've been using its JavaScript data files for years now. I've also been using Markdown files to power this blog. Not too long ago, I discovered … | Continue reading
This week's intro will be a bit shorter than last week. Lots of things happening in the world, but hopefully this week's links can take your mind of things, and you can learn something along the way. This week, we have a couple articles from the folks at Netlify's Developer Exper … | Continue reading
New Year, New Newsletter Process, New Newsletter The last email newsletter I sent, I manually curated and it took me... too much effort. It was also in 2019... So welcome to a new era of me sending emails. I'll be sending them via ConvertKit, but my curation will happen through a … | Continue reading
2021: Getting the band (newsletter) back together Hi to all my wonderful subscribers and a happy new year! Most of you have gotten either an e-book or a course from me in the past. I want to express extreme gratitude to you. Thank you so much for doing that. If you didn't know, I … | Continue reading
If you write a technical blog and use 11ty (or Jekyll ... or just use Liquid or Nunjucks) as your static site generator of choice you might run into a conundrum: How do you show Liquid or Nunjucks template code in your code blocks? Whether you use the official syntax highlighting … | Continue reading
Those of you who follow me on Twitter and hang out with me in various community chats may know that I've been focused on moving for the past month or so. Something you may not be aware of is that I've also been getting ready to start a new job, as well. When you change one thing … | Continue reading
Creating active states in your navigation is important for guiding a user through your site. It gives them a sense of place and let's them know how to navigate from page to page. Setting active states in your templates isn't alway easy. Often, it requires setting a variable on ea … | Continue reading
A few weeks ago, Zach Leatherman announced that he was going to change the Built with 11ty section 11ty's documentation. He was going to create a performance leaderboard to showcase performant projects using the tool. My site wasn't on there, so I decided to add it in for round 2 … | Continue reading
In the second half of 2019, I took my passing interest in the JAMstack and solidified it as one of my main focuses. I'm excited about the prospect of what lies in store in 2020. I was asked by Brian Rinaldi to answer a few questions on Stackbit's blog about where I think the JAMs … | Continue reading
I use CodePen a lot. I've got hundreds (if not thousands) of pens. Most of them are throwaways, but some are things that I like to share. As a blogger, I like to drive people back to my blog from my Pens when possible. You can add a link in your Pen's details, but that's usually … | Continue reading
CSS has a whole lot of power. There are properties and values for any number of amazing designs. With all that power comes a lot to remember. If you don't know about all the tools in your toolbox, how will you find the right one for the job? In this post, we'll take a look at thr … | Continue reading
CSS Grid was missing one important piece when it's Level 1 specification was released into the world: Subgrid. The Level 2 specification is still in "Working Draft" status, but we have our first browser implementation. Mozilla has the Subgrid syntax in Firefox Nightly. Now that w … | Continue reading
My good friend James Q. Quick recently wrote an awesome post describing interacting with APIs without a framework. He used the Pokémon API PokeAPI. He hooked me and I had to put my own spin on it! Before we go any further, you need to head over to his site and read the original p … | Continue reading
One of my many favorite parts of the CSS Grid specification is grid-gap. It makes creating "internal margins" to my grids so much easier. Margins and the hacks we do to clear them in various contexts have long been one of my primary annoyances with CSS. Grid's gap just made so mu … | Continue reading