Why Ruby on Rails 8 is the perfect framework for solopreneurs.
"The One Person Framework."
That's the title of a post written three years ago by DHH, the creator of Rails, to announce Rails 7. Whether Rails 7 lived up to that standard is… debatable.
But a few days ago, DHH announced the beta version of Rails 8, and now I think the debate is over. Rails 8 is the ideal framework for solo founders.
But before we take a deep dive into what Rails 8 has to offer, let's explore the current state of web development.
Don't just take my word for it. This is the collective opinion of thousands of people on forums such as Hacker News.
React. Vue. Front-end tooling. Hundreds of lines of boilerplate.
Several years ago, a single person could create a full-fledged web app and ship it themselves. They could "fit" the logic of that web app inside a mental model in their own head.
Try doing that now. Your "brain budget" will be exhausted.
Which brings me to my next point:
One of the goals of Rails, according to DHH, is to align the simplicity of the coding process with that of our limited monkey brains.
Imagine trying to fit all the intricacies of a complicated build pipeline in your head, along with hundreds of depenencies, front-end and back-end tools, databases, and more.
DHH's vision is for you to be able to hold the entire problem in your mind, along with the entire solution. To be able to compress all of the parts of the modern development experience into small units that can fit next to each other so that you can squeeze all of them into your "brain budget."
Modern web development is not heading in that direction. Instead, we've been subdividing the industry into tiny slices of expertise.
DHH doesn't take issue with this in every case. Once an app is making millions of dollars, it's reasonable to scale up the complexity of its tech stack. But this isn't how things should look in the beginning.
If you go to the Rails home page, this is actually their headline:
So without further ado, let's dive deeper into the Rails 8 features that, in my opinion, make it the perfect app for solopreneurs.
As solopreneurs, we want to spend as little time and energy as we can getting our web apps up and running.
And my use of the plural form of "apps" here is deliberate. We often have to take many shots on goal (i.e. build and launch multiple apps) to find one that works.
So the cost of software hosting matters. If it costs, say, $30/mo to run a given app, things can get out of control quickly. Publish ten apps and you're looking at a $300/mo bill.
Rails 8 will make it "dead simple" to run multiple Rails apps on a single server:
Rails will offer this through a free, open source library. All you'll need in order to get started is a virtual private server (VPS). Many indie hackers, especially in Europe, use Hetzner, which has some incredibly cheap plans.
Compare all of this with Laravel's Forge, which is much pricier.
Want to run a background job system? You need Redis. A separate process, separate dependencies. Each major dependency adds a new problem for you to hold in mind.
RAM is expensive. If you take a look at most VPS pricing pages, it usually goes this way: More RAM equals more money.
According to DHH, you no longer need RAM-based databases like Redis for things like background jobs or websocket communications.
The reason: SSDs (solid-state drives) are becoming incredibly fast and provide "good enough" performance to replace RAM-based databases.
Rails 8 introduces a few new database-backed adapters called "Solid":
Solid Cable: for Websocket communications. Solid Cable gets 50% of the performance vs. a RAM-based database, which is good enough for the vast majority of web apps.
Solid Cache: for Cache storage
Solid Queue: for running jobs. You can choose to run these jobs as a process inside your main server process, which further simplifies things. According to DHH, his email client Hey.com currently runs 20 million jobs per day with Solid Queue.
All of these adapters run on top of SQLite, which is a simple file. No process involved. No need to set up a database and learn it inside and out.
You no longer need to use a third-party library like Devise to implement authentication for your web app.
Rails now supports built-in authentication (something that Django/Laravel supported long ago).
Rails also has Thruster: a built-in web server. So no need for Nginx.
DHH claims that all of these features have given Rails a "compression factor of 6," meaning they have compressed the level of complexity needed to deploy to production by a factor of 6.
So you can now deploy two or three full-fledged web apps in the time it would take you to deploy just one on many other modern stacks. Pretty incredible.
What's fascinating is how dedicated the Rails team is to the 80/20 principle.
For example, in DHH's Rails 8 talk, he announced "Active Record Search," an 80/20 way to do full-text search. Most developers, he observed, need only a small percentage of the overall functionality for most of the things they want.
All of these ideas might seem radical to someone who's on the "cutting edge" of web dev. But they make sense to me as an indie hacker.
What I want is a quick way to start a project and keep going to a point where I reach millions of MRR. Once I reach millions, I can afford to hire a team to complexify my stack.
Great read. I have read a lot of articles with XYZ is the ideal framework and here ABC reasons. On contrary I would argue that whatever you are comfortable with is your ideal framework. Just stick with it and make successful business with it.
it always makes sense
usually framework questions depend on the current request so there is no single best-of-the-best solution
If we want Rails to flourish somebody enthusiastic needs to teach Ruby on Coursera or EdX, the way they teach Python there!
I appreciate the clarity in your posts! They inspire me to leverage tools that improve the API debugging experience. EchoAPI has become my go-to solution for that very reason.
I've been a rails developer for about 5 years, and I just built a small one-page app with rails 8 a couple of weeks ago to test it out. https://www.zestyrizzla.com/
It's good, but there were some issues. Hot reloads were an issue that I had to create a fix for in the bin/dev service and the js pipeline still being a hassle and buggy were the main problems.
When I build another larger rails project I'll run it as an API and use next.js for the frontend.
Hotwire is ok, but with the js pipeline issues it's just too hard to have a modern frontend relying on it alone since you need to be able to utilize so many packages and libraries to do the cool things that people expect from web apps.
My next app is going to be ML/AI focused so I'm actually going to be steering away from rails for a while. Django and Next.js are going to the stack I'll be working with for the foreseeable future. I'll be back to rails eventually though. Probably.
Great Share
Never written a line or Ruby. Where to start?
I would agree, but I also think everything Rails does to contribute to the "One Person Framework" ideal - Laravel does better. From documentation, to community, to the actual framework and its first-party ecosystem.
Authentication? Its there. Auth with SPA? even has that covered. Laravel's open-ness to popular frontend frameworks like Vue / React, has really changed the game for it. I wish Rails spent more time doing that, than being an alternative to all that.
Technically correct, but in the modern-day tech scene a solution like Ruby will only get serious acceptance if it offers the benefits of specialized tools and flexibility that other frameworks or technologies might offer. A shift from RAM to SSD-based systems can introduce higher latency and scalability issues which can be difficult for solo developers to handle.
As an independent Rails developer, this is great to see. I've been feeling really discouraged with the state of Rails in 2024. I spent a lot of time and put in a lot of effort to master Ruby/Rails and seeing it get left in the dust has had me questioning my life choices recently.
This is super interesting! I've always felt like modern web development has become way too complicated, especially for solo founders or indie hackers. It’s refreshing to see that with Rails 8, DHH and the team are really doubling down on simplifying the process. I mean, being able to run multiple apps on a single server without needing to mess with nginx or Traefik? That’s a game-changer for anyone trying to bootstrap multiple projects.
The bit about not needing Redis for background jobs is also a huge win. Redis can be such a headache, and it definitely eats into the RAM budget, which is a real pain when you're working with limited resources. Being able to use SSDs instead of RAM and still get solid performance? I’m all for that.
And finally, built-in authentication? Finally! No more wrestling with third-party libraries just to get a basic login system up and running. Rails 8 really feels like it’s designed for people like me who want to focus on building and shipping, not getting lost in endless tooling.
This has me excited to try it out. Looks like Rails is back in a big way for indie hackers!
A rails is how I got my start. I’ve always enjoyed the opinionated approach. It ihas definitely reduced a lot of needless complexity.
In this case, though, I struggle to understand what switching from ram to SSD means . Redis is software not hardware. And SSD is hardware and when you deploy, you are in the cloud on someone else’s racks. Which means you do not have access to the SSDs on the machines. is this meaning that they’ve taken away the need to use Redis and you can use your regular database adapter connections?
I agree. I have 6 years working with Rails I don't think to migrate to another stack, at least for professional work. Furthermore, I have been tested another stacks (Laravel, NextJS, FastAPI, Tauri) for personal projects that anybody see but, I can tell you that Rails is the most secure and fast way to develop a complete web app (Or Just API) at least for me.
I could not agree more with that! I'm Rails developer 10 years now and it seems like perfect solution now. Its server render based but still with Turbo (with Stimulus for more complex frontend) it can be perfect solution for interactive apps.
Honestly, I've been trying different libraries / frameworks and it seems a lack of consistency (or my lack of that deep knowledge comparing to Rails). Rails is really one person framework which can be used to build an app incredibly fast.
While hype on Rails is history now, it really makes sense as technology for 2024! Don't follow trends, see what really works!
great read
Sorry but the language barrier is too high.
I prefer more complex Frameworks with python and js that will still ship faster than learning ruby...
Ruby is an incredibly easy language to pick up, and it has fantastic documentation.
What frameworks do you think can ship faster than rails?