---
title: Object Storage is the New Universal Backend for Owned Software
url: "https://goremy.ai/blog/articles/object-storage-vs-database-for-self-hosting-the-new-backend"
author: Luis Chavez-Mattos
editor: Luis Chavez-Mattos
editor_title: Director, Product
published: "2026-08-30T02:00:08.581Z"
updated: "2026-08-30T02:00:08.581Z"
topic: Build vs Buy Software
description: Why developers are pairing single binaries with cheap object storage instead of managed databases, and what it means for self-hosting costs.
---

# Object Storage is the New Universal Backend for Owned Software

> Why developers are pairing single binaries with cheap object storage instead of managed databases, and what it means for self-hosting costs.

Edited by Luis Chavez-Mattos, Director, Product · Published 2026-08-30

## Is object storage now the best backend for self-hosted software?

For most self-hosted apps, object storage plus a single binary now beats a traditional managed database on cost and operational simplicity, because storage runs about 5 to 8 times cheaper per gigabyte than managed database storage, and it eliminates the servers, patching, and scaling work that come with running a database yourself. [1] [2]

That is not a niche trick anymore. It is becoming the default architecture for people who want to own their software instead of renting it every month.

## TL;DR

- Object storage plus a single binary beats a managed database for most self-hosted apps, with storage running **about 5 to 8 times cheaper per gigabyte**.
- SQLite combined with tools like Litestream gives a single-file database **durable, off-box backups** in a bucket without a second server.
- Cloudflare R2 charges nothing for egress, which removes **the biggest source of surprise cloud bills** for apps that serve files or sync data.
- Object storage has become the durability layer for the database itself, **collapsing three services into one bucket and one binary**.
- The tradeoff is real: SQLite does not shard or support multi-writer clusters, so **past roughly 10,000 users** a horizontally scalable database is the better call.
- Removing most of the operational weight puts self-hosting **back in reach for a two-person team or a single developer**.

## What changed?

For twenty years, "real" software meant a database server. You provisioned Postgres or MySQL, planned for replicas, budgeted for IOPS, and paid for compute even while the database sat idle overnight. Amazon RDS still prices this way: a db.m5.large running PostgreSQL runs about $0.178 an hour before you add storage, and general-purpose SSD storage costs $0.115 per GB-month, roughly 5 times what S3 Standard costs per gigabyte. [2] [3] Provisioned IOPS storage, the tier serious transactional apps often need, runs $0.125 per GB-month plus $0.10 per IOPS-month on top, which turns a modest 100 GB database with 10,000 IOPS into a bill north of $1,000 a month before you have written a line of app code. [3]

Meanwhile SQLite quietly became good enough for most workloads that do not need multi-writer concurrency at scale. It is the most widely deployed database engine in the world, and tools like Litestream now stream every write to an S3-compatible bucket in near real time, so a single-file database gets durable, off-box backups without a second server. [4] Litestream's own pitch is blunt about the economics: object storage is cheap, so there is no need to waste money on additional servers just to protect your data. [5]

That combination, a compiled binary with SQLite baked in, replicating to object storage, is what projects like PocketBase turned into a pattern. PocketBase bundles a real-time database, authentication, and file storage into one executable, and lets that file storage point at any S3-compatible bucket instead of the local disk. [4] A Hacker News thread on a similar single-binary tool put the appeal in plain terms: the simplicity of a single binary beats the scalability of a distributed mess any day, because most side projects and internal tools never actually hit the scale that justified the complexity in the first place. [6]

## Why did object storage get cheap enough to build on?

Three things lined up at once.

First, S3-compatible storage got commodified. Cloudflare R2 charges $0.015 per GB-month for standard storage and, critically, nothing for egress. [1] That egress detail matters more than the headline storage price: AWS S3 charges $0.09 per GB to move data out to the internet after a small free tier, and RDS charges similarly for data leaving the database. [3] For an app that serves files or syncs data to users, egress fees can dwarf storage fees over a year. Removing them removes the biggest source of surprise cloud bills.

Second, replication tools matured. Litestream and similar projects made it routine to run a database on a single cheap VM and stream continuous backups to a bucket, so "single server" stopped meaning "fragile server." [5]

Third, the object storage layer stopped being just a place to dump files. It became the durability and backup layer for the database itself, collapsing what used to be three services, a database, a backup system, and a file store, into one bucket and one binary.

## What is the real cost comparison?

Here is the trade people are actually making when they choose object storage over a managed database for a self-hosted app.

| | S3 Standard object storage | RDS gp3 database storage | RDS Provisioned IOPS storage |
|---|---|---|---|
| Price per GB-month | $0.023 | $0.115 | $0.125 plus $0.10 per IOPS-month |
| Compute required | None, runs alongside your app | Dedicated instance, billed hourly | Dedicated instance, billed hourly |
| Egress to internet | Free on R2, $0.09/GB on S3 after free tier | Similar tiered egress charges apply | Similar tiered egress charges apply |

Sources: Cloudflare R2 pricing page and the AWS RDS pricing breakdown. [1] [2] [3]

The gap is not subtle. A 100 GB workload costs about $2.30 a month in raw S3 storage and effectively nothing extra to protect, versus $11.50 a month in RDS gp3 storage before you have paid a cent for the compute instance that has to run continuously to serve it. [3] Scale that across a self-hosted CRM, an internal ticketing tool, or a small SaaS replacement, and the database line item alone can be the difference between a $5 VPS and a $200-a-month managed stack.

This is the same math this publication has made about [why B2B SaaS is priced the way it is](https://goremy.ai/blog/articles/why-is-b2b-saas-so-expensive-compared-to-ai-apis): a lot of subscription pricing reflects infrastructure and operational overhead that a single binary and a bucket now let you skip entirely.

## What do you give up?

This is not a universal upgrade. SQLite on a single server does not shard, and it does not support a true multi-writer cluster across regions. [4] Better Stack's guide to PocketBase puts a rough ceiling on it: it is a strong fit up to around 10,000 users, and past that, a horizontally scalable database is the better call. [4] The Amazon-versus-S3 comparison research is equally direct about the flip side: S3 lacks multi-statement transactions and relational joins, and it is eventually consistent for some operations, so it is a poor substitute for a database when you actually need those things. [2]

The honest framing is: object storage plus a single binary is the new default for the enormous category of internal tools, small SaaS replacements, and side projects that never needed a distributed database in the first place. It is not the answer for a bank's ledger or a system with heavy concurrent writes from thousands of users at once.

## Why does this matter for software ownership?

The cost gap is one story. The bigger one is what it does to the decision to self-host at all. Renting a SaaS product used to be the path of least resistance because running your own backend meant running your own database, and running your own database meant real operational weight: patching, backups, failover, monitoring.

Object storage removes most of that weight. A binary that embeds its own database and streams backups to a bucket needs almost no babysitting. That is a direct rebuttal to the argument that self-hosting is only for people with a dedicated ops team. It puts the option back in reach for a two-person team or a single developer, which is exactly the audience building [their own internal tools with AI coding assistants](https://goremy.ai/blog/articles/build-vs-buy-ai-agents-how-to-build-internal-workflows) instead of paying for another seat-based SaaS product. If you are evaluating whether to build or buy your next internal tool, this is one of the clearest signals that the calculus has shifted: the backend that used to justify "just rent it" now fits in a single file and a bucket you already pay pennies for.

For teams shipping software this way and looking for a harness to run and manage those self-hosted binaries reliably, this is exactly the kind of infrastructure gap a platform like [Remy](https://goremy.ai) is built to close.

**Storage cost per GB-month: object storage vs managed database**

| Storage service | USD per GB-month |
| --- | --- |
| S3 Standard | $0.023 |
| Cloudflare R2 Standard | $0.015 |
| RDS gp3 (SSD) | $0.115 |
| RDS Provisioned IOPS (io1/io2) | $0.125 |

_RDS Provisioned IOPS also adds $0.10 per IOPS-month on top of the base rate shown._

## FAQ

**Is object storage actually a replacement for a database?**
Not for every workload. It replaces the database for apps that can run on an embedded engine like SQLite, where object storage handles backup and durability instead of a separate managed database service. It is not a substitute for a relational database that needs complex transactions, joins, or high concurrent write volume. [2] [4]

**How much cheaper is object storage than a managed database, really?**
Raw storage alone is roughly 5 times cheaper on AWS: S3 Standard costs $0.023 per GB-month versus $0.115 per GB-month for RDS gp3 storage. [3] Add in the dedicated compute instance RDS requires and the egress fees both charge, and the total gap on a small workload is often larger. [1] [3]

**What tools make this pattern possible?**
SQLite as the embedded database, Litestream to stream continuous backups to an S3-compatible bucket, and single-binary frameworks like PocketBase that bundle the database, auth, and file storage into one executable. [5] [4]

**When should I still choose a traditional managed database?**
When you need multi-writer horizontal scaling, strict multi-statement transactions across large datasets, or you are past a few thousand active users on a single-node setup. PocketBase's own guidance puts the comfortable ceiling for SQLite-based apps around 10,000 users. [4]

**Does egress pricing actually matter for a self-hosted app?**
Yes, often more than storage pricing. AWS charges $0.09 per GB to send data to the internet after a small free tier, while providers like Cloudflare R2 charge nothing for egress, which can be the larger cost difference for apps that serve files or sync data frequently. [1] [3]

## Sources

1. [R2 Pricing](https://developers.cloudflare.com/r2/pricing/) (Cloudflare Developers)
2. [Amazon RDS vs S3: Choosing the Right AWS Storage Solution](https://sedai.io/blog/amazon-s3-vs-rds-key-differences) (Sedai)
3. [The Ultimate Guide to AWS RDS Pricing: A Comprehensive Cost Breakdown 2025](https://cloudchipr.com/blog/rds-pricing) (Cloudchipr)
4. [What is PocketBase? Features, Limitations, and Use Cases](https://betterstack.com/community/guides/database-platforms/pocketbase-backend/) (Better Stack Community)
5. [Getting Started with Litestream](https://litestream.io/getting-started/) (Litestream)
6. [Pocketbase - open-source realtime back end in 1 file (comments)](https://news.ycombinator.com/item?id=46075320) (Hacker News)
