• 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.
    • ‣
    • Hosted on my VPS using coolify https://coolify.albrrak773.com/.
    • hourly backups to R2.
  • 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