Communication debt ledger — Gmail + Slack + GitHub debt, in one prioritised list.
- Node 20+, pnpm 9+
- A Neon Postgres database (free tier is fine)
- A 32-byte hex key for token encryption (
openssl rand -hex 32) - Resend account
- Inngest account
cp .env.example .env.local
# fill in every value
pnpm install
pnpm db:migrate
pnpm devIn a separate terminal, for background jobs:
pnpm dlx inngest-cli@latest devpnpm test # unit (Vitest)
pnpm test:e2e # E2E (Playwright)
pnpm typecheck # tsc --noEmitpnpm db:generate # after editing src/lib/db/schema.ts
pnpm db:migrate # apply pending migrations to the DB pointed at by DATABASE_URL
pnpm db:studio # browse data- Push to GitHub.
- Import project in Vercel.
- Set every variable from
.env.examplein Vercel project settings (production + preview). - In Inngest, configure the production app URL:
https://YOUR-DOMAIN/api/inngest. - Deploy.
