I started building Rails apps after reading the Ruby on Rails Tutorial by Michael Hartl. I knew immediately that RoR and I would be long-time friends — convention over configuration is freeing, the number of resources available via gems or blog posts is empowering, and the complexities that the framework handles out of the box is incredible. Rails simply enables remarkable productivity for solo developers.

Ruby is also a major reason I continue to use Rails — it's clean, expressive, and enjoyable to write. Ruby is designed to make programmers happy, and after all these years, it still makes me happy.

I mostly use a vanilla Rails stack these days. In the past, I would sprinkle some React components in here and there, but I haven't felt the need to reach for React in a long time. Hotwire generally allows me to accomplish the level of client side interactivity I'm looking for without adding the complexity and duplicated logic of a full client side framework.

I've tried a series of approaches for deploying and hosting my apps. I've used Heroku, Capistrano + semi-managed VPS, Cloud66 + DigitalOcean, and Hatchbox + DigitalOcean. Fortunately, this is an area where I feel like I've found a solution I'm happy with for Rails apps: Hatchbox. It's a fantastic service that makes it simple to deploy and manage Rails apps.

I've used a variety of tools and environments over the years, and I feel like I'm still looking for the ideal setup. I've bounced between macOS, Windows, and Ubuntu using a variety of editors along the way — Sublime, Atom, RubyMine, VS Code.

Currently, I use an M1 MacBook Pro and an Ergodox EZ keyboard with Cherry MX Blue switches. This keyboard is my single favorite piece of hardware — it's a joy to type on and it has absolutely saved my wrists!

My standard stack currently starts with: