# Blog — Guides on Deploying & Running Apps

> Practical, hand-crafted guides on deploying web apps, running managed databases, caching, scheduled jobs, object storage, and hosting in the EU — from the team building the Runsite platform.

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.

[Read the latest](#latest)[Explore services](/services)

Latest

[Scheduling14 min readCron Jobs on Multiple Instances: Why Your Scheduled Task Runs TwiceA scheduler inside your app is a timer in memory, and every replica has its own. What that does under autoscaling, rolling deploys and sleeping instances, and where the schedule should live instead.Sep 11, 2026Read](/blog/cron-job-multiple-instances)

[Caching16 min readRedis vs Database for Sessions: What Actually DiffersEvery result on the first page compares speed. The choice is made by four other things: who deletes expired sessions, how you log someone out everywhere, what a restart costs, and how long the copies live.Sep 9, 2026Read](/blog/redis-vs-database-for-sessions)[Deployment13 min readPaaS vs IaaS: Where the Responsibility Line Actually FallsEvery diagram draws one line between you and your provider. There are three, they fall in different places, and the one that matters legally is not on any of the diagrams.Sep 7, 2026Read](/blog/paas-vs-iaas-responsibility)[Scheduling14 min readCron Jobs, Background Workers and Queues: Choosing the Right OneThree primitives that answer three different questions. What each one does when it fails, why the syntax half of this topic is disappearing from search, and where the job actually runs.Sep 4, 2026Read](/blog/cron-jobs-workers-queues)[Caching12 min readOOM command not allowed: Redis maxmemory and Eviction PoliciesRedis is refusing writes and still serving reads. The error is not a crash, it is a policy doing exactly what you configured, and two defaults nobody chose put you there.Sep 2, 2026Read](/blog/redis-oom-command-not-allowed)[Storage12 min readMinIO Alternatives: What to Run Now That the Repository Is ArchivedThe MinIO repository is archived and read-only. Garage, SeaweedFS, RustFS and Ceph compared on what each one actually costs to operate, and the question the rest of the internet skips, which is whether you should be running object storage yourself at all.Aug 31, 2026Read](/blog/minio-alternatives)[Caching13 min read429 Too Many Requests: Rate Limiting from Both SidesYou are usually on both ends of this at once — limited by somebody's API and limiting your own. One header joins the two sides, and almost nobody sends or reads it properly.Aug 28, 2026Read](/blog/rate-limiting-429-retry-after)[Caching12 min readRedis vs Memcached: When the Simpler Cache Is Still the Right OneThe comparison everyone links to is a Stack Overflow question closed as opinion-based fourteen years ago. What has changed since then is not the feature list. It is the licence, the fork, and a demand curve falling 46% a year.Aug 27, 2026Read](/blog/redis-vs-memcached)[Caching13 min readCache-Aside, Write-Through, Write-Behind: Choosing a Caching PatternSix names for what is really two decisions. The axes people conflate, the race that makes cache-aside delete instead of update, and why every canonical write-behind implementation is deprecated.Aug 24, 2026Read](/blog/cache-aside-write-through-write-behind)[Caching12 min readWhen to Use Redis as a Cache (and When It Makes Things Worse)A cache is a second copy of your data that is allowed to be wrong. This is the decision frame: what to cache, what never to, the four failures that only appear in production, and why a cache full of sessions is a compliance object.Aug 21, 2026Read](/blog/when-to-use-redis-cache)[Deployment14 min readVPS vs PaaS Cost: What a €5 Server Actually Costs YouThe price gap between a raw VPS and a managed platform is smaller than the pricing pages suggest. This itemises both sides: the hidden line items, the jobs, and who the processor is.Aug 19, 2026Read](/blog/vps-vs-paas-cost)[Deployment11 min readBlue-Green vs Rolling Deployments: What Zero Downtime Costs YouBoth strategies promise your users never see the release. The difference that decides between them is how many versions of your code are talking to one database at the same time.Aug 17, 2026Read](/blog/blue-green-vs-rolling-deployments)[Deployment15 min read10 Vercel Alternatives in 2026 for Full-Stack Apps, Not Just the FrontendTen platforms that replace Vercel, compared on the thing that decides it: whether each one runs a long-lived process, and who operates it.Aug 14, 2026Read](/blog/vercel-alternatives)[Deployment14 min read9 Railway Alternatives in 2026 — and What You're Actually Detaching FromNine platforms that replace Railway, compared by who operates them and how they bill — plus the four things inside your project that decide how hard the move is.Aug 13, 2026Read](/blog/railway-alternatives)[Deployment12 min readRender vs Railway: Pricing, Free Tiers, and the Question Neither AnswersEvery 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](/blog/render-vs-railway)[Deployment13 min readCoolify and Self-Hosted PaaS vs Managed: What You're Taking OnWhat 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](/blog/coolify-vs-managed-paas)[Deployment12 min readGit Push to Deploy: How Modern Web App Deployment Actually WorksWhat 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](/blog/git-push-to-deploy)[Deployment15 min read8 European Heroku Alternatives in 2026 — and How to Check One Really Is EuropeanEight Heroku alternatives operated by European companies, checked on the column the lists leave out: which company you contract with, and where it is registered.Aug 7, 2026Read](/blog/european-heroku-alternative)[Storage11 min readAWS S3 Alternatives Without Egress Fees: What to Check Before You SwitchZero-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](/blog/s3-alternatives-no-egress-fees)[Storage11 min readUploading User Files to S3: Keys, Multipart, and What to RetryUploading 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](/blog/upload-files-to-s3)[Storage13 min readPresigned URLs: Share and Upload Private S3 Files Without Handing Out Your KeysA 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, what one looks like, and how to use it for both downloads and uploads.Jul 31, 2026Read](/blog/s3-presigned-urls)[Storage11 min readS3-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](/blog/s3-compatible-object-storage)[Databases11 min readSelf-Hosted vs Managed PostgreSQL: The Real Cost of OwnershipThe €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](/blog/self-hosted-vs-managed-postgresql)[Databases11 min readpgvector: Storing and Searching AI Embeddings in PostgreSQLYour 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](/blog/pgvector-embeddings-postgresql)[Databases10 min readPoint-in-Time Recovery: How WAL Archiving Saves You After a DROP TABLEYour 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](/blog/postgres-point-in-time-recovery)[Databases10 min readConnection Pooling with PgBouncer: What Ports 5432 and 6432 Really DoYou 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](/blog/pgbouncer-connection-pooling)[Databases11 min readManaged PostgreSQL for Developers: What the Host Actually Takes Off Your PlateInstalling 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](/blog/managed-postgresql-for-developers)[Compliance10 min readSchrems II and Data Transfers: Why an EU-Only Stack Is the Stable AnswerSchrems 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](/blog/schrems-ii-data-transfers)[Compliance10 min readEU vs US Hosting: Latency, Law, and CostChoosing 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](/blog/eu-vs-us-hosting)[Compliance9 min readWhere to Store EU User Data: What GDPR Actually RequiresA 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](/blog/gdpr-data-residency)[Compliance10 min readData Processing Agreement for SaaS: What Article 28 RequiresA 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](/blog/what-is-a-data-processing-agreement-dpa)[Storage8 min readS3 Egress Fees: Why Downloading Your Own Data Costs So MuchStorage 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](/blog/s3-egress-fees)[Compliance11 min readEU Hosting for Developers: Data Residency, GDPR, and DPAs in PracticeA 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](/blog/eu-hosting-for-developers)[Databases10 min readPostgreSQL "FATAL: sorry, too many clients already" — What It Means and How to Fix ItYour 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](/blog/postgres-too-many-clients-already)[Databases7 min readHow to Automate PostgreSQL Backups to S3 on a ScheduleA 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](/blog/postgresql-backup-to-s3)[Deployment7 min readWhat Are Cold Starts — and Why Your Free-Tier App Keeps Falling AsleepCold 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](/blog/cold-starts)

## Your app deserves to be online

€5 of credit on signup. Deploy in under a minute. No credit card needed.

[Start deploying](https://dashboard.runsite.app/login)[View documentation](https://docs.runsite.app)

---

Source: https://runsite.app/blog
