The Shopify Goldmine: How to Build Your First App in Rails
If you know Ruby on Rails, you are already sitting on a goldmine.
If you know Ruby on Rails, you are already sitting on a goldmine.
For a long time, if you wanted to send a “Push Notification” to a user’s phone or laptop, you needed a native mobile app. For solo developers, this was a hug...
If you have been using AWS S3 for your Rails file uploads, you know the pain of the monthly bill. It’s not just the storage cost; it’s the Egress Fees. Every...
Imagine a user trying to upload a 100MB video or a high-resolution photo to your app. If you use the standard Rails file upload, that file travels from the u...
I’ve lost count of the number of hours I’ve spent in the past building “Live Search” features.
I am a huge fan of Hotwire. It’s what allowed me to stop writing massive React apps and go back to enjoying Ruby. But recently, a new player has entered the ...
I love Ruby. It is the language that made me happy to write code. But as a Rails developer, I eventually hit a wall. Maybe I needed to process a 2GB CSV file...
If you spend any time on Tech Twitter lately, you might feel like the sky is falling. People are saying that “coding is dead” and that AI will replace every ...
I remember when I first started learning Ruby outside of Rails. I was building a small script, and my code kept crashing with NameError: uninitialized consta...
If you have ever used the Stripe API, you’ve noticed their IDs look awesome. Instead of a random number or a long, confusing UUID, they look like this: cus_M...
I remember the days when building a professional-looking dashboard in Rails meant spending a whole week wrestling with CSS flexbox and custom SVG icons. You’...
I remember when my app/views folder was a complete disaster. I had deeply nested partials, instance variables floating everywhere, and logic hidden inside HT...
I used to wake up every morning to a wall of support emails. As a solo developer, this is the ultimate “flow-state” killer.
If you are a Rails developer, you are used to the “Omakase” experience. Everything is chosen for you, and there is a very specific “Rails Way” to do things.
I remember the day I got my first $200 bill from a PaaS provider (Platform as a Service).
I recently realized that the way I learned Ruby on Rails ten years ago is now completely obsolete.
I remember when building a simple dropdown menu or a sticky header required a library like jQuery. Later, we moved to writing Stimulus controllers or React h...
I recently took a long look at my Rails projects and realized I was carrying around a piece of technical debt that was actually hurting my user experience: G...
I remember when I first started with Rails, I thought .count, .length, and .size were exactly the same thing. I used them interchangeably in my views and con...
I love Rails, but I’ve always found ERB to be a bit messy. You spend your whole day jumping between the “Backend” (clean Ruby code) and the “Frontend” (a mix...
For a long time, if you wanted a primary key that was both unique and chronological, you reached for ULID. It was the perfect “indie” solution to the randomn...
I know the feeling of opening a blank index.html.erb file and having no idea how to make it look “premium.” You have the Rails backend working perfectly, but...
In a previous article, I talked about Snowflake IDs. They are great, but they require a bit of configuration because you need to manage “Worker IDs.”
I’ve lost count of how many times I’ve been tempted by a “revolutionary” new database.
Automating the “glue work” of a SaaS business is a survival skill for a solo developer. You need to sync Stripe payments to your database, send Discord alert...
When you run rails generate model, Rails defaults to using a standard auto-incrementing integer for your primary keys. Your first user is ID: 1, your second ...
We are living in a wild time for software development. With tools like Cursor, Windsurf, and ChatGPT, you can “vibe” your way into a working application with...
If you want a terminal that tells you if a command is valid, predicts what you’re about to type, and shows your Git branches, follow this clean-slate guide.
If you’ve tried the new rails generate authentication command in Rails 8, you know it’s a breath of fresh air. It gives you a solid, secure foundation for se...
For almost 15 years, if you wanted to build a Rails app with a login system, the answer was always the same: Devise.
If you are a solo developer with “Shiny Object Syndrome,” you know the feeling. You have a great idea for a new SaaS on a Saturday morning. You run rails new...
Real-Time Rails Without Redis: A Guide to Solid Cable
Building an Infinite Scroll in Rails 8 (Zero Custom JavaScript)
If you are building a SaaS in 2026, the default advice is always the same: “Just plug in Stripe and launch.”
I see developers trying to build “AI Chatbots” that know about their specific company data. They want the AI to read their PDFs, their internal wikis, or the...
Very often I see developers integrating AI into their Rails apps for the first time, and they make a critical mistake that completely destroys their server p...
I see developers make a mistake that can ruin their entire month.
Automating My Life: How I Use n8n Instead of Custom Ruby Scripts
Very often I see users struggling with the absolute worst part of the internet: Passwords.
In the world of cryptocurrency, we often say that “code is law.” But when that law has a bug, or the person writing the law is a thief, billions of dollars c...
Hotwire Native vs NativePHP: How Web Frameworks are Conquering Mobile and Desktop
The Blueprint and the House: Ruby Classes and Objects Explained
If you are a solo developer or an indie hacker, you probably suffer from “Shiny Object Syndrome.” You have 10 different ideas, and you want to launch all of ...
Very often I see developers completely give up on learning Docker because of the vocabulary.
From Web to Desktop: Wrapping a Rails Hotwire App in Electron
Very often I see solo developers fall into one of two traps.
How to Use Shadcn UI in Rails 8 (Without React or Webpack)
Stop Pushing to GitHub: How to Test Ruby Gems Locally
HTTP Basics You Must Know As A Web Developer
I’m building a really nice, modern Rails application. I use Tailwind to make the buttons look great, I use Hotwire to make the page load instantly, and then…...
Very often I find myself sharing a link to my new Rails project on Twitter, Discord, or LinkedIn. But when I paste the link, the preview just shows a blank, ...
I see beginner developers get completely overwhelmed by computer science jargon. You read an article about “Monads,” “Polymorphism,” or “Immutability,” and y...
The Developer’s Hardware Wallet: A Review of the OneKey Classic 1S
A Rails Developer’s Cheat Sheet to Learning Laravel
If you log into Upwork today, you might feel completely overwhelmed. Every job post has 50+ proposals within the first ten minutes. The platform is flooded w...
When Hotwire first came out, it felt like a superpower. We could finally update our web pages without full browser reloads, and we didn’t have to write a sin...
The Quickest Way to Build a Drag-and-Drop Landing Page Builder in Rails 8
Turning a Rails App into an Android App: Testing Hotwire Native
Very often I find myself talking to developers who are incredibly confused by the JavaScript ecosystem in Rails.
When you are launching a new SaaS, getting your first users is the hardest part. One of the best ways to grow is to create an affiliate (or referral) program...
If you write Ruby, you will eventually get curious about Elixir. The creator of Elixir, José Valim, was a huge figure in the Ruby on Rails community. Because...
Sometimes I find myself starting a new Rails project, and almost immediately, I hit a wall: User Permissions.
Solo founders fail for a completely preventable reason. It’s not because their idea was bad, and it’s not because they couldn’t code. It’s because they spent...
We are fully in the era of autonomous coding. If you use tools like Cursor, Windsurf, or Copilot Workspace, you know how fast you can move. You type a prompt...
There are Rails applications that run incredibly fast on a developer’s laptop, but the moment they are deployed to production, they crawl to a halt. The page...
Stop Using SQL LIKE: A Step-by-Step Guide to Elasticsearch in Rails
Building Drag and Drop in Rails 8 with SortableJS and Importmaps
Very often I see JavaScript developers getting tired of building backend APIs with Express.js. Express is incredibly fast, but it has zero structure. You hav...
When users reach out asking: “Can I pay with Bitcoin or USDC?”
Very often I find myself remembering the “bad old days” of Linux. If you wanted to install a simple app, you had to add a random PPA repository, run apt-get ...
Everyone knows that Python is the king of training AI models. But if you want to actually build a web app that uses AI (like an AI copywriter, a smart chatbo...
rbenv vs rvm vs asdf vs mise vs chruby vs direnv
Very often I find myself writing small, standalone Ruby scripts. Maybe it’s a web scraper, a small background worker, or a quick Sinatra API.
If you are a Ruby on Rails developer, you have definitely heard about Elixir and the Phoenix framework.
How Importmaps Work in Rails (And Why You Don’t Need Webpack)
For a long time, if you wanted to build a fast, modern web application without page reloads, you had to build two completely separate apps. You had to build ...
When I first started web scraping, my workflow was always the same. I would use Nokogiri to download the HTML page, and then I would spend hours writing craz...
If you spend too much time on X or Reddit, you might think the only jobs left in 2026 are for AI prompt engineers or Rust developers. Every year, someone wri...
If you want to build a web application or a SaaS today, the first thing you have to do is pick a backend framework.
When you build a standard Rails app, PostgreSQL (or MySQL) is your best friend. It handles your users, your posts, and your billing perfectly.
Very often I find myself working inside a Rails model, and I need to write a validation or a custom method. But I suddenly forget the exact name of my databa...
When I first started building web applications, Bootstrap was the absolute standard. Every tutorial used it, and it was the fastest way to get a decent-looki...
I know that DevOps and server management can be very confusing, even if you have years of experience writing Ruby code. For a long time, deploying a Rails ap...
If you write Ruby code, you already know why it is so popular. It is incredibly easy to read, and frameworks like Ruby on Rails make building web apps very f...
In the previous article, we looked at how to use Stripe Connect to take a cut from a one-time payment. But what if you are building a platform like Patreon, ...
The New Guard For a decade, Selenium was the king of browser automation. It was slow, clunky, and flaky, but it was all we had.
The “One Endpoint” Revolution In the old REST world, if you wanted to scrape a user’s profile, their posts, and their comments, you might have to hit three d...
Very often I find myself writing small Ruby scripts to scrape data, process CSV files, or build a tiny Sinatra API. In these situations, generating a massive...
The “Dead” Language Paradox If you listen to Twitter (or X), Ruby on Rails died sometime around 2017. Everyone moved to Next.js, Go, or Rust. Bootcamps stopp...
Building a SaaS where users pay you is easy. But what if you want to build a marketplace? Like Airbnb, Fiverr, or a platform where users pay other users, and...
The “Admin Panel” Ticket We all know the feeling. You are building an exciting new SaaS. The core product is looking great. Then, you look at your backlog an...
The “Black Box” Between the Browser and Your Code When you are learning Rails, you usually think the flow works like this: User clicks a link. Magic hap...
The Developer’s Dilemma You’ve just spent three days debugging a complex Rails 8 migration or finally perfected your Arch Linux dotfiles. You want to write a...
If I had a nickel for every time a “State of Web Dev” article declared Ruby on Rails dead, I wouldn’t need to write code for a living.
The Industry Standard If you’ve been in the Rails ecosystem for a while, RSpec is likely your default. It’s what most bootcamps teach, it’s what most enterpr...
The “Final Boss” of Data Extraction You’ve mastered Nokogiri. You can navigate a nested <div> structure with your eyes closed. But then, your client or...
I’ll admit it: I used to be a React maximalist.
The “Two Problems” Joke There is an old programmer joke: “Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now t...
Let’s get the elephant out of the room immediately: Python has won the popularity contest.
Web scraping in Ruby isn’t a “one size fits all” task. If you use a headless browser for a static site, you’re wasting CPU. If you use Nokogiri for a React a...
The Headless Browser Trap If you want to scrape a modern React or Vue website, the “standard” advice is to use a headless browser like Selenium or Playwright...
Most Rails developers stop learning routing after resources :posts.
The Missing Link If you’ve spent more than a week with Ruby on Rails, you’ve probably used has_many :through. It’s the standard way to reach “down” across as...
The /etc/hosts Headache If you are building a SaaS that uses subdomains (like app.mysite.com or tenant.mysite.com), testing them locally is usually a pain.
The Industry Standard Trap If you look at any “Modern Web Dev” tutorial, Step 1 is almost always: Install Docker.
The Dogma vs. The Deadline If you spend any time in the Rails community, you’ve heard the gospel: Test-Driven Development (TDD) is the only way to write prof...
Ruby has a standard library for making web requests called Net::HTTP. It is famously terrible.
The “I’ll Remember This” Lie We tell ourselves the same lie every day. “I don’t need to write down why I used this specific regex. It’s obvious. I built it. ...
The Graveyard of Perfect Apps We all have a ~/projects folder filled with half-finished dreams. Usually, the code isn’t broken. The idea isn’t bad. The proje...
It is wild how fast things change. Just a few years ago, we were amazed that GitHub Copilot could autocomplete a def index method in our controller.
We type gem install rails or bundle install every day. Text scrolls down the screen, and suddenly we can use the library.
If you are coming from JavaScript (npm/yarn) or Python (pip/virtualenv), the Ruby way of doing things can feel slightly different.
The “Partial” Problem We love Rails. We love ERB. But let’s be honest: app/views is usually the messiest part of any Rails codebase. .
Using a model class (even a simple PORO in app/models) for features has several advantages in Rails. This is why developers often prefer “a model class” over...
Here is a cheat sheet for a JavaScript developer diving into TypeScript (TS) for the first time.
Here is the guide to adding Tailwind CSS v4 to an existing Vite React app.
After merging changes to main on GitHub, here’s how to sync them to your local main branch:
I’ve ran into issues trying to validate form inside dialog component using NitroKit UI components. The dialog kept closing on every submission, the solution ...
Manjaro, based on Arch Linux, supports the Arch User Repository (AUR). Below are the steps to install AUR packages on Manjaro.
If you’ve already committed a file to Git and want to add it to .gitignore, follow these steps.
Compiled languages are faster but need a prep step (compiling), while interpreted ones are easier to change but can be slower.
Vite is a modern frontend build tool that provides extremely fast development server startup and hot module replacement. Here’s how to create a new Vue app u...