- Framework: Next.js v16 with full prerendering using the new Cache Components where needed. only stuff like vote count and admin pages need to be dynamic, in which case we use
Suspense tags or make them client-side.
- DB: Postgres with drizzle as an ORM and migration tool.
- Authentication: Clerk with passwordless login (magic link)
- Object Storage: Cloudflare’s R2 for project images and DB backups
- Notification: Next.js PWA
or this guide
or OneSignal
👆️ all of these I found fucking annoying to work with, so I just made my own
- API: TBD (most likely none; we might just use server actions and Next.js api routes)
- Secret Management: Infisical