RunwayHorse is built entirely with Rails. "One Person Framework" indeed. Authentication, database setups, websockets, payments, mailing, cron jobs, and responsive UIs were some of the things I implemented. Not all by myself, though. It's amazing how much complexity has been compressed with Rails to the point where one person can exploit all these things without setting them up from scratch. Websockets were as simple as adding broadcast_refreshes to my model. Authentication and my Postgres database didn't force me to write encryption or SQL code at all. Most applications do these things and have been doing so for 20+ years. Why wouldn't we integrate them into our web frameworks?
On the UI front, Tailwind, Turbo and sprinkles of JS with Stimulus gave me the responsiveness I needed without the weight of something like React. The elimination of layers of complexity between application code and UI is a large part of what makes Rails the One Person Framework. I don't have to jump through codebases or concepts to connect my domain models to their HTML representation. A huge unlock in productivity.
I also loved the ergonomics of deployment with Rails. I'm running the whole thing on one Hetzner server. Application, database, and cron jobs. All with the lovely simplicity of Postmark for mailing and Solid Queue for jobs backed by the database. bUt DoEs iT sCaLe? I don't care right now. There's no need to make things harder than they need to be. If I run into problems of scale, those are good problems to have and I'll deal with them in due time.
Finally, a callout to Hatchbox. I would use Kamal to deploy, but I'm still a beginner in DevOps and Docker so I prefer something with guardrails. Chris Oliver's done a great job making Hatchbox infinitely flexible, yet simple to use.
That's my RunwayHorse stack. It's the first commercial full-stack app I've made and I'm very proud of it. And I'm glad I live in a time where web programmers can take advantage of jumps in tech with decreasing complexity.