Skip to main content

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.

Deployaar is deployed as two independently hosted services that work in concert: the Next.js 16 web application runs on Vercel at deployaar.paramveer.xyz, and the Express 5 API runs on Render at deployaar.onrender.com. Both services share a single Neon serverless Postgres database and communicate via tRPC over HTTPS. Background AI workflows — the coding agent, PRD generation, and PR review — are orchestrated by Inngest and execute inside E2B sandboxes provisioned on demand.

Services

Web (Vercel)

Package: apps/webNext.js 16 App Router frontend hosted at deployaar.paramveer.xyz. Serves the dashboard, authentication UI, feature-request submission, PRD viewer, task tracker, and PR review interface. Communicates with the API exclusively via tRPC.

API (Render)

Package: apps/apiExpress 5 HTTP server hosted at deployaar.onrender.com. Mounts better-auth, tRPC, REST/OpenAPI, Inngest workflows, and GitHub/Razorpay webhooks. Built with tsup into dist/index.js and started with node dist/index.js.

Database (Neon)

Provider: Neon Postgres (serverless)A single shared PostgreSQL database with connection pooling. Accessed via Drizzle ORM from packages/database. Supports all application tables including better-auth’s verification table required for OAuth state.

Workflows (Inngest)

Endpoint: /api/inngestStep-checkpointed background functions that orchestrate the full delivery pipeline: duplicate detection, PRD generation, task breakdown, the E2B coding agent, GitHub PR creation, and AI code review. Every tool handler is wrapped in step?.run() so work survives mid-task restarts.

Deployment Topology Diagram

VERCEL (apps/web)                     RENDER (apps/api)
Next.js 16 App Router   ──────────▶  Express 5
deploy: turbo run build               build: tsup → dist/index.js
        --filter=web                  start: node dist/index.js
        │                                    │
        └────────────────────────────────────┘
                   env-var driven
       NEXT_PUBLIC_API_URL  ↔  BETTER_AUTH_URL

               Neon Postgres
               (serverless, pooled)

Side integrations reachable from packages/services:

┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│  GitHub App   │  │  E2B Sandbox  │  │   Inngest     │  │  Razorpay    │
│  (Octokit)   │  │ (agent exec)  │  │ (workflows)   │  │  (billing)   │
└──────────────┘  └──────────────┘  └──────────────┘  └──────────────┘

┌──────────────────────────────────────────────────────────────────────┐
│  AI Providers (via Vercel AI SDK, packages/services/ai)              │
│  Anthropic · OpenAI · Google Generative AI · DeepSeek               │
└──────────────────────────────────────────────────────────────────────┘

Environment Variable Alignment

NEXT_PUBLIC_API_URL in the web app must point to the API’s public Render URL (e.g., https://deployaar.onrender.com/trpc). BETTER_AUTH_URL in the API must equal the API’s own public URL exactly (e.g., https://deployaar.onrender.com). NEXT_PUBLIC_WEB_URL must be present in better-auth’s trustedOrigins so the web app can make credentialed requests to the auth endpoints. Any mismatch between these three values will break OAuth callbacks (causing state_security_mismatch), tRPC requests, and session cookie validation.

Build Commands

ServiceConfigurationValue
WebRoot directoryRepository root (leave blank or set to .)
WebBuild commandturbo run build --filter=web
WebInstall commandpnpm install
WebOutput directoryapps/web/.next
APIBuild commandtsup (reads apps/api/tsup.config.ts)
APIStart commandnode dist/index.js (or node apps/api/dist/index.js from repo root)
APIPortprocess.env.PORT (Render sets this automatically)
The tsup configuration bundles src/index.ts into dist/index.js, inlining all internal @repo/* workspace packages (noExternal: [/^@repo\//]), minifying the output, and copying .json files verbatim.

External Dependencies

Every Deployaar deployment requires the following external services to be provisioned and their credentials added as environment variables before the application will start correctly:
  • Neon Postgres (DATABASE_URL) — serverless PostgreSQL with connection pooling; all Drizzle migrations must be run against it before the first deploy
  • Inngest (/api/inngest serve endpoint) — registers and executes all background workflow functions; the endpoint must be publicly reachable for Inngest’s cloud to call it
  • E2B (E2B_API_KEY, E2B_TEMPLATE_ID) — provisions the sandboxed execution environment used by the coding agent
  • GitHub App (GITHUB_APP_ID, GITHUB_APP_PRIVATE_KEY, GITHUB_WEBHOOK_SECRET) — authenticates repo access via Octokit and receives push/PR webhook events
  • AI Provider API keys (ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY, DEEPSEEK_API_KEY) — at least one must be set; DEFAULT_AI_PROVIDER and DEFAULT_AI_MODEL select which provider is active
  • Razorpay (RAZORPAY_KEY_ID, RAZORPAY_KEY_SECRET, RAZORPAY_WEBHOOK_SECRET) — handles subscription billing and plan enforcement

Build docs developers (and LLMs) love