Uses
The tools I actually reach for, not the ones I think I should use. This is the stack behind OutfitMaker and everything else I ship as a solo developer.
Backend
- Ruby 3.3 + Ruby on Rails 8.1. One framework, one language, one mental model. I run the latest Rails on a live product on purpose — here's how I did the Rails 8 migration with paying users without downtime.
- PostgreSQL 16 with pgvector. The relational database plus vector embeddings for "find similar items" search, in the same Postgres instance.
- Sidekiq + Redis for background jobs (the AI calls run async). Moving these to Solid Queue is next on my list, to drop one infrastructure component.
- Devise for authentication and Stripe for subscriptions.
Frontend
- Hotwire (Turbo + Stimulus). No SPA framework. Real-time features with a fraction of the complexity — I wrote up why I chose Hotwire over React as a solo dev.
- A PWA, not a native app. One codebase, installable on mobile. The reasoning is in PWA over native for a fashion app.
- Hand-written CSS. No utility framework — just a small design-token system.
AI
- Google Gemini, via Vertex AI. It powers the outfit suggestions in the wardrobe app I'm building. I've written about feeding it multimodal input and the surprise that Vertex AI can't return images.
Testing
- Minitest. I moved off RSpec — here's why.
Infrastructure & this site
- Railway for hosting and deploys (push to git, rolling deploys, zero downtime).
- This blog runs on Astro with hand-written CSS, deployed as a static site.
Want to see what I build with all of this? Browse the projects or read the blog.