We saved $82,920/year.
Here's how.
We run Eulerpool, a financial data platform that serves millions of page views per month. In March 2026, we migrated our entire infrastructure from Fly.io + Vercel to bare metal servers. Our monthly bill dropped from $7,370 to $460. This is the full story — the numbers, the pain, and why it led us to build RAW.
The bill that started everything
Let me show you two numbers. The first is what we were paying. The second is what we pay now.
That's not a typo. Same application. Same traffic. Same uptime — actually better uptime. 94% cheaper.
If you're a developer or founder reading this and your cloud bill feels too high, it probably is. Here's exactly what we did.
What we were running
Eulerpool is a financial data platform. Think stock prices, company fundamentals, ETF compositions, analyst estimates — all served through a Next.js frontend and a set of backend services. Millions of API requests per day. Sub-100ms response times required.
Our stack on Fly.io + Vercel:
- PostgreSQL on Fly.io — our main database, approaching 400GB. Fly's hard limit is 500GB. We were on borrowed time.
- Application servers on Fly.io — multiple machines running our API layer, data ingestion pipelines, and background jobs.
- Next.js on Vercel — frontend, server-side rendering, edge functions, image optimization.
- Ancillary services — Redis, search, ML inference pipelines.
It worked. It worked well, actually. Fly.io is a good product. Vercel is a good product. But good products with bad economics are still bad economics.
Where the money went
Let me break down the $7,370.
| Service | Before | After | Change |
|---|---|---|---|
| Database (PostgreSQL) | $1,400/mo | $0 (self-managed) | -100% |
| Application servers | $2,644/mo | $380/mo | -86% |
| Frontend hosting | $1,200/mo | $0 (self-hosted) | -100% |
| Bandwidth / egress | $800/mo | $0 (unmetered) | -100% |
| Edge functions | $600/mo | $0 | -100% |
| Misc (images, logs, etc.) | $726/mo | $80/mo | -89% |
The pattern is obvious once you see it: managed services charge you for management, not for the underlying resource. A PostgreSQL database that costs $20/month in hardware costs $1,400/month when Fly.io manages it. The management is real work — but is it $1,380/month of work? For a team that can run their own database? No.
The migration
We moved to dedicated servers from Hetzner. Two machines: an AX102 (128GB RAM, AMD EPYC, 2× NVMe) and a smaller box for ancillary services. Total hardware cost: roughly $380/month for compute plus $80/month for storage and backups.
The actual migration took about three weeks. Not because the technology was complicated — PostgreSQL is PostgreSQL whether it runs on Fly.io or bare metal. The pain was in the surrounding infrastructure.
Pain point 1: Provisioning is manual
Ordering a Hetzner dedicated server involves the "Robot" web interface. It's functional but dated. You click through forms, wait for provisioning, configure the OS via a rescue system. It works, but it's the opposite of fly deploy.
Pain point 2: Database setup is undocumented tribal knowledge
Setting up PostgreSQL with streaming replication, pgBackRest for backups, proper WAL archiving, and monitoring required reading three different documentation sources and multiple forum posts. On Fly, it was a flag. On bare metal, it was half a day.
Pain point 3: NVMe RAID decisions
The AX102 comes with two NVMe drives. Do you run RAID 1 for safety or RAID 0 for speed? What filesystem? Should the database live on a separate drive from the OS? These are real decisions with real consequences, and the answers are scattered across forum posts from 2019.
Pain point 4: Firewall and networking
Hetzner's firewall is imperative — you add rules one by one. No declarative config. No version control. One wrong rule and your database is exposed to the internet. On a managed platform, this is handled for you. On bare metal, it's your responsibility.
Pain point 5: SSL, DNS, and all the glue
Let's Encrypt, Caddy configuration, DNS records, health checks, monitoring with Prometheus and Grafana. Each piece is well-documented individually. Wiring them together into a production stack is not.
The realization
During the migration, I kept a running note of every moment where I thought: "This should be one command."
- "I wish I could just run
raw deploy --type raw-metal-128and have a server ready in 90 seconds." - "Setting up replication should be
raw db replicate --from eu --to us, not reading three docs." - "Firewall rules should be declarative, not 'did I remember to add that rule?'"
- "Backups should be automatic and tested, not a cron job I wrote at 2am."
By the end of the migration, the note had 30+ items. That note became the RAW product spec.
Why this matters beyond us
We're not the only ones overpaying. 93% of enterprises are repatriating workloads from cloud back to owned infrastructure, according to recent industry surveys. The cloud repatriation wave is real, driven by:
- Economics — AWS has 60%+ gross margins. That's your money.
- Equinix Metal shutting down — June 2026. Thousands of bare metal customers need a new home.
- AI compute demand — GPU and high-memory workloads are insanely expensive on hyperscalers.
- Predictability — startups want flat bills, not surprise invoices.
The hardware to run your application costs a fraction of what AWS charges. The gap isn't technology — it's convenience. AWS makes it easy. Bare metal makes it cheap. Nobody makes it both easy and cheap.
That's what RAW is.
How RAW pricing works
Our pricing model is simple and transparent:
- Source hardware at the best possible price — we buy commodity and auction hardware from tier-1 datacenters.
- Automate provisioning end-to-end — no manual setup, no handholding, no ops team per customer.
- Keep overhead minimal — small team, no sales force, no enterprise hand-holding tax.
- Pass the rest to you.
Compare this to AWS, which operates at 60%+ margins, or Fly.io, where a simple PostgreSQL database costs 70x the underlying hardware cost.
We think of it like Costco. High volume, low margin, happy customers. You know exactly what you're paying for. No egress fees. No per-request billing. No bandwidth surprises. Flat monthly rate.
What RAW looks like
Here's what we built. Deploy a server:
See your savings from your current provider:
SSH in, check status, destroy when done — everything is one command. No dashboards. No YAML. No 47-step wizards.
The bottom line
We saved $82,920 per year by moving off managed cloud services to bare metal. The savings were real. The migration was painful. So we turned the migration into a product.
RAW is bare metal infrastructure with managed-service ergonomics. The pricing of Hetzner. The developer experience of Fly.io. No egress fees, no surprises, no BS.
If your cloud bill makes you uncomfortable, it should. The hardware under your application costs a fraction of what you're paying. The rest is margin.
We think you deserve better economics.
Try it yourself
Deploy your first server in 30 seconds. Free forever tier included.
Get Started Free