Writing
Dead simple dark mode with css custom properties
There's a lot of snark on various social channels any time a platform adds dark mode to their UI. To me, it's a decision based totally on the user and I think its great any time people get more control in their digital experiences. So, with that spirit in mind, let's look at potentially the most straightforward approach to applying theming based on device preference setting.
Getting Started With Container Queries
For as long as I’ve been working full-time on the front-end, I’ve heard about the promise of container queries and their potential to solve the majority of our responsive web design needs. And, for as long as I’ve been working on the front-end, there has been a running joke that we’d never actually get them coupled with a fair amount of anguish over their absence from our front-end toolbox.
2020... amirite?
This year, as virtually everyone on the globe experienced, was a rough one. From a raging pandemic infecting and killing millions of people, handled inexcusably poorly by the federal government, to months of unrest over the continued killing of unarmed people of color at the hands of the police, to an interminable election cycle culminating in an ongoing attempted overthrow of our democracy, 2020 kept piling it on until the end. But, we've all lived that shared experience and while it is far more important than anything I'll write here, I'm going to share a wrap up of my personal year.
A Little Thing I Learned About `sapper export`
I put this site together with Svelte and Sapper and am hosting it on Netlify. It's a glorious workflow. Write a post or make a new route, push to main and viola, instant deploys. The other day I decided to make a /uses page as I've enjoyed looking at other people's uses page. I stuck it in the routes folder of the src directory, saw it when developing but it kept not making it through the Netlify deploy. What was the deal? It turns out that the behavior of the sapper export command that Netlify was running on deploy was at fault. Let's take a look at this little quirk of that build command.
Simplify Your Ember App with Domain Components
As one of the elder statemen in the JavaScript framework landscape, Ember has been around for a long time. While it has fallen out of favor somewhat over the last few years with the rise of React, Vue and Svelte, Ember is still very much alive and has been completely overhauled with the recent release of Ember Octane. If you find yourself coming to Ember from another framework, it can be a bit daunting at first. But, by leveraging Octane to create an architecture built on _domain components_, things start to feel much more familiar. Let's dig in.
Connected Stripe Accounts with Ember Octane
Taking payments on the web can be tricky. Both the need to consider the security of the end user and the complexities of implementation as a developer mean that commerce can present a particular challenge when building web apps. Luckily, Stripe has made the process as close to painless as possible. While it's easy to find resources on how to accept direct payments, and even payments on behalf of a single third party account, it's much less straightforward when accepting payments on behalf of multiple accounts. Even less so if your development stack is based on Ember Octane. Let's dig in and look at how to get this done.
Dynamic Routing with Next JS and Apollo
Let's say your working on a headless ecommerce site and you need to put together a flexble component that can reference different product ids to populate a specific product page. Your store has thousands of products, so you're going to need something flexible to handle the volume.
Belated 2019 Year in Review
2019 was a weird year. I left a job of four plus years where I was very happy and joined a much smaller company focused on eCommerce and brick and mortar retail.
Font-Display is the Hot Jam
Ah, sweet web fonts.. Like a typographic oasis in a desert of mid-2000's 'web safe' fonts, they offered a unique aesthetic and the potential for consistent brand recognition without resorting to generic Georgia or Verdana.