Today we will be learning how to build a tennis trivia app using Next.js and Netlify. This technology stack has become my go-to on many projects. It | Continue reading
I saw this blog post the other day: 58% of Hacker News, Reddit and tech-savvy audiences block Google Analytics. That's an enticing title to me. I've had | Continue reading
There comes a time on a project when it's worth investing in tooling to protect the codebase. I'm not sure how to articulate when, but it's somewhere | Continue reading
vanilla-extract is a new framework-agnostic CSS-in-TypeScript library. It’s a lightweight, robust, and intuitive way to write your styles. vanilla-extract | Continue reading
KendoReact can save you boatloads of time because it offers pre-built componentry you can use in your app right away. They look nice, but more | Continue reading
Here’s a beautiful website: it’s a type specimen for Mass-Driver’s ever-so-lovely type family MD Nichrome. There’s a ton of nifty animations and graphics | Continue reading
If you run or have recently switched to a static site generator, you might find yourself writing a lot of Markdown. And the more you write it, the more | Continue reading
In HTML, there is a very clear input type for dealing with passwords: If you use that, you get the obfuscated bullet-points | Continue reading
Scroll shadows are when you can see a little inset shadow on elements if (and only if) you can scroll in that direction. It's just good UX. You can | Continue reading
In this article I'm going to talk about branching strategies and different types of Git branches. I’m also going to introduce you to two common branching workflows: Git Flow and GitHub Flow. | Continue reading
Dumb trick alert! Not all browsers support all features. Say you want to write a fallback for browsers that doesn't support CSS Grid. Not very common | Continue reading
Animating elements with CSS can either be quite easy or quite difficult depending on what you are trying to do. Changing the background color of a button | Continue reading
Dave and I slapped up a little videos section of the ShopTalk website. Twelve so far! They are short-ish, between 10-20 minutes, each focused on one | Continue reading
How To Use The Vite Build Tool with React — Vite is hot, in part, because it's based on esbuild and wickedly fast. It's from Evan You of Vue fame, but | Continue reading
Directives are one of GraphQL’s best — and most unspoken — features. Let's explore working with GraphQL’s built-in schema and operation directives that | Continue reading
Of the languages that browsers speak, I'd wager that the very first one that developers decided needed some additional processing was HTML. Every single | Continue reading
A commit can be something that helps us stay on top of things. It can be a container for related changes that belong to one and only one topic, and thereby make it easier for us to understand what happened. In this post, we’re talking about what it takes to produce the "perfect" … | Continue reading
You may have already seen a bunch of tutorials on how to style the range input. While this is another article on that topic, it's not about how to get any | Continue reading
Chrome developer advocate Jake Archibald called 2016 "the year of web streams." Clearly, his prediction was somewhat premature. The Streams Standard was | Continue reading
I was pretty stoked when Chris shared a way to "View Source" on mobile. Sure, it's not the same as a built-in feature but it allows iOS users like myself | Continue reading
I had one of those little single-serving designer helper sites bookmarked the other day: getwaves.io. Randomized SVG waves! Lots of cool options! Easy to | Continue reading
Just last week I got one of those really?! 🤨 faces when this fact came up in conversation amongst smart and engaged fellow web developers: there | Continue reading
I enjoy little frameworks like Tonic. It's essentially syntactic sugar over
A lot of people these days are setting up their own newsletters. You’ve got the current big names like Substack and MailChimp, companies like Twitter are | Continue reading
Say you have a z-index bug. Something is being covered up by something else. In my experience, a typical solution is to put position: relative on the | Continue reading
Let's say we want to add something to a webpage after the initial load. JavaScript gives us a variety of tools. Perhaps you've used some of them, like | Continue reading
Frontend Masters has been our learning partner for a couple of years now. I love it. If you need structured learning to up your web development skills, | Continue reading
Whatever Google wants it to be. I always thought it was exactly what your
If you’ve recently started working with GraphQL, or reviewed its pros and cons, you’ve no doubt heard things like “GraphQL doesn’t support caching” or | Continue reading
There is a lot of buzz around apps running on the edge instead of on a centralized server in web development. Running your app on the edge allows your | Continue reading
Container queries are going to solve this long-standing issue in web design where we want to make design choices based on the size of an element (the | Continue reading
Logging, on its own, is a key aspect of any application. Logging helps developers comprehend what it is that their code is doing. It also helps save | Continue reading
CSS is on a tear lately. Again, I've heard of a brand new thing I've never seen before, and again it's via Miriam: CSS Conditionals. | Continue reading
There is a new thing coming in CSS: @layer. As with all new things, it takes time to really wrap your head around it. And despite me tapping at my | Continue reading
CSS ::before and ::after pseudo-elements allow you to insert "content" before and after any non-replaced element (e.g. they work on a
This is a good tweet from Harry: https://twitter.com/csswizardry/status/1436361516534620168?s=12 I like it because, as he says, it's the correct way to | Continue reading
Nowadays, creating complex shapes is an easy task using clip-path, but adding a border to the shapes is always a pain. There is no robust CSS solution and | Continue reading
Humans crave connections, and the advent of the digital revolution has empowered us to be more connected than ever before. The Internet has unleashed upon billions of people unprecedented economic and political freedom, as well as powerful means of control and domination. Yet, th … | Continue reading
You might already know about the CSS gap property. It isn’t exactly new, but it did gain an important new ability last year: it now works in Flexbox in | Continue reading
Many developers love working with static site generators like Gatsby and Hugo. These powerful yet flexible systems help create beautiful websites using | Continue reading
Have you ever been in a situation where you wish you could have some control over the values in an object or array? Maybe you wanted to prevent certain | Continue reading
Blogging about HTML elements¹? *chefs kiss* Here's Ben Myers on the (aptly described) "underrated" Definition List (
Browse through Dribbble or Behance, and you’ll find designers using a simple technique to add texture to an image: noise. Adding noise makes otherwise | Continue reading
I feel like my quest to make sure this site had pretty sweet (and automatically-generated) social media images (e.g. Open Graph) came to a close once I | Continue reading
I believe acss.io is the first usage of "Atomic CSS" where the point of it is to be a compiler. You write CSS like this:
We might leave a text input unstyled. We might leave a link unstyled. Even a button. But checkboxes… we don’t leave them alone. That’s why styling | Continue reading
I had no idea this was coming but it's pretty neat! Chrome has shipped the EyeDropper API in v95 (Canary, as I write). | Continue reading