Deploying Deployaar to production requires configuring two hosting providers — Render for the Express API and Vercel for the Next.js web app — along with several external services: Neon Postgres, Inngest, E2B, a GitHub App, an AI provider, and Razorpay. The two services must be deployed in order: the API first, so you have its public URL before configuring the web app’s environment variables.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/paramveer-cyber/Deployaar/llms.txt
Use this file to discover all available pages before exploring further.
Deploy the API to Render
Create a new Web Service on Render
From the Render dashboard, click New → Web Service.
Connect your GitHub repository
Authorise Render to access your fork or clone of the Deployaar repository and select it. Choose the
main (or master) branch to track.Set the Build Command
turbo build (via the root build script), which builds all packages in dependency order — including apps/api via tsup.Set the Start Command
tsup emits the bundled API entrypoint to apps/api/dist/index.js. The noExternal: [/^@repo\//] option in tsup.config.ts means all internal workspace packages are already inlined — no node_modules resolution is needed at runtime beyond the external npm dependencies.Set the PORT environment variable
Render automatically injects a
PORT environment variable into every web service. The API reads it via apps/api/src/env.ts (PORT: z.string().optional()) and defaults to 8000 if absent. No manual configuration is required for this variable.Add all API environment variables
In the Render Environment tab, add every variable your deployment requires. See the Environment Variables reference for the complete list. At minimum you need:
Deploy and note the service URL
Click Deploy. Once the build and startup succeed, Render assigns a public URL such as
https://deployaar.onrender.com. Copy this URL — you will need it for the next two steps.Deploy the Web App to Vercel
Import the repository in Vercel
From the Vercel dashboard, click Add New → Project and import your Deployaar repository from GitHub.
Set Root Directory
Leave Root Directory blank or set it to
. (the repository root). Vercel must run commands from the repo root so Turborepo can resolve all workspace packages.Set Build Command
In Build & Development Settings, set the Build Command to:This tells Turborepo to build only the
apps/web package and its workspace dependencies, skipping apps/api.Set Output Directory
Set the Output Directory to:Vercel needs the explicit path because the Next.js app is not at the repo root.
Set Install Command
Set the Install Command to:Vercel auto-detects pnpm from
packageManager: "pnpm@9.0.0" in package.json, but specifying it explicitly prevents fallback to npm.Add environment variables
In the Environment Variables section, add all
NEXT_PUBLIC_* variables and the shared auth secrets. At minimum:Set NEXT_PUBLIC_API_URL
Ensure This value is baked into the Next.js client bundle at build time. If it is wrong, every tRPC call from the browser will fail.
NEXT_PUBLIC_API_URL points to the Render API’s tRPC endpoint:Configure GitHub App Webhooks
After both services are live, update your GitHub App’s webhook URL so push and pull-request events reach the API:- Open your GitHub App settings at
https://github.com/settings/apps/{your-app-name} - Under Webhook URL, set:
- Confirm the Webhook Secret matches
GITHUB_WEBHOOK_SECRETin your Render environment - Save changes — GitHub will immediately start delivering events to the new URL
Run Database Migrations
Migrations must be applied to the production Neon database before the API first starts. The API will fail to authenticate users if theverification table (created by migration 0001_icy_lyja.sql) is absent.
Set your production DATABASE_URL locally or in a CI environment and run:
packages/database/drizzle/ in order. After the initial deploy, run pnpm db:migrate whenever you pull changes that include new migration files — migrations are additive and safe to apply without downtime.
Verify Deployment
Once both services are live and the database is migrated, verify the deployment with the following checks:- API health endpoint —
GET https://{api-url}/healthshould return: - Scalar API docs —
https://{api-url}/docsshould load the interactive Scalar API reference - OAuth sign-in — navigate to
https://{web-url}/sign-inand complete a Google or GitHub OAuth login end-to-end; a successful redirect to/dashboardconfirms thatBETTER_AUTH_URL,NEXT_PUBLIC_WEB_URL, and the OAuth app callbacks are all aligned
For the full list of every environment variable — including optional AI provider keys, logging levels, and Razorpay webhook configuration — see the Environment Variables reference.