Deploying
Vercel, Supabase, DNS, cron jobs and the one-time dashboard steps.
For: Developers and operators
Where things run
| Part | Service | Region |
|---|---|---|
| App | Vercel (project ariya, live at https://ariya-two.vercel.app) | London lhr1 |
| Database, auth, storage | Supabase | London (eu-west-2) |
Resend (sender domain ariyaday.com) | ||
| Payments | Paystack |
Matching regions keeps database, sign-in and webhook round trips short.
Release flow
- Work on a short-lived branch, open a pull request.
- CI must pass (see Quality and testing) and the owner approves.
- Merging to
maindeploys production on Vercel. - Database migrations are applied to the hosted project deliberately (never edit one that has shipped).
Scheduled jobs
| Job | Where | When |
|---|---|---|
/api/cron/reminders | Vercel Cron (vercel.json) | Daily at 09:00 |
/api/cron/digest | GitHub Actions (cron-digest.yml) | Weekly |
Both authenticate with Authorization: Bearer $CRON_SECRET. Set CRON_SECRET in Vercel and as a GitHub repository secret.
One-time dashboard steps
- Supabase Auth: Site URL and redirect URLs for your domain; Google provider with client ID and secret; the OAuth Server settings in AI connections.
- Google Cloud: OAuth client with the Supabase callback URL; consent screen with
https://ariyaday.com/privacyand/terms; publish the app so any user can sign in. - Vercel: all variables in Environment variables, including
NEXT_PUBLIC_GOOGLE_SIGN_IN=trueonce Google is enabled. - Resend: verify the domain and add the API key.
- Paystack: webhook URL
https://<your-domain>/api/webhooks/paystack, eventcharge.success. - Mailbox: create
help@ariyaday.com, the contact on the legal pages.