Blog Posts
My Thoughts and Experiences with Vibe Coding (Mid 2025)
I've spent a bit of time doing some vibe coding and I wanted to share my thoughts about what went well and what didn't go well.
GitHub CoPilot Instructions Can Catch Ruby On Rails N+1 Queries
A new feature for GitHub CoPilot, called Instructions, can be used to catch N+1 queries in Ruby on Rails applications. It can even leave comments on Pull Requests when it finds them!
Preloading Nested Active Record Associations Syntax
Exploring a lesser known syntax for preloading nested Active Record associations.
Using PostgreSQL Functions with Rocicorp's Zero and Ruby on Rails
Zero updates our database directly from the UI and we can't rely on callbacks like 'before_save' when using it. Let's explore different ways to manage data requirements.
Setting up Rocicorp's Zero with Ruby on Rails
Rocicorp's Zero is a sync engine to power extremely fast UI applications. I decided to pair it with Ruby on Rails and wanted to share how I got everything working.
Adding Google OAuth in Rails 8
Rails 8 added an authentication generator, but what if we want to use Google OAuth? I decided to implement it using the oauth2 gem and share what I learned.
Adding Filenames To MDX Code Blocks with Next.js MDX Components
I've wanted to add filenames to my inline code blocks since I built this blog. I finally did it and got the styling just how I wanted!
Adding Email Address Verification in Rails 8
Rails 8 added an authentication generator, but it stopped short of creating User records and verifying their email address. I decided to build it and share what I learned.
Automating the Lifecycle of a Preview Environment
Preview Environments come and go, let's explore their lifecycle and some architectural decisions to think about when creating them.
Building Dynamic Breadcrumbs in Next.js App Router
Putting the pieces together to add breadcrumbs to a Next.js App Router project via Parallel Routes.