For the record, I've been building projects with Next.JS for 2 years now and I'm pretty happy with this framework and my speed to produce something decent.
But since a few weeks, I'm interested in the world of backend, and fullstack, and more particularly in the speed/ease of development for a solopreneur.
I've been browsing some topics on IH (https://www.indiehackers.com/post/solo-developer-tech-stack-d1ee288942) and Twitter, and in the end I have the impression that from a productivity point of view, the solution was not necessarily on the side of JS but rather other technologies that have proven themselves, like Ruby on Rails or Laravel.
And I'm very interested in that! Beyond being more productive on personal projects, I want to learn new technologies this year, because I have the time (and it's a chance).
And that's why I'm here to ask for help today! Since I don't know Ruby or PHP, which framework would you recommend for an indiehacker who is looking for simplicity and efficiency to quickly set up basic SaaS projects (login/payment/etc)?
I've been reading a lot about Laravel these last few days and I have the impression that the ecosystem is great, but what about RoR?
Dear developers who are not on the latest JS framework, what is your stack of choice right now?
I've never used Laravel, though I did a fair amount of PHP in the past. I've been writing Ruby and working on Rails applications for about a decade now, plus plenty of JavaScript (including React SPAs).
My take: the Ruby language is way more fun than the PHP language, and Rails 7 is in a healthy place as a framework. I will say that the wider Ruby ecosystem is a bit less - busy? - than it was 10 years ago, but the biggest tools are still well maintained.
to answer your specific question: both of the projects I've recently started are Rails 7 and hosted on render.com.
Thank you for your feedback, this is exactly what I wanted, dev that are working with those type of framework :)
Can you explain a little bit more about what you find more fun in Ruby? Easier to understand? More practical?
And I was wondering how to deploy framework like that so your answer about render.com is interesting! I also discover railway a few weeks ago, seems fine too.
Ruby is a thoroughly internally consistent language and PHP is at the opposite end of the spectrum.
For example in contrast to other OO languages like Python and Java, everything is an object. To get the length of “foo”, just type “foo”.length. That’s because the string “foo” is an object. So is the number 3.
Implementation details like “primitive types” don’t bleed into the language so much in Ruby. Another advantage is that Ruby is a bit more expressive than PHP or Python , so it can make DSLs (like the Rails router) that those other languages just aren’t capable of.
That said, Laravel is still an excellent framework.
This comment was deleted 2 years ago.
Both frameworks are excellent, and deserve their fans. The typical best answer is to use what you know.
If you don't know, I recommend Rails. Laravel has a lot more marketing push behind it, because there's a lot of stuff that you can buy. Rails isn't a product, and the tools which inspired the Laravel equivalents are all OSS.
That said, both frameworks deserve you spending an hour to follow a basic tutorial to set up a boilerplate app so you can see what's what.
You asked in another threat what makes Rails (and Ruby) more fun. There's a long but excellent answer here.
Thank you for your answer, and yes this is what I thought after spending some time on the Laravel official website, a lot of stuff are paid for.
I checked a tutorial last night on Ruby and I have to say, it seems cool!
Edit : I just read the article from your link, and it's definitely a philosophy I love... I'll try to build a small project with RoR and with Laravel and see what I prefer.
I've used both for a good couple of years, and I actually love them both.
My personal take would be that Laravel probably has a better developer experience —their docs are really good, and packages that are considered part of the "core" Laravel ecosystem have matured and evolved really well.
I think Laravel's ORM (Eloquent) is way better than ActiveRecord, and emails and notifications are more optimized/iterated.
Rails has Ruby, which I like a lot more than PHP.
The community has been struggling quite a bit since the whole Basecamp thing, a significant amount of package maintainers stopped contributing, and a lot of people are concerned about its future, but I honestly believe the community won't let Rails die.
So both of them are actually really good! But as many others have said, if you want speed, you should be using something you're already familiar with.
If not, both of these would be a great pick IMO!
I wanted to build a startup nearly 2 years ago and I thought then the react, express route was the best route to take....oh was I wrong! If you have money or a team of dev yes go that route but for me Rails is king!!
In my humble opinion myself and one other dev have build a fully fledged application with bookings, messaging features just like WhatsApp, and more so much quicker in rails it's unbelievable, I've read a few comments saying no you have to do it this way in rails and I love that, if a dev leaves you there's a WAY to do things in rails and another dev can easily see what is happening in the application.
Laravel was another option but for me it isn't as time tested as rails, major companies launched and still use rails, rails has been through the battlefield and is still strong with updates getting better and better, with react, express option you decide what you do and there are numerous ways of achieving your goal which can be great for a team of devs but for a small team or solo dev you can't beat rails, the one downside is learning rails there are limited resources, but I see more and more channels starting up adding tuts for rails due to the version 7 updates.
The js ecosystem changes way to much, to many new shiny frameworks that are the new best way of doing things, this is great and all but if you want to launch an app in the quickest way possible and have all you need from frontend to backend and a WAY of doing things that have been used by major applications.....it rails!!
Thank you for your feedback, it's interesting to see solo dev or really small teams praise RoR or Laravel
Laravel was inspired by Rails, from what I've heard.
If you opt for SQL, Rails won the hearts with ActiveRecord, a layer that makes working with SQL Dbs much friendlier.
If Rails is too much, there is a tiny, flexible Ruby framework called Sinatra, which looks like ExpressJS, a middleware, and a front, but you can connect a Db via ActiveRecord.
Ruby may be more fun but also is a more sophisticated lang whereas PHP is less "magical" as it evolved over the years into a full-featured lang from humble beginnings, pretty much as JavaScript did.
I have tried a lot of frameworks. If were talking about building a web app with authentication, I can move the fastest with Laravel and its Breeze package.
According to TotalJobs
Ruby developer ~salary: £72,500
PHP developer ~salary: £47,500
If you plan to do part-time freelancing on-the-side to maintain financial stability early-phase, according to this data I recommend Ruby.
Although, I use Laravel a lot (never used Ruby) and I like it a lot.
This comment was deleted 3 years ago.
Maybe the data from TotalJobs is not right.
Or, the data is related to the jobs on "TotalJobs" only, and not related to the firm you work for.
I've used this salary checker: https://www.totaljobs.com/salary-checker/salary-calculator
This comment was deleted 3 years ago.
The market is definitely insane.
This comment was deleted 3 years ago.
The market in the uk is weird in general. I get recruiters reaching out for senior full stack typescript jobs for £60k/year when there are plenty of contracts for £500/day outside ir35
I use Laravel, I occassionally use NextJS for relatively straight forward things, but anything that I slightly complex in terms of backend I have the API routes it a little bit of hassle especially around dynamic/optional parameters.
For the backend on most projects, I use Laravel. Really like it and definetly makes coding stuff quicker - I don't use the frontend side of as I use ReactJS for the frontend so only use Laravel as the API.
The built in database models (Eloquent) is a breeze and makes things super simple. If you go down the Laravel path, I'd recommend using Laravel IDE Helper (https://github.com/barryvdh/laravel-ide-helper) as it provides Intellisense to the Laravel methods and your own database models so you don't need to keep trying to remember the database field names.
I've got no experience on Ruby so can't comment there.
Django + HTMX all the way! Such a breath of fresh air to write code ~exclusively in Python / HTML and still have modern feeling apps.
Django is great, batteries included and so much already ready to go out of the box. It may not be the best for massive scale. ( Though big sites like Instagram use it ).
As a solo developer though the more batteries included the better.
For me I choose alpine js over htmx but htmx is good to go and it will become more stable in coming years...
I can definitely understand why u are considering using Ruby on Rails or Laravel for ur backend development projects. Both frameworks have proven themselves to be great choices for building web applications, especially for solo developers and indie hackers who are looking for simplicity and efficiency.
Personally, I have had a lot of success using Ruby on Rails. One of the biggest advantages of Rails is its convention over configuration approach, which allows developers to quickly set up basic SaaS projects like login and payment systems with minimal setup. Additionally, Rails has a large and active community, which means there are a lot of resources available for learning and troubleshooting, and a wide range of gems and libraries that can be used to add functionality to your application.
As an example, I launched my startup called Myrecipes in a very short time using Ruby on Rails. Myrecipes is a meal planning and grocery delivery service for busy families and individuals that allows users to create, plan and order their own meals through a website and mobile app. I was able to quickly set up basic features such as user authentication, meal planning, and ordering using Rails and it helped me to focus more on the business logic rather than spending more time on basic features.
Overall, I believe that Ruby on Rails is a great choice for anyone looking to quickly set up basic SaaS projects and I highly recommend it for u and other indie hackers who are considering it.
Thank you for all your answer, this topic was very interesting!
As expected, a lot of people suggested different things, and on this kind of subject, no consensus can be found (and that's quite normal!).
I think that with all this information, it will be difficult to make a just theoretical choice.
So I give myself as a small challenge for a few weeks to create a simple application with Laravel, RoR, Remix, AdonisJS.
I will try to see the advantages and disadvantages of each one and make my own idea about the technology that seems to be the most adapted to my philosophy.
Have you considered NestJS?
Not really but I checked AdonisJS and it's really interesting to stay in the JS world.
Not sure why the downvote…
But the reasons I suggested NestJS:
Even though I’m arguably good at Django, the context switching pushed me towards a monorepo setup with NestJS and KeystoneJS.
This is actually interesting, I took a look last month at Keystone and Directus 9 and those 2 "cms" looked reaaaaally good. Do you think this NestJS/KeystoneJS is equivalent to a full stack framework like laravel for example?
Haven’t looked at Directus 9, but I chose KeystoneJS because:
KeystoneJS is the one allowed Beta framework / software for my project. After some polishing, I think it can be as good or better than other frameworks, but it’s currently a bit rough around the edges with the recent rewrite of v6
I still use NestJS, but it’s more for processing and transactional stuff, rather than interfacing with the database
I think if I had to stick with JS the stack I'd try would be keystone/directus with Remix... something to think about!
G’luck! I started with Django, but ended up going back to JS
I'm going to other way these days. After building a lot of products with Rails and Elixir Phoenix (which are both great choices), i'm building the next one with Typescript and BlitzJS. At the end of the day so much time goes into the UI/UX that i feel it would be more productive to use a single language with shared typing. So far its going great.
Blitz is going through a rework right now so many not be perfect fit but you should look at RedwoodJS and NextJs+tRPC for instance.
If want to completely abandon JS frontends and want to do quick RoR SaaS projects, do take a look at BulletTrain for a fee you get a lot of this out of the box.
I recently wrote an app with Phoenix LiveView. Writing the front and back end both in Elixir was a huge speed improvement over using TS. It was a lot better in terms of reliability, too.
I haven’t used them recently, but Rails and Laravel both have libraries inspired by LiveView.
I still love Elixir and i think LiveView is promising and good if all you know is Elixir. But the lack of strong typing gets me down. And there often isnt the same ecosystem of support. I end up writing then maintaining opensource projects in Elixir for this reason.
It is strongly typed (unlike JS). You mean static typing? I find that with structs and pattern matching, it gives 95% of the benefits at a much lower cost.
For most projects with a small team, dynamic typing is a plus due to dev speed. There are some things where you want strong guarantees from a static type system like Rust or an ML-family language. The worst of all worlds is TypeScript: a large language with a complex type system that still isn't type safe.
I'm sure I'll go the other way in a year :p Thank you for your feedback, and thank you for BulletTrain, seems like a great boilerplate!
Even if Ruby On Rails is faster and more efficient than all the PHP frameworks then the difference can be only very small, and that small difference should not matter if you want to start building basic SaaS unless you are starting a company as big as Facebook or Google.
I have never used Ruby on Rails before, but it is certain that PHP and Laravel are much more popular. Therefore there are more free resources, libraries, supported APIs and tutorials, and that's what makes PHP/Laravel cheaper. Also many other free web software such Wordpress, Drupal, Magento use PHP, so if you are focused on web applications and SaaS then PHP is a better choice.
The biggest downside of Laravel is that it has its own problems with framework design: it uses controversial design patterns such Active Pattern which breaks the single responsibility rule and makes unit tests almost impossible or Facades that make your dependencies global in the entire app. Actually Facades are not a problem at all because it's optional, and you can use dependency injection instead, but it still encourages beginners bad habits. However if you aim at development speed and low costs then these things should not be issues for you. If you really value quality of code and testing then you should pick Symfony.
Which language are you most familiar with? It sounds like you're good with JS. In that case, https://remix.run/ may fit you.
It seems a big hype is building up around remix and lately many of people have been recommending it, but I'm ignorant on how mature, better or simpler to use it actually is. Could you shed some light on the differences between remix and next to a non-js developer?
He’s specifically looking for something more productive than JS.
It's Rails for me. And I am building a custom kit to ship even faster. It's kind of strange that JS eco-system doesn't have a good competition, but no problem for me. I don't like node_modules :).
Your "custom kit" is just a theme/template, or am I forgetting something?
If so:
Plenty of templates are on sites (such as ThemeForest) based on JS.
Even built on component libraries (such as Nuxt + VuetifyJS stack) for more flexibility.
Good luck with building your kit and I hope you can help people with it!
But claiming there is no such things in the JS ecosystem is a false assumption.
The comment was about Rails. JavaScript really doesn't have a competitor. Python has Django, PHP has Laravel, hell JVM has Spring. I don't see anything close to that in JS.
As for my kit, it's everything BUT a design template. It's features and tests. And they are many alternatives, even think there is something for JS. But in JS you just won't get Rails.
Edit: Someone mentioned https://adonisjs.com/ here. Perhaps that's the closest you get in JS.
Alright sorry, I hugely misunderstood.
I used to use Laravel and ReactJS/Vue for the frontend and connect using IntertiaJS it served me well but the context switching between JavaScript and PHP was making it difficult for me.
So I switched to AdonisJS (Adonis is inspired by Laravel) and it made things easier because now both ends are JavaScript and I still get to enjoy the Laravel vibe with Node.
However, I would not recommend learning a new framework/tech stack to build the MVP it does not matter to end-users how your product is built, use whatever you are most familiar and comfortable with.
I am with Laravel and I think it does its job pretty good.
Bottomline: Use whatever you know better.
My advice is to stay away from frameworks. I can’t tell you how many years I’ve wasted learning them. Zend Framework when I did PHP, Flask when I did Python. The list goes on.
But if you insist on one then you already have some JavaScript experience, you could either continue to use it but use Node.js with a lightweight framework like express.
I would consider Go a serious contender. You can achieve a lot without ever touching any third party frameworks because the standard library comes with a built in HTTP server, templating language and so much more.
Either way, I recommend picking an SQL-based database like SQLite for small projects or PostgreSQL if you need some scale or more complex queries. My reasoning is simple… you’ll keep this knowledge until the day you drop (which could be ten years before your time if you suffer the stress of learning half a dozen frameworks over a few years). If you focus your efforts on SQL you’ll save yourself pages of unnecessary code. One good query will avoid the need to process a ton of results in code. Since most of your learning and efforts for coding will be based on solving algorithmic problems and not just worn away learning all the idiosyncrasies [of a framework], you’ll become a better developer and be able to apply this knowledge anywhere you find yourself in future.
This is... not good advice. It's far more likely that Zend and Flask simply were not very good frameworks.
Both Rails and Laravel are, by comparison, extraordinarily successful.
What you have to ask yourself is... do you want to spend 90% of your time building a buggy, half-baked proprietary thing which nobody else understands, or do you want to launch features?
Look, there's always a guy that thinks you have to build a rendering engine before you can make a game. Those guys do not exist in the same reality we do.
Also, the Internet hides the fact that they smell like damp.
Yeah I think there is a main difference between someone that want to ship and be an entrepreneur, and someone who want to be a developer.
When you work on a SaaS for example, the majority of your time is needed on other stuff than coding (Marketing for the most part), and I don't want to spend weeks on login system / stripe integration etc (things that frameworks like Laravel easily handle).
(And as someone working in the video game industry right now, with Unity, I could not agree more... building a game engine is a pain :p)
This comment has been voted down. Click to show.
This comment has been voted down. Click to show.
This comment has been voted down. Click to show.
I'm not a fan of trendy things or "new shiny object syndrome". I think that choosing a technology that has been proven for years is a good idea as a solo dev.
And I'm telling you this while I've been practicing on Next.JS for 2 years, I'm interested in Remix, I'd like to use Cloudflare workers/pages on all my projects, and I think that SvelteKit is the best framework for the years to come :p
It's for all these reasons that I'd like to sit back and think about solid alternatives and not the incredible new technology that will be obsolete in 2 months.
I see what you’re saying, however I think you’re missing the point in WHY these things blow up in the first place. It’s because they make building things so much faster, more efficient, more maintainable, readable..etc
And the reason why the other technologies fall out of favour is because they’re weaker on these fronts.
Something blowing in popularity is usually an indicator of a massive optimisation in dev experience.
You sound like someone that doesn't build a project in Rails. It's really hard to replicate this experience.
This is a horribly naive perspective. Django never had these advantages over Rails. On the contrary, it's very much the opposite. Django's traction has come from the growing popularity of Python, which in turn has been driven by having the support of Google for the last 20 years.
Taking a large number of Stack Overflow questions as a key selection metric is madness. Aside from the risk of selecting for languages that confuse their users, it underrates some of the strongest newer languages that primarily use a discourse forum for Q&A, such as Elixir and Rust.
Those are actually some pretty good points 🤔
However I’m pretty sure an increasing sof question frequency certainly has to do with increasing popularity, which To some extent has got to do with an improved dev ux. I mean think about it, rust growth is on the rise compared to c++ because it’s dev ux is better. I didn’t do it but my intuition tells me if I was to contrast sof trend chart with Google searches trend chart there’d be a correlation
Where does your certainty come from on this? Python has had a considerably worse dev UX than Ruby for the past 15 years and has been growing faster, largely due to sponsorship from Google and others.
At this point the popularity gap is considerably bigger, but Python still can't do the kinds of DSLs Ruby can and its package management is still a mess.
Similarly, the dev experience with Java wasn't great 20 years ago, but it still devoured the market. I'd put it down to corporate sponsorship and network effects. For a silly metric like Stack Overflow questions as you referenced above, poorer stacks will actually have an advantage.
This comment has been voted down. Click to show.
This is another topic and I still have that in mind. I tested Remix last week and think it's a good option.
As I said in the first topic, I have the chance to be able to take some time to learn something new. In the long term (1 year, 2 years), I tell myself that I would potentially be more productive with RoR rather than Node which doesn't necessarily have the same philosophy.
I know that Nest.js can be similar, also Adonis.js, but I don't have the impression that the community is huge.
This comment has been voted down. Click to show.
Using that logic, why bother learning anything new?
The OP is interested in learning something more productive than JS. If his experience is anything like mine, this will make him more productive in the future, even when using JS.
One of the best financial and business decisions I’ve ever made was to learn a new programming language every year or two.
Already used firebase in a few projects, but I'm more confident with SQL database than NoSQL ^^ (And this is why I use Supabase on my two "main" projects).
This comment was deleted 3 years ago.