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