Setup

  • Use fnm to manage node versions
  • Install pnpm as package manager
  • Run fnm use && pnpm install to get setup
  • Generate prisma client: pnx run web:prisma-generate
  • Then run one of:
    • pnpm exec nx run web:dev
    • pnpm exec nx run desktop:dev

Stack

Inspiration from: create-t3-app

  • Vite
  • vite-plugin-ssr (next.js features) https://vite-plugin-ssr.com/
  • Tailwindcss (with tailwind-ui)
  • TRPC (a bit like graphql-like)
    • Superjson to serialize things
  • Prisma, typescript bindings to talk to postgres
  • Database - Supabase (or any postgres db)
  • Clerk.dev for auth (sign up and sign in)
  • Posthog / Mixpanel analytics (routed via a backend proxy)
  • Posthog screen recording user tracking

Notes:

  • Production server side code run by ts-node, this is apparently ok in production
  • To test Clerk webhooks: brew install svix && svix listen http://localhost:3000/api/clerk-webhook
  • To test Stripe webhooks: brew install stripe-cli && stripe listen --forward-to localhost:3000/api/stripe-webhook