Skip to content
Back to Deployment

Deploying RedwoodJS Apps

Full-stack React+Prisma+GraphQL framework, deploy to Vercel, Netlify, or baremetal with serverless functions.

PlatformsAdvanced

Why

RedwoodJS integrates React frontend, Prisma ORM, and GraphQL API in one CLI-driven framework with convention over configuration. Its serverless functions deploy to Vercel/Netlify with zero config.

Platform-as-a-Service adoption grew 24% in 2024 as teams shift from VM management to git-push deploys. the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research), and PaaS layers capture the majority of new workloads.

When

Use Redwood for full-stack TypeScript apps with Prisma and GraphQL. Avoid for non-Prisma projects or when you need a different API style.

How

1. Build — rwj build, compiles web + api 2. Vercel — rwj deploy vercel, auto-configures 3. Netlify — rwj deploy netlify 4. Baremetal — rwj deploy baremetal, needs PM2 + Nginx 5. DB — rwj prisma migrate deploy on release 6. Functions — api/src/functions become serverless endpoints

Example

// Deploy to Vercel npx rwj deploy vercel // api/src/functions/users.ts — GraphQL function import { db } from "src/lib/db"; export const users = () => db.user.findMany(); // redwood.toml — deploy config [web] port = 8910 [api] port = 8911

Common Problems

  • ⚠Prisma migrate fails on deploy — DB not accessible or schema drift
  • ⚠GraphQL playground exposed in prod — set GRAPHQL_ENDPOINT_GRAPHIQL=false
  • ⚠Configuration drift between environments — use infrastructure-as-code (Terraform/Pulumi) to keep dev/staging/prod identical

Best Practices

  • ✓Run prisma migrate deploy as a release command — not at runtime
  • ✓Use Redwood's generator (rwj g) for consistent scaffolding across services
  • ✓Set up health checks and graceful shutdown — handle SIGTERM to drain in-flight requests before exit

FAQ