When I started learning Rails, the immediate thing that occurred to me was that, for the first time, I'm "competently" doing full-stack development.
And by "competently" I mean that the idea of convention over configuration frees up a lot of your mental resources to focus on actual business needs. As a Rails developer you are building the database - if it doesn't already exist - and you are creating models that connect to and modify the database through migrations. You're also building the API using controllers, and building out the views and probably even digging into UI efforts like JS frameworks and organizing CSS/Sass/whatever-framework-or-library.
I know of at least one person who maintains a Rails app that he developed over 10 years ago, and it has been his primary source of income this entire time.
So my question is, how many of you folks out there are doing this? How many "one-man armies" are out there? And if you aren't one, do you know of others who are pulling this off?
Would be nice to know, if for no other reason, because it's inspiring.
13 thoughts on “Being a “one-man army” with Rails”
I started web dev over 10 years ago and found Rails after about 4 years. I’ve been working with it professionally for the last 6/7 years. I do very much enjoy it for the most part, primarily because it solves a good few problems out of the box and some excellent gems fill in the rest (devise). The bonus is Ruby is a pleasure to work with.
I attempted full-stack from the beginning because I was contracting and clients would hand me every one of their technical problems.
A few years back I ventured into Elixir/Phoenix and Go. Elixir is a great language, Erlang/OTP is fantastic, and Phoenix is easily on-par with Rails, but I don’t like being constrained by purely functional programming. I also enjoyed working with Go but consider it too simple, lacks the kind of expressiveness I’m used to.
I then planned to build my edu platform in Kotlin. Sadly, the web community is currently very small and I found myself constantly reinventing stuff which had been solved elsewhere. Leaning on Java is nice, but I went with a Kotlin-first framework which was similar to Rails called Alpas (one to watch!).
I think I lost about 6 weeks before I decided to throw it all away and create a Rails project. Within a few weeks I had a working prototype for the community section of my platform. I fully agree with the post. I’m very much a one-man army and work across frontend (Typescript/Vue), backend apps, infrastructure (RabbitMQ, Postgres, Kubernetes, Elastic Search). Rails has been a massive productivity boost where it fits and I can’t imagine a more enjoyable framework/language combination to work with.
Having said that, I have fallen for Kotlin like I fell for Ruby and I do plan to move back over to Kotlin once it has matured a bit more on the web side of things.
I’ve owned and operated a few smaller SaaS apps built entirely on rails in the past, though those have all either been sold or sunsetted for one reason or another. They were all part-time endeavors as well, my free time projects. So yeah, I had the mental energy to do a full time job and then develop and run a small business on the side.
I also tend to join early stage startups, which follows the same overarching principle.
I am a one man army at my first developer job using Rails (sometimes React/Redux on frontend). No one else here knows this technology. They are all old school UNIX/C/SQL guys. We’re merging with some other companies who have modern developers so looking forward to it. Being a junior, I’d rather have others to bounce ideas off of and get help.
I started as a “one-man-army” maintaining an ecommerce app my “team” inherited, 5 years later all of the other team members besides myself are gone, the agency we worked for is gone, many new team members have been added and trained and now we’re employed directly by the client that uses the rails app in production to sell $60m / year of products.
Yep, I’m a “one man” army working on a Rails app, and it’s my primary source of income (I just hit $100k ARR.) I’ve been working on this app for around 3 years, and growth was very slow at the beginning. I was taking a lot of breaks while doing contract work to pay the bills, but I was able to go full-time this year, and it’s been awesome!
I just saw this tweet, and it’s very true for me:
> 1/ Most entrepreneurs start with one goal in mind:
> If you truly value freedom, you should have one goal for your first company:
> Something that can produce $100-$200k of personal income.
> It can be boring and doesn’t have to scale.
My biggest mistake was not validating the idea enough or talking to customers before I started building something. I got very lucky that it actually worked out, but it was much more difficult than it needed to be.
My other mistake was not choosing a niche where I can build a community, and my product is too “general”. If you can build up a focussed mailing list, Facebook page, Slack community, Twitter following, etc., then it’s 1000x easier to get customers signing up. It’s the one thing I’ve seen that’s made a huge difference for any success stories on Indie Hackers.
More recently I’m attempting the indie hacker life, and my current project is [The Scientific Meal Planner](https://scientificmealplanner.com) which I built alone with rails and stimulus JS.
I think it’s hard to argue any other backend framework is as compelling for solo development productivity. But of course even more true is that the most productive framework is the one you already know.
Solo-dev here for a number of million-dollar-per-year Rails applications ,and have been for the last 5+ years.
>and probably even digging into UI efforts like JS frameworks and organizing CSS/Sass/whatever-framework-or-library.
The trick is to not get sucked into the flavor of the week. Stay away from JS frameworks unless you seriously need them (most sites in fact, do not). Keep the stack simple. The simpler the stack, the easier it’s going to be for a one-man army to keep it maintained.
I also like to call it a “universal war machine”
Rails has allowed me to build internal tools and public websites for over a decade. And it is not even my main job!
I created a Personal Finance app for my wife and I to use daily to get out of debt. It lets us enter transactions as we spend, attach receipts to transactions, mark transactions as pending (for example if we wrote a check to someone), and I also added an envelope budgeting feature that has helped us immensely save up for things. We went from being behind on almost every bill a year ago to now having saved up 2 months worth of bills ahead of time.
I originally created it on Rails 4 using Bootstrap/jQuery and Paperclip for attachments. Since then I’ve updated it to Rails 6, replaced Bootstrap with Bulma and jQuery with Vanilla JS. I also replaced Paperclip with ActiveStorage. Currently I’m in the process of building the Rails app into an API and plan to redo the frontend with Vue (Nuxt) very soon.
It hasn’t made me famous or anything, but it’s given me a purpose to hone my development skills outside of my day job, and has led to many side-gigs for extra cash.
I’ve been maintaining a few Rails apps over the last few years. Not very big apps but they aren’t tiny either. Sometimes I work alone, sometimes with other devs.
Normally at the company I work for, many devs work on the same app at the same time, but once it reaches maturity, it’s common to assign one or two devs to maintain it. Sometimes just one can do it, depending on how much in a hurry the client is to get new features done.
Overall Rails code is pretty easy to maintain, even if the code quality is low, at least there are somewhat systematic ways to refactor it (some of our work is fixing other companies messy Rails apps). Much more than you can say for things like PHP or Node 😛
I will never be able to express enough, how ruby and rails specifically pushed me to understand a lot of things, varies from the Frontend and how browsers work to databases and infrastructure, including of course software design patterns and how to write tests.
It’s not an easy thing, it took me years, long years of learning and mistakes to develop the skills needed. I can’t say I am fully one armed man, nor that I cm super smart. But it narrows down to your ability to comprehend and understand problems fast, then fixing it with the best solution possible (it’s never that easy tho, is it?)
I don’t work with rails nor ruby actively these years, since I moved from normal way of development to work with the cloud and infrastructure, the motive was the same, I didn’t understand Puma nor how threads or workers work and the best way to build infrastructure for ruby. I figured, well, better to work on that field for a while…
These days, when I work on a side project, I know hot to do it from the very facing frontend till how to monitor it and deploy it in a distributed and complicated manner and how to keep it reliable with SLOs and SLAs.
All because of Rails.
All because of Ruby.
and yes, I am super biased.
I just recently built a social network (not as good as fb obviously) for car enthusiast in Turkey. Released 4 days ago now started to onboard new users.
React, typescript, css modules, rails api mode, shitty ui design, marketing, social media and some minor stuff. All done by me.
All i can say, until you release its a chaos and despair. After that, its really nice and all you think is “how the fuck i built that?”
For anyone curious wtf i built,
https://otoblog.com (fully turkish sorry)
Its possible being one man army, but mentally exhausting until you see finish line.