Convex Static Hosting Deploy
Use this skill for this repo's @convex-dev/static-hosting deploys.
Source of truth:
- Component repo:
https://github.com/get-convex/static-hosting - Component docs:
https://www.convex.dev/components/static-hosting - Custom domains:
https://docs.convex.dev/production/custom-domains
Deployment Targets
| Intent | Public URL | Convex cloud URL | Command |
|---|---|---|---|
/deploydev |
https://fearless-dolphin-422.convex.site/ |
https://fearless-dolphin-422.convex.cloud |
npm run deploy:static:dev |
/deployprod |
https://befitting-dodo-95.convex.site/ |
https://befitting-dodo-95.convex.cloud |
npm run deploy |
| Static-only prod | https://befitting-dodo-95.convex.site/ |
https://befitting-dodo-95.convex.cloud |
npm run deploy:static:prod |
Keep the dev URL private. Do not publish or put it in SEO, Open Graph, Twitter card, sitemap, robots, or public README copy except where explicitly documenting dev/prod behavior.
Required Rules
- For production, prefer
npm run deploy. - Use
npm run deploy:static:prodonly when backend functions, schema, auth routes, and Convex components are already deployed. - Use
npm run deploy:static:devonly when the user explicitly asks for dev. - Do not run
npm run buildseparately before static upload. Static-hosting's--buildflag injects the correctVITE_CONVEX_URL. - If production static upload fails with
Could not find function for 'staticHosting:generateUploadUrls', runnpx convex deploy --yes, then rerunnpm run deploy:static:prod. - If changing custom domain settings for
promptdeck.app, keep production as the canonical target and update GitHub Auth callback URLs andSITE_URL/CONVEX_SITE_URLin Convex production env vars.
/deployprod Workflow
Run quick checks unless the user explicitly says to skip them:
npm run typecheck npm run lintDeploy backend plus production static hosting:
npm run deployConfirm deploy output includes:
VITE_CONVEX_URL=https://befitting-dodo-95.convex.cloud Deploying to production environment Your app is now available at: https://befitting-dodo-95.convex.siteSmoke check production:
curl -L -s https://befitting-dodo-95.convex.site/ | rg 'fearless-dolphin-422|befitting-dodo-95|/assets/index-'The page should show
befitting-dodo-95and no publicfearless-dolphin-422metadata.
/deploydev Workflow
Confirm the user asked for dev.
Run:
npm run deploy:static:devConfirm deploy output includes:
VITE_CONVEX_URL=https://fearless-dolphin-422.convex.cloud Deploying to development environment Your app is now available at: https://fearless-dolphin-422.convex.siteDo not update public metadata to the dev URL.
When To Update Project Docs
After changing deploy behavior, update:
README.mdchangelog.mdtask.mdfiles.md
If a deploy behavior change is non-trivial, create a PRD in prds/.