Prerequisites
- A Vercel account
- Your Convex backend already deployed (see Deploy to Convex)
- Vercel CLI or the Vercel GitHub integration
Deploy
Connect your GitHub repository to Vercel
In the Vercel dashboard, click Add New Project and import your Pindeck GitHub repository. Vercel will detect the
vercel.json configuration automatically.Configure the build settings
The
vercel.json in the repository already sets the correct values. Verify these match in the Vercel project settings:| Setting | Value |
|---|---|
| Build command | bun run build |
| Output directory | dist |
| Install command | bun install |
| Framework | Vite |
Add the VITE_CONVEX_URL environment variable
In your Vercel project, go to Settings → Environment Variables and add:
| Variable | Value |
|---|---|
VITE_CONVEX_URL | https://<your-deployment>.convex.cloud |
SPA routing
Thevercel.json includes a catch-all rewrite that serves index.html for all routes, which is required for client-side routing in a Vite SPA:
Static asset caching
vercel.json also sets long-lived cache headers on hashed asset files under /assets/:
Production builds
Every Vercel build callsbun run build, which in turn runs bun run check:prod-target as its first step. If VITE_CONVEX_URL is not set to the production Convex URL, the build exits immediately with an error. This prevents accidentally deploying a frontend pointed at a wrong or missing backend.
Vercel only hosts the frontend SPA. The Discord bot is an always-on Node.js worker that must run separately on your own server or on a host like Hostinger. It is not deployed through Vercel and is not part of this repository’s deployment pipeline. See the Discord bot’s own repository for setup instructions.