Updates the owen branch with the latest changes from main to keep it in sync and resolve any differences before continuing development.
Habit Pet
Bootstrap repo for the Calgary hackathon Habit Pet project.
Stack
- Next.js
- Supabase
- Vercel
- GitHub
Scope of this bootstrap
This repo currently stops at:
- Next.js app scaffold
- Supabase auth wiring from the starter
- environment variable template
- deployment-ready project structure
This repo does not yet include MVP feature pages, avatar logic, habits, streaks, or shop logic.
Local setup
-
Install dependencies:
npm install -
Create local environment file:
cp .env.example .env.local -
Add Supabase values to
.env.local:NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= -
Start the app:
npm run dev -
Create a production build when needed:
npm run build
Supabase
Create a Supabase project, then copy the project URL and anon key from Project Settings > API into .env.local and Vercel project environment variables.
The starter also supports Supabase's publishable key name, but this repo documents the anon key convention from the project plan.
Database workflow
- Schema migrations live under
supabase/migrations/. - Baseline catalog data lives in
supabase/seed.sqland is safe to rerun during deploys because it uses idempotent upserts. - Local CLI config lives in
supabase/config.tomlforsupabase start,supabase db reset, and related commands. - Production database sync runs from GitHub Actions on
mainusingsupabase db push --linked --include-seedbefore the app deploy relies on those changes.
Deploy
This repo includes .github/workflows/deploy.yml, which runs on pushes to main.
The workflow:
- checks out the repo
- runs
npm ci,npm run lint, andnpm run build - links the Supabase CLI to the production project
- applies pending database migrations and reruns
supabase/seed.sqlviasupabase db push --linked --include-seed - deploys the app to Vercel production only after the database sync succeeds
Required GitHub secrets
SUPABASE_ACCESS_TOKENSUPABASE_PROJECT_REFSUPABASE_DB_PASSWORDVERCEL_TOKENVERCEL_ORG_IDVERCEL_PROJECT_ID
Required Vercel environment variables
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
Frontend and backend are both served from this Next.js app. Supabase provides auth and database services.