Bloom is a Next.js 16 screen-recording app with:
- Auth.js OAuth sign-in with Google
- Neon + Drizzle persistence for users, sessions, and recordings
- Mux uploads for authenticated recordings only
- Per-user dashboards and protected recording detail pages
- Copy
.env.exampleto.env. - Fill in your Auth.js OAuth credentials, Neon
DATABASE_URL, and Mux tokens. - Push the database schema:
bun run db:push- Start the app:
bun devOpen http://localhost:3000.
bun devbun run lintbun run buildbun run db:generatebun run db:push
- Legacy
data/recordings.jsonis no longer the source of truth. - Recording ownership is enforced through the app database via
recordings.userId. - Recording detail pages live at
/recordings/[recordingId]. The old/video/[playbackId]route redirects owners to the new route.