Desktop-first web app for moderators to design user interview studies, manage participants, and run timed slide-based sessions.
Hosted app: user-interview-moderator-timer.vercel.app
- Next.js (App Router) + React + TypeScript
- Tailwind CSS + shadcn/ui
- Neon Postgres + Drizzle ORM
- Better Auth (email + password, hashed in your database)
- Open the Vercel URL
- Create an account with email and password
- Your studies stay private to that account
- Fork this repository
- Create a Neon project and copy the connection string
- Clone your fork, then:
npm install
cp .env.example .env.local- Fill in
.env.local:
DATABASE_URL=postgresql://...
BETTER_AUTH_SECRET=generate-a-long-random-string
BETTER_AUTH_URL=http://localhost:3000
Generate a secret with:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"- Apply the schema to Neon:
psql "$DATABASE_URL" -f drizzle/init.sqlnpm run devand open http://localhost:3000
- Import the forked GitHub repo in Vercel
- Set environment variables:
DATABASE_URL,BETTER_AUTH_SECRET,BETTER_AUTH_URL(your production URL, e.g.https://your-app.vercel.app) - Deploy
- Sign in / create account
- Studies — create and open studies
- Study builder — client/study name, session duration, context + warm-up guides, nested sections and questions (sections can be collapsed while editing)
- Study detail — add participants; start a session for a specific person
- Live session — overall timer + per-section timer, check off questions as you cover them
- Session summary — saved notes, responses, and coverage