Migration Guides
Guide

Migrating from Render

Move your Render services to Grid. No sleeping dynos, predictable pricing, and faster builds.

Before you start: Ensure Grid is installed and running. See the Installation Guide if you haven't set it up yet.

Key Differences

CapabilityRenderGrid
Sleep on Free TierYes (spins down after inactivity)No sleeping (always-on)
Build SpeedSlow (shared build infrastructure)Fast (your own server builds locally)
Postgres HANone (single instance unless paid)Patroni HA with automatic failover
Docker EmphasisSupported but not primaryNative (Dockerfile or Nixpacks)
Bandwidth100GB/mo (Starter), then $0.10/GBProvider cost (often free up to 20TB)

Migration Steps

1. Export your Render data

  • Export Render Postgres via pg_dump
  • Download any persistent disk data
  • Copy environment variables from the Render dashboard
  • Note your custom domain configuration

2. Prepare your project

Render supports Dockerfiles, and so does Grid. Your existing Dockerfile should work without changes. If you're using Render's native build system (no Dockerfile), create one or let Nixpacks auto-detect your framework.

# Example: Node.js
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE $PORT
CMD ["npm", "start"]

3. Deploy to Grid

  1. Push your repo to GitHub
  2. Connect GitHub to Grid
  3. Create a new service and select your repo
  4. Add your environment variables
  5. Deploy — builds run on your own server (faster)

4. Migrate your database

# Export from Render
PGPASSWORD=... pg_dump \
  -h your-render-db.internal \
  -U render_user \
  -d render_db > render_backup.sql

# Import to Grid's managed Postgres
psql postgresql://grid_user:...@grid-db:5432/grid_db < render_backup.sql

5. Configure your domain

  • Update your DNS A record to point to your Grid server IP
  • Caddy will automatically provision Let's Encrypt SSL certificates
  • Remove Render's DNS configuration

Render service equivalents on Grid

Render ServiceGrid Equivalent
Web ServiceService (long-running container)
Cron JobCelery Beat scheduled tasks
Background WorkerCelery worker containers
Render PostgresManaged Postgres (Patroni HA)
Render RedisManaged Redis
Static SiteService + static file serving via Caddy
Preview EnvironmentsPR Previews (full-stack with DB)

What you gain

  • No sleeping services — always-on, even on the free tier
  • Faster builds — your own server's CPU, not shared build infrastructure
  • Predictable pricing — no per-GB bandwidth fees, no per-service tiers
  • Database HA — Patroni replication instead of a single Postgres instance
  • No bandwidth overage — most VPS providers include 10-20TB free