A Simpler ButtonComponent: Just Render a Div
30 May 2026
A couple of weeks ago I wrote about trying to build a universal ButtonComponent — one with no custom CSS classes. The result worked but was complicated. The night I wrote it up, a simpler approach just came to me.
No more .button-grape: one component to bind them all
17 May 2026
A colleague asked recently whether we could push all of our button styles into a single component. Could we get rid of the CSS classes and have one place that knows what a button looks like — regardless of whether it’s a link, a form submit, a control, whatever?
The Icon Component I Keep Carrying
28 March 2026
Nearly every project I’ve worked on has, at some point, had to answer the question of inlining SVGs into HTML. I’ve been refining my approach to this from project to project and now have something stable and reusable I just drop into anything new.
Mock User Agent in View Component Specs
17 January 2025
Recently, I implemented a couple of ViewComponents to display links to our app in the app stores. These ViewComponents contained in a single place: the appropriate logo for app store, the link to the app in said app store, descriptions to make the links accessible and click tracking.
Adding a Star Rating with Turbo
14 January 2022
This post walks through the process of adding a rating system to a Turbo powered single page application. The application in question was built up in a previous post. If you want to follow along with the post, you can grab the repo at the starting point or just read the pull request.
Making a Single Page Search with Turbo
4 December 2021
Turbo (part of Hotwire) is a supercharged version of Turbolinks. If you’re used to immediately turning off Turbolinks in any new project, you might be surprised to learn that you don’t need React or Vue to build a rich and interactive web app.