The Runsite Blog

Guides for Developers Who'd Rather Ship

Practical, hand-crafted writing on deploying apps, running managed databases, caching, scheduled jobs, and hosting in the EU — drawn from the experience of building and operating the Runsite platform.

Deployment12 min read

Render vs Railway: Pricing, Free Tiers, and the Question Neither Answers

Every comparison argues per-second billing against fixed instances. That axis is real, and it is not the one that decides where your data lives.

Aug 12, 2026Read
Deployment13 min read

Coolify and Self-Hosted PaaS vs Managed: What You're Taking On

What you actually take on when the PaaS layer runs on your own server: the maintenance ledger, the one box that holds everything, and when it stops paying off.

Aug 10, 2026Read
Deployment12 min read

Git Push to Deploy: How Modern Web App Deployment Actually Works

What actually happens between git push and live traffic: build artifacts, health-gated releases, why a rollback isn't a rebuild, and the four things a deploy pipeline can't do for you.

Aug 7, 2026Read
Deployment13 min read

The European Heroku Alternative: What to Look for When You Migrate

What you're really replacing when you leave Heroku, why "European" has three different meanings, and which parts of a migration actually break.

Aug 7, 2026Read
Storage11 min read

AWS S3 Alternatives Without Egress Fees: What to Check Before You Switch

Zero-egress storage moves the meter, it doesn't remove it. What providers bill instead of transfer, why the saving only appears when bytes leave from the bucket, and which workloads actually get cheaper by leaving S3.

Aug 5, 2026Read
Storage11 min read

Uploading User Files to S3: Keys, Multipart, and What to Retry

Uploading a file is three lines of SDK code, and they stay correct until a real user shows up with a 3 GB video on hotel wifi. Here's what comes after the tutorial: naming objects you can't rename, splitting large files, and knowing which failures are safe to repeat.

Aug 3, 2026Read
Storage10 min read

S3 Presigned URLs: Direct Browser Uploads Without Handing Out Your Keys

A presigned URL isn't a token the storage issued you. It's a signature you computed yourself, and almost everything people get wrong about expiry, revocation, and safety follows from that. Here's the mechanism, the threat model, and how to pick an upload architecture.

Jul 31, 2026Read
Storage11 min read

S3-Compatible Object Storage: How It Works and How to Choose a Provider

"S3" names three separate things: a product, a storage model, and an API. This guide separates them — how buckets actually behave, what "S3-compatible" guarantees, where that compatibility runs out, and the axes worth comparing providers on.

Jul 29, 2026Read
Databases11 min read

Self-Hosted vs Managed PostgreSQL: The Real Cost of Ownership

The €5 VPS looks cheaper than the €14 managed plan — until you price the hours. A line-by-line cost of ownership for self-hosting Postgres versus managed, the risk nobody puts on the invoice, and when self-hosting actually wins.

Jul 27, 2026Read
Databases11 min read

pgvector: Storing and Searching AI Embeddings in PostgreSQL

Your app called an embeddings API and got back 1,536 numbers per document. Before you add a vector database to the stack: what pgvector stores, how its two indexes trade recall for speed, and when Postgres alone carries a semantic search feature.

Jul 24, 2026Read
Databases10 min read

Point-in-Time Recovery: How WAL Archiving Saves You After a DROP TABLE

Your nightly backup answers "do we have a copy?" Point-in-time recovery answers "can we go back to 3:06pm?" Here's what the write-ahead log stores, how PITR replays it, and what it still can't undo.

Jul 22, 2026Read
Databases10 min read

Connection Pooling with PgBouncer: What Ports 5432 and 6432 Really Do

You switched to port 6432 to stop the connection errors, and now prepared statements throw and SET doesn't stick. That's pooling working as designed. Here's what a pooler actually does, why 5432 and 6432 are different contracts, and what breaks in transaction mode.

Jul 20, 2026Read
Databases11 min read

Managed PostgreSQL for Developers: What the Host Actually Takes Off Your Plate

Installing Postgres takes a minute. Running it in production for three years is the real job. Here's the specific list of operational chores that move to the host when a database is "managed" — and the ones that stay yours no matter what.

Jul 17, 2026Read
Compliance10 min read

Schrems II and Data Transfers: Why an EU-Only Stack Is the Stable Answer

Schrems II struck down Privacy Shield in 2020 — the second EU-US data bridge to collapse in five years. Here's what the ruling actually said, why these frameworks keep failing, and why keeping data in the EU sidesteps the entire cycle.

Jul 15, 2026Read
Compliance10 min read

EU vs US Hosting: Latency, Law, and Cost

Choosing between EU and US hosting isn't a contest for the "better" region. It's three separate trade-offs — latency, legal exposure, and cost — and each one points at a different thing. Here's how each axis actually breaks down, and a simple way to pick.

Jul 13, 2026Read
Compliance9 min read

Where to Store EU User Data: What GDPR Actually Requires

A customer's security review asks where their data physically lives and whether it leaves the EU. GDPR has no hard rule that personal data must stay in Europe — but every transfer out needs a legal mechanism, and EU residency is the simplest way to skip that problem entirely.

Jul 10, 2026Read
Compliance10 min read

GDPR Article 28: What a Data Processing Agreement Must Contain

A deal stalls because their legal team wants your DPA before signing. Here's what GDPR Article 28 requires inside a Data Processing Agreement, which side of it your SaaS is on, and how to keep it from becoming a bottleneck in your sales cycle.

Jul 8, 2026Read
Storage8 min read

S3 Egress Fees: Why Downloading Your Own Data Costs So Much

Storage is the cheap line on an object-storage bill. Egress, the charge for data leaving the bucket, is where the money actually goes. Here's how S3 data-transfer fees work, how to calculate your real bill, and why zero-egress storage changes the math.

Jul 6, 2026Read
Compliance11 min read

EU Hosting for Developers: Data Residency, GDPR, and DPAs in Practice

A customer asks where their data lives, or a deal stalls on a DPA request, and suddenly "we host in Europe" isn't a good enough answer. Here's what EU hosting actually means for developers: data residency, GDPR roles, DPAs, and how to build a stack that keeps data on EU soil.

Jul 3, 2026Read
Databases10 min read

PostgreSQL "FATAL: sorry, too many clients already" — What It Means and How to Fix It

Your app is suddenly throwing 500s and the database logs are full of "too many clients already." Here's what the error really means, how to see what's hogging your connections, and the fix that actually holds: pooling, not a bigger number.

Jun 26, 2026Read
Databases7 min read

How to Automate PostgreSQL Backups to S3 on a Schedule

A managed database backs itself up daily — but a second, portable copy in your own S3 bucket is yours to keep. Here's how to schedule pg_dump to object storage with a cron job, and when it's worth doing.

Jun 22, 2026Read
Deployment6 min read

What Are Cold Starts — and Why Your Free-Tier App Keeps Falling Asleep

Cold starts make the first request to a sleeping app painfully slow. Here's why free hosting tiers spin down, what it costs you, and how to keep an app warm without paying for idle capacity.

Jun 22, 2026Read

Your app deserves to be online

Free to start. Deploy in under a minute. No credit card needed.