While I like frameworks like Rails and Django, Golang with AI makes me very productive. Especially because of how Golang codebases don't use too many dependencies so an LLM never recommends code that has an old dependency or mismatched version...
I'm just curious, how well does Ruby integrate with AI tools?
I don't have a lot of experience with Golang and AI, I think Rails can give you different kind of productivity.
From what I know (please correct me if I am wrong) most people use AI to create scaffolding and automate all boring and repetitive tasks in a project. So code still needs to be written, you just outsource it to AI helper.
In Rails you write less code and concentrate on business logic because everything boring like DAL, authorization, caching is already written and tested in production.
Not sure about Ruby in general, but Rails is an excellent candidate for LLM assistance. It’s very much convention over configuration, been around since forever and there isn’t a question somebody hasn’t already asked on Stack Overflow.
This is the thing when people say "LLMs write the boilerplate code for you"--why are you writing all that boilerplate? If you're dutifully cranking out boilerplate instead of creating abstractions that make it unnecessary to write boilerplate, you're a mediocre engineer at best. Add an LLM, and now you're a mediocre engineer with a mediocre simulation of a mediocre engineer.
Aren’t most business apps almost exclusively glorified CRUD? Like the sort of CRUD stuff Rails is amazing at. Those are basically all boilerplate, it’s more of a question of which flavor of boilerplate you need for a given use case.
A singular data point here, but if I ask MS Copilot to write me a unit test in python/django it will more often get it right the first time than in golang. The golang code tends to reference things that don't exist. These aren't huge codebases either.
This is a great point. I often ask LLMs which coding language they are most proficient in, and Python is the most typical response. This has makes me want to write more Python.
Keep in mind, LLMs can't introspect. They integrate your prompt with their training data.
If Python is an extremely popular programming language people like to write about using (it is), you'll expect a lot of people to state that Python is their most proficient language and for that to make its way into the training data. When you ask the LLM, you'll get Python as an answer some fraction of the time and other languages some other fraction.
Those answers are orthogonal to how good the LLM actually is though. In the training data, you'd like a sufficiently robust sample of code (which Python should have) without most of the code being terrible (which Python doesn't have in the wild).
Mind you, IME they do better with Python than very new languages, and they do better with Python tooling than whatever maven build garbage you might have to deal with, but that's faint praise.
Certain cities it's like a Rails desert. I'd love to get a job using it but it's slim pickings. It's either .NET or PHP and maybe some Python and maybe some Node most of the time for web dev.
That list is great, but it’s not guaranteed to be free of false positives. We Use Rails also offers more granularity—you can see the exact technologies people are using.
I've used nothing but Rails since about 2004. Of course I've been integrating and playing with various JS frameworks over the same time period, but the only things that's remained consistent is Rails as the base. I've gone through at least 4 or 5 different JS frameworks in that time and that aspect of development has grown rather tiresome.
Rails 8 made me love Rails again after a few years working with other tools. The new direction is just perfect, specially for solo developers. The 'solid trifecta' in combination with the simplicity of using sqlite3, the new built in auth solution, Kamal... everything, so f*ing good.
I know sqlite3 is great, but I've always found it much more annoying to use it on a server for small side projects than just using Postgres where I could just connect to the prod instance from my local machine and run some queries to look at the data. With sqlite I'd always have to sync files, set up volumes, make sure permissions are correct vs. just setting an environment variable to a PG instance.
From what I understand, the sqlite3 comment was made it context of the Solid libraries. Basically common Redis-backed functionality can now be sqlite3-backed instead.
I do share your preference on using Postgres as the main database. Having that as the main db with sqlite3 used for auxiliary functionality sounds great.
I've been out of rails for more than a decade, ended up mostly with Django, but I always kinda miss rails. But Django has treated me so well, just wish async and python in general had more legs on this side
I've always been interested in rails, even though my career has gone the JS/TS route. Think i might finally take the plunge and try to build some random stuff with it. See how far i can get by looking at code examples and asking gpt "how do you do x in rails" etc.
Really love that it seems to just be a complete toolbox, especially for a solo project.
Also seeing more and more rails roles out there, but obviously don't have 5+ years with the framework
There was a period of time around the height of Rails original heyday where the idea of a very opinionated, complete framework such as Rails got a lot of blowback, which gave rise to the Javascript ecosystem and its myriad front-end frameworks.
I think the pendulum is kind of swinging back the other way now. While there are certainly advantages with the Node ecosystem, it always felt very messy to me. Rails language extensions, ORM, testing, and migrations frameworks have never been matched by any javascript libraries. Ruby and Rails have always prioritized quality of life features, which made it a very enjoyable and productive framework.
Yeah, i mainly deal with react/next + supabase on a daily basis at work.
And do sometimes think of small apps i could build for fun, but the thought of doing react, again, is tiring in and of itself lol plus the whole setup around getting express running and picking packages.
Rails is ready out of the box, for me to not have to screw around with.
Just love the ruby syntax(along with python, which i am actively learning now with datacamp). Its cleaner, and i can probably do 90% of what i do in react there. Then for the rest throw solid js or svelte, or even just react for specific components.
I think the reason rails has stuck around is because of it being a very opinionated framework and it dictates a method to do almost anything. This allows the docs to be very straightforward, almost as if they were written for the Rails application itself.
I also think the language itself is a big plus. I don't like the reflection system or hot patching being a feature in a language, but rails makes extensive use of it to create it's own domain specific language.
Can only encourage you, I'm mostly working with Go but all my side projects are with Rails which I've only started a few years ago. It's a lot of fun.
I'm not a big fan of watching tutorials, but more of learning by doing but I signed up for https://gorails.com when I started out and it was very helpful to get an overview.
Does anyone here have any recommendations for free or at least very cheap Rails hosting for a toy app just for learning purposes? I’m looking for a PaaS offering since I don’t have the time to secure and manage a VPS.
You might also want to try Kamal, which Rails is already configured for out of the box.
You'll still be spinning up a VPS, but at least set up and management is done via a very heroku-like interface from your local machine. Just get any VPS that will be accessible via SSH, and `kamal setup` can handle the rest. [1]
The one annoying part right now, is it relies on a docker registry you have to provide. I think they're working on removing that requirement, but you can use the free github container registry until then. It's just for rollbacks AFAIK.
Does it really take any more time to secure a VPS than a docker container on a custom runtime for a hobby project? Either way you still have to run software and OS updates.
Happy render customer right here.
We’ve got multiple rails apps running on render.
Renders tech support team have been very helpful wherever needed also.
Should also point out the recently released Rails 8, has as key features focussed on making rails much easier to deploy to anywhere that supports Docker.
The main application I have to work with now ended up, for various reasons, as a Rails API with a Vue client.
The Rails part has been easy to maintain and adapt to users' frequent changes, the main issues being feature requests for very complicated queries which then end up being slow. Vue has taken up a lot of time with the migration from 2 -> 3 (still not finished).
Cool site! Love seeing what others have built using rails.
I've been working on a membership management platform [1] using Rails + Hotwire Turbo & Stimulus and I can't imagine how long it would have taken me using other frameworks around.
Want a rich text editor? Just use action text. Want document storage? Active storage is easy. Job queues? Mailers? Caching? Integration testing? All easy to do.
I love that Rails is "omakase", once you lean into the ecosystem it's great that most things just... work.
What’s the best way to use JavaScript on rails these days?
I’ve been using rails for over 20 years and still love it but the JavaScript story has always been in flux in bad ways. I don’t like the turbo stuff or stimulus. Basically just want to be able to add some nice charts, and some enhancements like confirmation for links. Basically just build admins with it so the caching for partial html just isn’t part of the game. Looked at upgrading to rails 8 now but the javascript in last version of rails was fragmented and complicated, so looking to find a good way to do it in a standard way now, hopefully next version of rail’s doesn’t change everything again.
- Adding npm Packages with importmap-rails
To add new packages to your import map-powered application, run the bin/importmap pin command from your terminal:
$ bin/importmap pin react react-dom
Then, import the package into application.js as usual:
Can someone provide a reason for why anyone should be using Rails? I'm always curious why people love context switching between multiple programming languages.
As opposed to using JavaScript on the front end & back end? That benefit of JS has always seemed a bit overrated to me—the context for front-end & server-side JS is pretty darn different, too.
Anyway, Ruby & Rails are such a joy to use that, at least for me, the fact that it’s written in a different language than the one we need in the browser is a non-issue.
I used to love context switching between frameworks and languages: Rails was more fun and I felt more happier and creative. Django felt more restrictive but I felt more productive. NodeJS was more chaotic but I felt more powerful.
Today I stick with Ruby and Rails. I am trying to do my context switching in the front-end JS frameworks but I just feel a bit dead doing it at the moment!
I've always loved ruby. Sinatra was my jam long ago but after awhile it felt like just remaking Rails when I could just Rails. Then datamapper project went defunct and needing to use ActiveRecord if I didn't want manually do sql seemed even more like I should just use Rails.
Rails definitely seems optimized for creating code, but how is it at maintaining code? I've never used it, but it seems like Ruby's dynamic types would make it really challenging to do large refactors. What techniques do rails developers use?
The key to maintaining a healthy Rails codebase is to make most of your code independent of Rails. Rails is great at the basics: Handling requests and composing views. It's okay at storage stuff. But it's not good at handling complex usecases, managing JS, etc.
This isn't to say that you can't use Rails if you're making complicated stuff, or using JS, it just means you need to know when to keep your code to Rails's structures and when to write your own structures that you then invoke from within Rails.
It's such a shame that a big successful Rails or Django equivalent never really materialized in the Node world. It's not like nobody tried. There were so many times it seemed like one was gaining traction, then it would be abandoned or zombified or commercialized, and it just never happened. I really can't understand why.
Laravel still seems a lot more fleshed out on the back end. Job queues, task scheduling, notifications, migrations, email. Seems to be a lot more of a cohesive package, everything working together.
Indeed Next is the closest we've gotten, but see: commercialized. The default path for Rails and Django is not a vendor locked in cloud offering; they are truly FOSS projects. It seems like its that mentality which died out more than anything else, really. Also "just picking an ORM" is actually one of the key killer features of Django/Rails in general. There is no fully batteries included equivalent for JS land sadly.
Well actually, if they had used Next.js deployed via Vercel or something similar, it would have been statically cached on a CDN and prevents issues like this. But because they want to use older technology that's more difficult to cache and proxy, this happens.
God, this reminds me of the worst sort of discussions I’ve had with people who don’t understand the technologies they are working with. I’m sorry for being so negative, but “older technology that's more difficult to cache and proxy” is just nonsense.
It's nonsense and worse: hype. I recently went through a bunch of Vercel apps and compared them to some of my favorite Rails/Django apps. The best performing Vercel apps were on par at best.
I don’t measure req/sec here, but at one point, I had 2.8k visitors in an hour. Before rescaling, it was running on Hetzner’s CPX11—2 vCPU cores shared with a few other Rails apps. (I didn’t expect it to go viral at all)
This has been my experience as well. Rails can do a lot, but it also allows you to develop junk. Most sites built in Ruby end up in the latter category, especially if built by a team that doesn’t use basic software architecture patterns.
Been using Rails professionally for 13 years (currently at GitLab) and I still don't think anything else beats it for developer happiness and productivity.
It cuts through all the mess of modern web development so well and makes turning an idea in to something deployable incredibly easy.
I’ve also been working with Rails for many years now but I disagree I think developer and happiness are subjective and I’ve seen great applications being built by many people in various languages. The key is picking the tool you are most proficient with and one that also aligns with your technical requirements. I certainly wouldn’t build a Discord with Rails..
Hey there's some selection bias going on there! Rails is great for consistency and even better if its your jam. Its stable and high quality and still headed in a great direction. Its a great choice. Especially if you can work in it long term, and pay its learning curve only once.
...but as someone using it in Anger for a few years now, I long for the day I can say goodbye to it and never look back, for all the usual reasons.
I was also using it in anger until recently, and I'm really glad I got out of it.
But I disagree that it's consistent or that it leads to consistency.
The "Rails way" or "DHH way" of building apps is indeed consistent, but most big teams eschew this in the name of more complicated (and less consistently applied) patterns.
It follows the Anna Karenina principle to a T. All good codebases are alike and follow the Rails way; each bad codebase is bad in its own way and uses bullshit like Trailblazer, Active Interactors, over-engineered Service Objects or some other bullshit. Sometimes all of them at the same time.
One thing I find frustrating with Django is there's not really a place to put business logic. Ask 3 Django people and you'll get 3 different answers, and often different answers from the same person! That's not a good architecture IMO. It should be obvious where stuff goes. Some say it's not Django's concern, Django is just a web framework, but Django doesn't sit nicely at the edge of an architecture where it belongs at all.
I don't know if I'd admit that publicly, without first reading about it and trying to understand why things like RoR and Python have huge, loyal user bases.
I'm sure they meant an actual statically typed language. I agree that dynamic languages are fun and productive ... until the codebase becomes big and complex, and then not knowing what shape any data is quickly becomes a nightmare to understand and debug.
I’ve always wondered who else uses Ruby on Rails besides the usual names like GitHub, Shopify, Basecamp, etc.
Last month, I built a directory of web apps built with the Rails framework.
With Rails 8 released last year, the framework is stronger than ever. Some even say it’s experiencing a renaissance.
There are already 21 submissions, and if you use Rails, you’re welcome to add your app or website!
See https://toprubycompanies.info
While I like frameworks like Rails and Django, Golang with AI makes me very productive. Especially because of how Golang codebases don't use too many dependencies so an LLM never recommends code that has an old dependency or mismatched version...
I'm just curious, how well does Ruby integrate with AI tools?
I don't have a lot of experience with Golang and AI, I think Rails can give you different kind of productivity.
From what I know (please correct me if I am wrong) most people use AI to create scaffolding and automate all boring and repetitive tasks in a project. So code still needs to be written, you just outsource it to AI helper.
In Rails you write less code and concentrate on business logic because everything boring like DAL, authorization, caching is already written and tested in production.
edit: syntax
Not sure about Ruby in general, but Rails is an excellent candidate for LLM assistance. It’s very much convention over configuration, been around since forever and there isn’t a question somebody hasn’t already asked on Stack Overflow.
This is the thing when people say "LLMs write the boilerplate code for you"--why are you writing all that boilerplate? If you're dutifully cranking out boilerplate instead of creating abstractions that make it unnecessary to write boilerplate, you're a mediocre engineer at best. Add an LLM, and now you're a mediocre engineer with a mediocre simulation of a mediocre engineer.
Aren’t most business apps almost exclusively glorified CRUD? Like the sort of CRUD stuff Rails is amazing at. Those are basically all boilerplate, it’s more of a question of which flavor of boilerplate you need for a given use case.
A singular data point here, but if I ask MS Copilot to write me a unit test in python/django it will more often get it right the first time than in golang. The golang code tends to reference things that don't exist. These aren't huge codebases either.
It works great with AI tools. Checkout the LangChain or Boxcars gem.
I like Golang too, I use it whenever I can.
I haven't done any AI with Ruby, but from what I saw, the ecosystem is lacking support of good libraries.
This is a great point. I often ask LLMs which coding language they are most proficient in, and Python is the most typical response. This has makes me want to write more Python.
Keep in mind, LLMs can't introspect. They integrate your prompt with their training data.
If Python is an extremely popular programming language people like to write about using (it is), you'll expect a lot of people to state that Python is their most proficient language and for that to make its way into the training data. When you ask the LLM, you'll get Python as an answer some fraction of the time and other languages some other fraction.
Those answers are orthogonal to how good the LLM actually is though. In the training data, you'd like a sufficiently robust sample of code (which Python should have) without most of the code being terrible (which Python doesn't have in the wild).
Mind you, IME they do better with Python than very new languages, and they do better with Python tooling than whatever maven build garbage you might have to deal with, but that's faint praise.
I use MS Copilot in python and it's really good. Particularly at writing unit test cases.
Unit tests are a major win for LLMs.
Certain cities it's like a Rails desert. I'd love to get a job using it but it's slim pickings. It's either .NET or PHP and maybe some Python and maybe some Node most of the time for web dev.
would love to be able to see them sorted by [insert 2025 equivalent of Alexa traffic rankings here]
Canvas LMS is built on rails. It is open source, too.
I wonder if you can scan sites and check for rails. I know if there is an error the dump if visible can tell you it's rails like ActiveRecord
There exist websites like https://builtwith.com so the answer to your question is yes.
Right was just thinking why people would want to submit their site to OP
That list is great, but it’s not guaranteed to be free of false positives. We Use Rails also offers more granularity—you can see the exact technologies people are using.
Excellent idea, I find it really useful.
It’s my pleasure!
I've used nothing but Rails since about 2004. Of course I've been integrating and playing with various JS frameworks over the same time period, but the only things that's remained consistent is Rails as the base. I've gone through at least 4 or 5 different JS frameworks in that time and that aspect of development has grown rather tiresome.
Rails 8 made me love Rails again after a few years working with other tools. The new direction is just perfect, specially for solo developers. The 'solid trifecta' in combination with the simplicity of using sqlite3, the new built in auth solution, Kamal... everything, so f*ing good.
> sqlite3
I know sqlite3 is great, but I've always found it much more annoying to use it on a server for small side projects than just using Postgres where I could just connect to the prod instance from my local machine and run some queries to look at the data. With sqlite I'd always have to sync files, set up volumes, make sure permissions are correct vs. just setting an environment variable to a PG instance.
From what I understand, the sqlite3 comment was made it context of the Solid libraries. Basically common Redis-backed functionality can now be sqlite3-backed instead.
I do share your preference on using Postgres as the main database. Having that as the main db with sqlite3 used for auxiliary functionality sounds great.
It's not much different than with Postgres:
Or if you're using Kamal, then the choice of database is completely transparent:I've been out of rails for more than a decade, ended up mostly with Django, but I always kinda miss rails. But Django has treated me so well, just wish async and python in general had more legs on this side
We Use Rails uses SQLite, by the way
I've always been interested in rails, even though my career has gone the JS/TS route. Think i might finally take the plunge and try to build some random stuff with it. See how far i can get by looking at code examples and asking gpt "how do you do x in rails" etc.
Really love that it seems to just be a complete toolbox, especially for a solo project.
Also seeing more and more rails roles out there, but obviously don't have 5+ years with the framework
There was a period of time around the height of Rails original heyday where the idea of a very opinionated, complete framework such as Rails got a lot of blowback, which gave rise to the Javascript ecosystem and its myriad front-end frameworks.
I think the pendulum is kind of swinging back the other way now. While there are certainly advantages with the Node ecosystem, it always felt very messy to me. Rails language extensions, ORM, testing, and migrations frameworks have never been matched by any javascript libraries. Ruby and Rails have always prioritized quality of life features, which made it a very enjoyable and productive framework.
Yeah, i mainly deal with react/next + supabase on a daily basis at work.
And do sometimes think of small apps i could build for fun, but the thought of doing react, again, is tiring in and of itself lol plus the whole setup around getting express running and picking packages.
Rails is ready out of the box, for me to not have to screw around with.
Just love the ruby syntax(along with python, which i am actively learning now with datacamp). Its cleaner, and i can probably do 90% of what i do in react there. Then for the rest throw solid js or svelte, or even just react for specific components.
I think the reason rails has stuck around is because of it being a very opinionated framework and it dictates a method to do almost anything. This allows the docs to be very straightforward, almost as if they were written for the Rails application itself.
I also think the language itself is a big plus. I don't like the reflection system or hot patching being a feature in a language, but rails makes extensive use of it to create it's own domain specific language.
Can only encourage you, I'm mostly working with Go but all my side projects are with Rails which I've only started a few years ago. It's a lot of fun.
I'm not a big fan of watching tutorials, but more of learning by doing but I signed up for https://gorails.com when I started out and it was very helpful to get an overview.
I’m similarly interested in learning Rails.
Does anyone here have any recommendations for free or at least very cheap Rails hosting for a toy app just for learning purposes? I’m looking for a PaaS offering since I don’t have the time to secure and manage a VPS.
You might also want to try Kamal, which Rails is already configured for out of the box.
You'll still be spinning up a VPS, but at least set up and management is done via a very heroku-like interface from your local machine. Just get any VPS that will be accessible via SSH, and `kamal setup` can handle the rest. [1]
The one annoying part right now, is it relies on a docker registry you have to provide. I think they're working on removing that requirement, but you can use the free github container registry until then. It's just for rollbacks AFAIK.
[0] https://kamal-deploy.org/
[1] https://kamal-deploy.org/docs/installation/
I haven't used their Rails hosting, but I have liked Fly.io for other PaaS-y things before. Heroku is technically still around.
https://fly.io/docs/rails/getting-started/
Does it really take any more time to secure a VPS than a docker container on a custom runtime for a hobby project? Either way you still have to run software and OS updates.
You could probably dockerize it and stick it on render.com
Happy render customer right here. We’ve got multiple rails apps running on render. Renders tech support team have been very helpful wherever needed also.
Should also point out the recently released Rails 8, has as key features focussed on making rails much easier to deploy to anywhere that supports Docker.
Render doesn’t need a rails app to be dockerized. I have several Rails apps running on it right now.
Heroku is decent although I don't like some of the tweaks you can't do with it. For example, setting variables in postgres is neutered.
The main application I have to work with now ended up, for various reasons, as a Rails API with a Vue client.
The Rails part has been easy to maintain and adapt to users' frequent changes, the main issues being feature requests for very complicated queries which then end up being slow. Vue has taken up a lot of time with the migration from 2 -> 3 (still not finished).
Rails is truly experiencing a renaissance and after giving it a try, I understand why
Cool site! Love seeing what others have built using rails.
I've been working on a membership management platform [1] using Rails + Hotwire Turbo & Stimulus and I can't imagine how long it would have taken me using other frameworks around.
Want a rich text editor? Just use action text. Want document storage? Active storage is easy. Job queues? Mailers? Caching? Integration testing? All easy to do.
I love that Rails is "omakase", once you lean into the ecosystem it's great that most things just... work.
[1] https://embolt.app
What’s the best way to use JavaScript on rails these days?
I’ve been using rails for over 20 years and still love it but the JavaScript story has always been in flux in bad ways. I don’t like the turbo stuff or stimulus. Basically just want to be able to add some nice charts, and some enhancements like confirmation for links. Basically just build admins with it so the caching for partial html just isn’t part of the game. Looked at upgrading to rails 8 now but the javascript in last version of rails was fragmented and complicated, so looking to find a good way to do it in a standard way now, hopefully next version of rail’s doesn’t change everything again.
The fragmentation is more an implication of the ever changing landscape of JS frameworks and build tools than Rails.
For me, Stimulus adds just the right amount of structure over Vanilla JS.
And Turbo/Hotwire feels like building skyscrapers with wood vs. steel.
just use importmaps
https://guides.rubyonrails.org/working_with_javascript_in_ra...
- Adding npm Packages with importmap-rails To add new packages to your import map-powered application, run the bin/importmap pin command from your terminal:
$ bin/importmap pin react react-dom
Then, import the package into application.js as usual:
import ReactDOM from "react-dom"
But how do you integrate and turn on at a specific page/controller view? Look for a specific dom id?
Can someone provide a reason for why anyone should be using Rails? I'm always curious why people love context switching between multiple programming languages.
As opposed to using JavaScript on the front end & back end? That benefit of JS has always seemed a bit overrated to me—the context for front-end & server-side JS is pretty darn different, too.
Anyway, Ruby & Rails are such a joy to use that, at least for me, the fact that it’s written in a different language than the one we need in the browser is a non-issue.
1) You love the Ruby programming language.
2) It's battle-tested. Tried and true. Batteries included. Can have a web app with most functionality needed running in minutes.
3) There are more reasons, but there are other good options as well. No reason to use Rails if you're not interested in Ruby.
Is there a reason to use rails over Django? Doesn’t seem like it based on your list.
Ruby. It's a uniquely expressive language (IMHO).
> Batteries included.
this is the Python standard library motto
I used to love context switching between frameworks and languages: Rails was more fun and I felt more happier and creative. Django felt more restrictive but I felt more productive. NodeJS was more chaotic but I felt more powerful.
Today I stick with Ruby and Rails. I am trying to do my context switching in the front-end JS frameworks but I just feel a bit dead doing it at the moment!
I've always loved ruby. Sinatra was my jam long ago but after awhile it felt like just remaking Rails when I could just Rails. Then datamapper project went defunct and needing to use ActiveRecord if I didn't want manually do sql seemed even more like I should just use Rails.
btw, there is also https://usingrails.com
Thought the url said using Grails.
I really miss using Rails. It is seriously so enjoyable to quickly build stuff with it.
Rails definitely seems optimized for creating code, but how is it at maintaining code? I've never used it, but it seems like Ruby's dynamic types would make it really challenging to do large refactors. What techniques do rails developers use?
(10+ years with Rails)
The key to maintaining a healthy Rails codebase is to make most of your code independent of Rails. Rails is great at the basics: Handling requests and composing views. It's okay at storage stuff. But it's not good at handling complex usecases, managing JS, etc.
This isn't to say that you can't use Rails if you're making complicated stuff, or using JS, it just means you need to know when to keep your code to Rails's structures and when to write your own structures that you then invoke from within Rails.
Back in the day, I remember an application that 'analyzed' websites for their Rails hallmarks. I don't know if Rails apps are as distinct nowadays.
It's such a shame that a big successful Rails or Django equivalent never really materialized in the Node world. It's not like nobody tried. There were so many times it seemed like one was gaining traction, then it would be abandoned or zombified or commercialized, and it just never happened. I really can't understand why.
It's essentially Next.js. I believe the only thing missing is ORM, but you have choices, for better or worse, in Prisma and Drizzle.
You do have to pick an auth lib (most use Next-Auth aka Auth.js) but Rails needed auth lib until Rails 8 a couple months ago.
The traction behind Next.js is so large, it's much bigger than Rails, Django, and Laravel for new projects the last couple years: https://trends.stackoverflow.co/?tags=next.js,ruby-on-rails,...
Laravel still seems a lot more fleshed out on the back end. Job queues, task scheduling, notifications, migrations, email. Seems to be a lot more of a cohesive package, everything working together.
Indeed Next is the closest we've gotten, but see: commercialized. The default path for Rails and Django is not a vendor locked in cloud offering; they are truly FOSS projects. It seems like its that mentality which died out more than anything else, really. Also "just picking an ORM" is actually one of the key killer features of Django/Rails in general. There is no fully batteries included equivalent for JS land sadly.
This site won't load for me, that in itself strongly suggests it was built on Ruby on Rails.
Websites crashing under unusually high load typically has more to do with a lack of caching or undersized db than choice of backend.
HNs hug of death does not apply to Rails only
Well actually, if they had used Next.js deployed via Vercel or something similar, it would have been statically cached on a CDN and prevents issues like this. But because they want to use older technology that's more difficult to cache and proxy, this happens.
God, this reminds me of the worst sort of discussions I’ve had with people who don’t understand the technologies they are working with. I’m sorry for being so negative, but “older technology that's more difficult to cache and proxy” is just nonsense.
It's nonsense and worse: hype. I recently went through a bunch of Vercel apps and compared them to some of my favorite Rails/Django apps. The best performing Vercel apps were on par at best.
Can you point us to your Vercel apps and what kind of traffic you're dealing with?
I rescaled my VPS. Let me know if you still experience issues.
Out of curiosity, what kind of request/second are you seeing and what was your before/after VPS cores? Is it built with rails?
I forgot to mention that yes, it's built with Rails. https://weuserails.com/ruby-on-rails-websites/we-use-rails
I don’t measure req/sec here, but at one point, I had 2.8k visitors in an hour. Before rescaling, it was running on Hetzner’s CPX11—2 vCPU cores shared with a few other Rails apps. (I didn’t expect it to go viral at all)
This has been my experience as well. Rails can do a lot, but it also allows you to develop junk. Most sites built in Ruby end up in the latter category, especially if built by a team that doesn’t use basic software architecture patterns.
Been using Rails professionally for 13 years (currently at GitLab) and I still don't think anything else beats it for developer happiness and productivity.
It cuts through all the mess of modern web development so well and makes turning an idea in to something deployable incredibly easy.
I’ve also been working with Rails for many years now but I disagree I think developer and happiness are subjective and I’ve seen great applications being built by many people in various languages. The key is picking the tool you are most proficient with and one that also aligns with your technical requirements. I certainly wouldn’t build a Discord with Rails..
Hey there's some selection bias going on there! Rails is great for consistency and even better if its your jam. Its stable and high quality and still headed in a great direction. Its a great choice. Especially if you can work in it long term, and pay its learning curve only once.
...but as someone using it in Anger for a few years now, I long for the day I can say goodbye to it and never look back, for all the usual reasons.
I was also using it in anger until recently, and I'm really glad I got out of it.
But I disagree that it's consistent or that it leads to consistency.
The "Rails way" or "DHH way" of building apps is indeed consistent, but most big teams eschew this in the name of more complicated (and less consistently applied) patterns.
It follows the Anna Karenina principle to a T. All good codebases are alike and follow the Rails way; each bad codebase is bad in its own way and uses bullshit like Trailblazer, Active Interactors, over-engineered Service Objects or some other bullshit. Sometimes all of them at the same time.
can we get a web apps built with svelte/sveltekit?
One thing I find frustrating with Django is there's not really a place to put business logic. Ask 3 Django people and you'll get 3 different answers, and often different answers from the same person! That's not a good architecture IMO. It should be obvious where stuff goes. Some say it's not Django's concern, Django is just a web framework, but Django doesn't sit nicely at the edge of an architecture where it belongs at all.
Is Rails better in this respect?
The Search tab is taking close to 30s to load... I'm suspecting this site itself also uses Rails
I rescaled my VPS, let me know if it's still laggy.
RIP, hacker news hug of death
>website down
oh deer.
Traffic has increased significantly, but everything seems to be working fine.
If they had used Next.js with a typical deployment this wouldn't happen since it uses a static CDN cache for all pages.
That one bloated horrible JS nightmare that everyone avoids? No thanks.
I don't know why anyone would want to code with a language that isn't statically type safe at compile time in this day and age.
Might be worth spending 30 minutes watching a video of what you can build with Rails in that amount of time instead of smugly dismissing it.
There’s a great example on the home page here: https://rubyonrails.org/
I've used it before, but Next.js with TypeScript is much superior in many different ways.
I don't know if I'd admit that publicly, without first reading about it and trying to understand why things like RoR and Python have huge, loyal user bases.
Doesn’t tools like Sorbet and RBS help?
Why use a 3rd party add-on solution instead of using something better in the first place?
RBS comes by default with Ruby, Sorbet is 3rd party.
You mean like Typescript, an add-on that transpiles to Javascript?
I'm sure they meant an actual statically typed language. I agree that dynamic languages are fun and productive ... until the codebase becomes big and complex, and then not knowing what shape any data is quickly becomes a nightmare to understand and debug.
That is why I use Laravel btw
I have always looked at Rails with love, but since I mainly build heavy client side SPA apps behind a login it has never been a good choice for me.
I've done both. One of the really fun things with Rails 8 is getting PWAs out of the box and using Hotwire for Native apps with not much more work.
It wont cover every use case but for what I do it's amazing.
https://hotwire.io/
Laravel with Inertia.js seems like a really great solution to get 95% of the productivity of a MPA and 95% of the benefits of a SPA.
The app does not load for now. I guess they used Rails :)
You underestimate the power of HNs hug
I did use Rails :D
2006 called — they said scaffolding is still the cheat code for building something working, stable, simple, and maintainable.