- Heroku CLI installed
- Heroku account with access to
world-staffing-summitapp - Git repository initialized and connected to GitHub
Set these environment variables in Heroku:
# Supabase Configuration (REQUIRED)
heroku config:set NEXT_PUBLIC_SUPABASE_URL=your_supabase_url -a world-staffing-summit
heroku config:set NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key -a world-staffing-summit
heroku config:set SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key -a world-staffing-summit
# Optional: Storage Configuration
heroku config:set SUPABASE_STORAGE_BUCKET=wsa-media -a world-staffing-summit
# HubSpot Integration (if using)
heroku config:set HUBSPOT_PRIVATE_APP_TOKEN=your_hubspot_token -a world-staffing-summit
heroku config:set HUBSPOT_BASE_URL=https://api.hubapi.com -a world-staffing-summit
heroku config:set HUBSPOT_CONTACT_TAG_PROP=wsa_role -a world-staffing-summit
heroku config:set HUBSPOT_CONTACT_TAG_VOTER="Voters 2026" -a world-staffing-summit
heroku config:set HUBSPOT_CONTACT_TAG_NOMINEE="Nominees 2026" -a world-staffing-summit
# Loops Integration (if using)
heroku config:set NEXT_PUBLIC_LOOPS_ENABLED=true -a world-staffing-summit
heroku config:set LOOPS_API_KEY=your_loops_api_key -a world-staffing-summit
# Node.js Configuration
heroku config:set NODE_ENV=production -a world-staffing-summitheroku loginheroku git:remote -a world-staffing-summitgit remote -vYou should see:
heroku https://git.heroku.com/world-staffing-summit.git (fetch)
heroku https://git.heroku.com/world-staffing-summit.git (push)
# Commit any pending changes
git add .
git commit -m "Prepare for Heroku deployment"
# Push to Heroku
git push heroku mainIf your branch is not main, use:
git push heroku your-branch-name:mainheroku open -a world-staffing-summitheroku logs --tail -a world-staffing-summitThe app uses the following build configuration:
- Build Command:
npm run build(automatically detected) - Start Command:
npm run start(defined in Procfile) - Node Version: Will use the version specified in package.json engines field or latest LTS
If the build fails, check:
- All environment variables are set correctly
- Dependencies are properly listed in package.json
- Check build logs:
heroku logs --tail -a world-staffing-summit
- Check application logs:
heroku logs --tail -a world-staffing-summit - Verify environment variables:
heroku config -a world-staffing-summit - Restart the app:
heroku restart -a world-staffing-summit
Ensure Supabase environment variables are correctly set and the Supabase project is accessible from Heroku's servers.
To scale your app:
# Scale to 1 web dyno (default)
heroku ps:scale web=1 -a world-staffing-summit
# Scale to multiple dynos (requires paid plan)
heroku ps:scale web=2 -a world-staffing-summitTo add a custom domain:
heroku domains:add www.yourdomain.com -a world-staffing-summitThen configure your DNS provider to point to the Heroku DNS target shown.