- Design system: CSS custom properties (surface levels, accent, status colors, scrollbar, focus-visible)
- Landing: hero with gradient title, feature cards with SVG icons
- Auth pages: consistent card layout with design tokens
- Dashboard: sticky top bar, room grid with status dots, empty state
- Create room: toggle switches, form validation with spinners
- Join flow: room info card with status badge, monospace code input
- Room page: top bar with sidebar toggles (chat/lobby/moderation)
- Chat: bubble messages with optimistic UI, empty state
- Moderation: participant list with avatar initials, kick/ban
- Lobby: waiting animation with pulsing rings, approve/reject
- HTTPS: dev:https script, setup.sh auto-configures BETTER_AUTH_URL
- Auth: trustedOrigins now includes both http:// and https://
- Use @prisma/adapter-pg for PrismaClient (Prisma 7 removed datasourceUrl/datasources)
- prisma.config.ts: migrate.url for CLI commands
- schema.prisma: no url in datasource (Prisma 7 requirement)
- Remove "type": "commonjs" from package.json — fixes Turbopack
ESM/CommonJS conflict causing white screen in dev mode
- setup.sh: auto-generate passwords (PostgreSQL, MinIO, auth secret)
- setup.sh: auto-install Docker/Node.js if missing (apt/nvm/brew)
- setup.sh: backup existing .env before overwrite
- setup.sh: create MinIO bucket via curl if mc not installed
- setup.sh: add timeout errors for service readiness checks
- setup.sh: include pgbouncer in local dev docker compose up
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>