Readit News logoReadit News
kukkeliskuu · 4 months ago
I don't have any experience in Rails, but similar experience with Django. I am running several apps on my own, while still working elsewhere full-time.

The largest one has around 250 views, of maybe 80 are just basic admin views. It is basically comparable to an ERP of a medium-side company with various levels of permissions etc. I was able to get most of the functionality into production in just one month -- I was not working full-time at that time. I have estimated it with some friends, and such an ERP in the corporate world would normally take a team two years to do -- one to spec and another to implement.

It has 1-2M monthly page views depending on the season, and the highest hitting pages are read-only and heavily cached, so the server load is minimal. I am further increasing the performance by making those pages static HTML using django-distill and using Cloudflare to cache/serve them.

The key thing is to keep things as simple as possible. I avoid REST/heavy frontend frameworks whenever possible. For most views for most apps, normal HTML form request-response user interface based on Bootstrap is perfectly fine.

I started by sprinkling Javascript when it was really needed, for example client side sorting so I can avoid server load. Now I use AlpineJS/HTMX for the interactivity. It has been great, although much slower to implement.

mrits · 4 months ago
I'm not a huge fan of Ruby, but even if you admit that Rails is superior to Django, it would be a hard sell to invest in Ruby ecosystem instead of Python

I'm doing something similar to OP with Django right now

dismalaf · 4 months ago
> , it would be a hard sell to invest in Ruby ecosystem instead of Python

Why? The Ruby ecosystem is great, as good as ever. What do you think it's missing?

alankarmisra · 4 months ago
I would argue that framework isn't the winning component, the people are. A lot of people can say similar things for framework <<X>> and they'd be right given their own experience but I think they give themseleves too little credit. I've written my own frameworks for smaller projects because I didn't want the needless learning curve / cruft of a generalized framework and I can tell you they saved me so much time / effort / cost over the long term and they were tuned to my development style. All built with python and some off-the-shelf libraries. I'm not saying there's no place for generalized frameworks. They do help streamline development efforts and set a standardized model for building out your app/service which would be great with a team of people all tuned in to a specific framework but I would argue that in a single developer environment it doesn't matter much what you use, so long as you have fun with it. Productivity analyses are at best personal opinions in a forum like this.

Edit: basic grammar.

loandbehold · 4 months ago
Dating site PlentyOfFish was built and grown to one of the top dating sites in the world by a single developer until he sold it for $100 million to match.com parent company. It was written in C#/.NET. You can do it in any language.
jhancock · 4 months ago
Excellent write up.

I worked with Rails and Phoenix in their early days and got plenty of value from each. If you're building a traditional web 2 app, look no further...similar to choosing Postgres, start there until you have really good reason to venture off.

Without taking away anything from these frameworks and as someone that spent over 10 years building app frameworks, sometimes it's not what I want.

I'm using Clojure for my current problem space which would stymy me if I tried to use Rails or Phoenix. I spent the past 4 months doing product/domain "shaping". There are no web pages yet..mostly pure server side domain and API calls for data gathering. After this exploration I now have several working subsystems and have figured out the pathway to the mvp which will come together quickly. As a bonus I have a working domain core to leverage for steps after the mvp.

chamomeal · 4 months ago
It’s funny you mention clojure, cause I when I saw “one-person framework” I instantly thought of Biff.

I haven’t used Biff (clojure web framework, does not sound comparable to rails), but there’s a great episode of The Repl with the dev who created it. It’s one of those interviews that reminds you how fun and creative programming can be

SatvikBeri · 4 months ago
Episode 48 for anyone else who's interested: https://www.therepl.net/episodes/48/
graemep · 4 months ago
Had a look at the docs and was immediately put of by a full attack framework where the only built in auth is magic links.

I hope this is not as restrictive as it sounds, and you do not have to jump through hoops to do things differently:

"The starter project comes with code for sending emails with MailerSend. Until you add API keys for MailerSend and Recaptcha (which is used to protect your signin forms from bots), signin links and codes will be printed to the console instead of being emailed."

jhancock · 4 months ago
Joy was a key reason I chose Clojure.
begueradj · 4 months ago
I had to google the definition of "stymy".
fkyoureadthedoc · 4 months ago
I've always seen it spelled stymie, was pretty surprised that stymy is legit and apparently is the American English way of spelling it.
searls · 4 months ago
For anyone who's ducked out of Rails World over the last decade (or two), I devoted my final conference talk last year to the topic of One-Person Framework with a real-world case study of how Rails 7+ specifically helps developers build ambitious apps, even as a solo developer. https://justin.searls.co/tubes/2024-11-09-11h03m00s/
swyx · 4 months ago
final as in you're out of talks for now?? i clicked thru but saw no obvious explanation of what change you're making for those a bit out of the loop
SirSavary · 4 months ago
from searls' link:

> The presentation summarizes a year of my work but it also embeds countless little things life taught me over the 15 years since I started speaking at user groups and regional conferences.

> But this chapter of my life has now concluded. I'm excited to be moving on to other things.

hi_hi · 4 months ago
I'm currently building out an app using AdonisJS. Its billed as a Rails like experience but in node. https://adonisjs.com/

I did a comparison between Rails, Adonis and Fiber (a Go "framework") before settling on Adonis (mostly due to node ecosystem and type safety).

It's been excellent so far, and the creator has an excellent series of tutorial videos that can get you up to speed quickly https://www.youtube.com/watch?app=desktop&v=jf5hHU0KT3Q. The documentation is also good. LLMs can get tripped up by older versions which you need to look out for.

dimitrisnl · 4 months ago
I found the lack of 1st party auth system annoying. Phoenix, for example gives me a nice starting point (even magic links soon). Adonis for all its features, turns me to what I hate. The JS auth implementations.
hi_hi · 4 months ago
Yeah, dealing with auth can be painful. The adonis provided auth and bouncer do a decent job of abstracting some of that away, but like most js implementations, it's got rough edges (the docs and vids really help).

I'm not familiar with Elixir/Phoenix, but from reading other recommendations in this thread and after having a quick look, I need to take a closer look :-)

xutopia · 4 months ago
I'm currently building an application to launch it soonish. I'm using Rails and doing everything myself (save for the design of the logo, and some input from a friend on UX).

What's more is that I'm building mobile applications using Hotwire Native. I'm a solo developer building 2 mobile apps(iOS and Android), supported by a fully functional web application and done with vanilla Rails with Hotwire Native.

I'm surprised how well Rails ecosystem is suited to do everything nowadays.

AstroBen · 4 months ago
I just wish Ruby had something with the widespread adoption of TypeScript. Once a project gets large enough it's really painful not having types

Sorbet and RBS are okay but they don't really compare

sota_pop · 4 months ago
The way I describe language types to non-coders inquiring about language selection for a given project is simply “scale matters”… dynamic types provide flexibility at small scale, but can very easily result in chaos at a large scale. Conversely, the structure of static types can feel onerous and restrictive at small scale, but provide robustness and structure at large scale.
xutopia · 4 months ago
I see what you mean but I have never found it to be an issue even in large codebases. Sorbet and RBS have been problematic. Lots of development slows down with these solutions. I wished it had something baked into the language as well but I'm happy without... just following conventions alone has worked really well for me.
Lio · 4 months ago
Jake Zimmerman wrote this excellent blog post[1] on the current state of Sorbet.

I was impressed at recent changes in the Sorbet syntax but also with the proposal that we make code comments available to the ruby VM.

That would allow Sorbet to adopt the rbs-inline comment syntax for both runtime checks and static analysis.

So there does appear to be a way forward on this, which is pretty exciting.

1. https://blog.jez.io/history-of-sorbet-syntax/

dismalaf · 4 months ago
Why? No one's stopping you from, say, using a Rails API and React front end.
isaachinman · 4 months ago
What made you choose Hotwire over Capacitor?
xutopia · 4 months ago
I started my app using Rails and Hotwire/Stimulus and honestly finding myself way more productive than I did with more JS heavy options. Everything just works so nicely together in the Rails world.
siliconc0w · 4 months ago
Rails is, if I'm being honest, better than Django in a lot of ways. Hotwire, the new SOLID cache/queue, turbo-native, etc.. But I still prefer the overall python ecosystem.
jokethrowaway · 4 months ago
I think you're not giving yourself enough credits and you're giving Rails too much.

I know a developer who followed a similar approach in PHP.

A relative of mine is running his company as a single dev in node.js + react.

My company runs on Python.

The key skill is being a good generalist willing and capable to do all the roles you need. Every tech stack can be automated for most small business needs, so that you can reduce the time spent on it.

throwawax295 · 4 months ago
I agree. Nothing beats using a well known framework for speed.

I think we also need to consider how much experience one has with a language. Most can pickup a new language relatively quickly, but it's not the same as having real experience with it.

At work, someone just started a new micro service written in Rust because they were familiar with Rust and thought they would be able to do something "fast". They spent at least half the time struggling with even basic dependencies, how to deploy it, monitor it and make it deployable. If this was a startup, they would have burned a significant amount of time that could have been spent on PMF