This repo is configured for push-to-deploy CI/CD on Vercel's Hobby (free) plan, with guardrails that keep it inside the free limits.
Vercel deploys from GitHub via the Vercel GitHub App — connecting the repo is a
browser step (it grants Vercel access to the repo). After that, every push to main
auto-builds and deploys.
- Go to https://vercel.com/new → Import Git Repository → pick
yishaik/free-stack-starter. (First time only, it installs the Vercel GitHub App.) - Framework is auto-detected as Next.js (also pinned in
vercel.json). - Add Environment Variables (from
.env.example) under the project's Settings → Environment Variables — for Production (and Preview if you use it):NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_ANON_KEY,SUPABASE_SERVICE_ROLE_KEY,RESEND_API_KEY,EMAIL_FROM,NEXT_PUBLIC_SENTRY_DSN,R2_*,NEXT_PUBLIC_SITE_URL. (The app builds and the landing page renders even with none set.) - Deploy. From now on,
git push→ automatic production deployment.
CLI alternative:
npm i -g vercel→vercel login→vercel link→vercel git connect→vercel --prod. (Still needs a one-timevercel loginin the browser.)
| Guardrail | Where | Effect |
|---|---|---|
| Skip doc-only builds | vercel.json → ignoreCommand → scripts/vercel-ignore.sh |
A README/docs edit does not trigger a full Next.js build + deploy — saves build minutes. |
Deploy only main |
vercel.json → git.deploymentEnabled: { main: true } |
Production builds fire only for the main branch. |
| Lean upload | .vercelignore |
Docs/guide/schema excluded from the deploy bundle. |
| Framework pinned | vercel.json → framework: nextjs |
No detection overhead. |
- Settings → Git → "Ignored Build Step" — confirm it's set to "Run my ignore command" (Vercel reads
vercel.json'signoreCommandautomatically; nothing to change). - Settings → Git — turn OFF "Automatically deploy all branches" if you create feature branches, so only
main(production) and PRs you choose build. Preview deployments each consume build time. - Settings → Deployment Protection — leave Vercel Authentication ON for Preview so random previews aren't publicly hit.
- Settings → Functions — the default 10s function timeout and small memory are free-tier friendly; don't raise them unless needed.
- Spend caps: Hobby has hard free limits (no overage billing on Hobby — it pauses instead), so you can't be surprised-charged. If you upgrade to Pro later, set a Spend Management limit.
- ~6,000 build-execution minutes / month (the doc-skip step protects these).
- 100 GB bandwidth / month (served from CDN; heavy assets live in R2, not Vercel).
- Serverless/Edge function invocations within the generous Hobby allowance.
If you approach a limit, Vercel notifies you and pauses new builds on Hobby rather than charging — no bill shock.