Web frontend and API server for Strmr. This project serves both the browser-based web app and the API consumed by the mobile app strmr-mb.
- Framework: Next.js 16
- Language: TypeScript
- Styling: Tailwind CSS v4
- Database: PostgreSQL + Drizzle ORM
- Auth: Better Auth (email/password + OAuth)
- State: Zustand
- UI: shadcn/ui,
- Media Playback: Vidstack
- Email: Resend + React Email
- File storage: AWS S3 (presigned URLs)
This project is the backend and API server for strmr-mb (the React Native mobile app). Both projects are in this monorepo.
| What | How |
|---|---|
| API | All /api/* routes are consumed by the mobile app |
| Auth | Both apps use Better Auth against the same database; sessions are shared via cookies |
| Database | Single PostgreSQL database shared by both apps |
| File uploads | Mobile app uploads via presigned S3 URLs (API provides the presigned URL) |
The mobile app depends on this server running:
pnpm dev # must be running before starting strmr-mbpnpm install
cp .env.template .env # fill in your env vars
pnpm db:push # push schema to database
pnpm dev # start dev server at http://localhost:3000| Command | Description |
|---|---|
pnpm dev |
Start Next.js dev server |
pnpm build |
Production build |
pnpm start |
Start production server |
pnpm db:push |
Push Drizzle schema to DB |
pnpm db:generate |
Generate Drizzle migrations |
pnpm db:migrate |
Run migrations |
pnpm db:studio |
Open Drizzle Studio |
pnpm lint |
Biome check |
pnpm format |
Biome format |
See .env.template for all required variables.