惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
V
V2EX
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Announcements
Recent Announcements
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
Vercel News
Vercel News
The Register - Security
The Register - Security
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
小众软件
小众软件
L
Lohrmann on Cybersecurity
GbyAI
GbyAI
P
Privacy & Cybersecurity Law Blog
T
Tor Project blog
AWS News Blog
AWS News Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
Kaspersky official blog
B
Blog RSS Feed
G
Google Developers Blog
量子位
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
雷峰网
雷峰网
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
F
Full Disclosure
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 【当耐特】
The Hacker News
The Hacker News
U
Unit 42
S
SegmentFault 最新的问题
I
InfoQ
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
罗磊的独立博客
Spread Privacy
Spread Privacy
C
CERT Recently Published Vulnerability Notes

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
What it actually costs to run a one-Rails-app SaaS per month
julianrubisch · 2026-06-17 · via DEV Community

Founders coding with AI tend to land in the same place. The first version is a $200/month no-code stack: a page builder, a chatbot, an auth gate, a workflow tool, two or three other SaaS seats glued together. The second version is a Rails app on a single host that costs $40/month. The transition keeps coming up in client conversations, and the math changes the day you decide to rebuild.

Most online answers about what that math actually is are partial. Hosting articles list the host's monthly fee and stop. Stack articles list the tools without prices. Nobody adds it up.

Here is the math, for a one-Rails-app SaaS, from MVP through validated to growing. Real numbers, all the line items, four host options ranked by what I'd actually pick today.

Hosting: the four real options for Rails in 2026

For a Rails app you actually own, four hosts cover almost every reasonable case. Ranked by what I'd recommend right now.

Fly.io: the simplicity pick. A pay-as-you-go platform that bundles compute, managed Postgres clusters, Tigris object storage, and a direct Sentry integration under one bill. The smallest shared VM is about $2/month. Tigris gives you 5 GB of object storage free and zero egress charges, which is the single biggest cost surprise on AWS S3 for anyone serving images or downloads. Real all-in for a small Rails app with Postgres, object storage, and monitoring: $10-20/month. The Tigris egress-free angle alone is worth picking Fly over hosts that use S3 underneath.

Kamal + Hetzner VPS: the Rails-default pick. Kamal ships in the rails new boilerplate in Rails 8. 37signals run their own stuff on it. The deal: you provision a VPS, Kamal handles deploys, you self-manage Postgres + Redis + storage on the same box. Hetzner's CX23 (2 vCPU shared Intel/AMD) is €4.79/month. That is the whole bill if you accept the operational load. All-in: about $5-8/month plus the time you spend doing what a PaaS would do for you.

Hatchbox + Hetzner VPS: Kamal with a UI. Hatchbox is $10/month per server, unlimited apps, the same VPS underneath. You get a deploy UI and one-click managed services on top of the box. Sensible compromise if Kamal's CLI feels like too much. All-in: $15-20/month.

Render: the PaaS pick. The closest analogue to Heroku. As of 2026, Render's pricing restructured: the Pro plan is $25/month as a platform fee plus separate pay-as-you-go compute and Postgres charges. For a small always-on Rails app with a Postgres database, expect $30-40/month all-in. Free tier still exists but the app sleeps after fifteen minutes of inactivity, which is fine for a side project and embarrassing for paying customers. Hit the pricing page for the current numbers.

My order changes if your situation does. For a founder who has never deployed anything before and wants to stay focused on shipping, Fly. For a founder who wants the canonical Rails workflow and is comfortable with a VPS, Kamal + Hetzner. For someone who wants to outsource ops without paying Heroku money, Hatchbox. Render if a PaaS browser-only experience matters.

The line items most cost articles forget

Hosting is the headline. The line items below are where surprise bills come from.

Stripe fees scale with revenue, not infrastructure. Standard rates are 2.9% plus a fixed €0.25 per transaction in Europe, or 2.9% plus $0.30 in the US. On €5,000 of monthly revenue across 50 customers paying €100 each, Stripe takes roughly €157. That is a real line item that no hosting calculator includes.

Object storage for user uploads, attachments, images. ActiveStorage will hit this the moment your app accepts a file. On Fly, Tigris gives you 5 GB free and $0.02/GB after with no egress charges. On other hosts, Cloudflare R2 gives you 10 GB free, $0.015/GB stored, also zero egress. Pick R2 over AWS S3 unless you have a specific reason. Budget $0-5/month for the first year.

Transactional email. Free up to 3,000/month on Resend or ~100/day on SendGrid. Once you cross the free tier, my pick is Postmark at $15/month for 10,000 emails. It just works, which is what you want from email. Expect to cross the free tier somewhere between customer 30 and customer 80, once password reset emails plus receipt confirmations plus account notifications stack up. Budget $0-15/month.

Error tracking and monitoring. On Fly you get the Sentry extension bundled into your bill. Off Fly, Sentry free covers 5,000 events/month, AppSignal free covers 100k events/month and one user, RorVsWild is in the $15/month range. For most Rails apps under 1,000 active users, free tiers cover you. Budget $0-20/month.

Backups. On Fly, Managed Postgres clusters include automated backups. On Render, daily Postgres backups are extra. On Hatchbox + Hetzner, you provision them yourself; the cheapest path is a Hetzner Storage Box at ~€3/month or a manual pg_dump to S3/R2 for cents. Budget $0-10/month.

CDN. Cloudflare's free tier covers static asset delivery and caching for almost every small SaaS. Set this in front of your domain on day one, regardless of host. Cost: $0.

Privacy-respecting analytics. Plausible at $9/month or Fathom at $15/month. Not strictly required but most founders add one within the first quarter once they start writing about the product. Budget $0-15/month.

Domain plus DNS plus SSL. Domain is $12-15/year via Namecheap or your registrar of choice. DNS is free with the registrar or Cloudflare. SSL is free via Let's Encrypt, auto-provisioned on all four hosts. Total: about $1.25/month amortised.

If you went with Sidekiq instead of Solid Queue, you need Redis. Upstash Redis starts at $0 for 10,000 commands/day and scales to ~$10/month. On Kamal + Hetzner you can run Redis on the same VPS for free. On Fly you can use the Upstash integration. Solid Queue + Solid Cache backed by Postgres avoids this line item entirely and is the Rails 8 default for a reason.

What this actually costs you, by stage

MVP, nobody pays yet. Fly's free shared-cpu-1x VM plus Tigris's free 5 GB plus a free Postgres tier on Fly's Managed Postgres or Supabase. Sleep mode is fine because no real customers are watching. Total: $0/month plus the time you spend setting it up.

Validated, at least one paying customer. Fly with a $5-10 always-on shared VM plus a small Managed Postgres cluster plus Tigris still free. Skip the email tier until you cross 3,000 transactional emails/month. Sentry on the free tier. Total: ~$15-20/month. The $40/month landing zone most founders end up at is real, and yours can be lower than that.

Growing, 10 to 100 customers, real load, real reputation risk. Either bump the Fly setup to a larger VM and Postgres tier (~$25-35/month) or migrate to Hatchbox + a Hetzner CCX13 or equivalent Regular Performance instance (4 vCPU, around €16.79/month, ~$28-30 all-in with Hatchbox's $10/month). Add Postmark at $15/month, Plausible at $9/month, Sentry stays free or paid at $26/month. Total: $60-90/month before Stripe. On €10,000 of monthly revenue, Stripe takes roughly €290. Real all-in cost including Stripe: about €350/month on €10,000 in. That ratio (~3.5% to infrastructure plus tooling) is the steady state for a small Rails SaaS, and it does not get materially worse until well past customer 1,000.

If your numbers are wildly different from this, two things explain almost every case. Either you are on Heroku at $35/month entry, or you bought into a managed Postgres tier you do not yet need. Both are correctable in an evening. Most founders never do, because the bill does not feel painful enough to act on.

The three stages at a glance

Stage Monthly cost Stack When to switch
MVP (no paying customers) $0 Fly free shared VM + Tigris free + free Postgres tier First Stripe payment
Validated (1-10 customers) $15-20 Fly always-on VM + small Managed Postgres + Tigris Crossing 3k transactional emails/month or customer 10
Growing (10-100 customers) $60-90 before Stripe Larger Fly setup or Hatchbox + Hetzner, Postmark, Plausible, paid Sentry Customer 100 or sustained 1k+ DAU

Stripe fees not included; they scale linearly with revenue.

When you need a managed database

Self-hosted Postgres on a single VPS is fine until two things happen at the same time: you have paying customers AND a database crash would cost you a meaningful amount of trust. Around customer 25 for most apps.

When that lines up, three credible upgrade paths:

Supabase at $25/month for the Pro plan gets you point-in-time recovery, automated backups, a UI, and an API you may or may not use. Most teams using Supabase use it for the auth layer plus the Postgres together; if you only need the database it is fine but slightly overkill.

Neon at $19/month for Launch gives you serverless Postgres with branching, which is genuinely useful when an AI agent is generating migrations. The branching feature pays for itself the first time you avoid a production accident.

Crunchy Bridge at $29/month for Hobby is the boring sensible choice. Postgres specialists running Postgres clusters. Less marketing, more reliability.

For most founders building one Rails app, Fly's Managed Postgres is the default. It is on the same host as the rest of your stack, billing is one bill, and it scales without you migrating data. The dedicated managed providers above are where you go when Postgres is the most important thing in your business.

What this means for your first eighteen months

Run on Fly's free shared VM tier until the first paying customer. Switch to a $5-10 always-on Fly VM at customer 1, not before. Add Postmark somewhere between customer 30 and 80. Stop optimising costs around customer 50 and use that hour on customer acquisition instead.

Reframe what the math actually says. Across 50 paying customers at €100 each, you are running a €5,000/month business on €30/month in infrastructure plus tooling. The cost lever is approximately irrelevant compared to the customer acquisition lever. Founders coding with AI tend to spend more time tuning VM sizes than picking up the phone. That ratio is upside down.

If you want a second pair of eyes on the deployment your AI agent shipped, the audits I run cover exactly this. Architecture, cost, the AI patterns that quietly burn money. Two ways to start, both free.