AI-powered interview prep tracker with spaced repetition, coaching, and push notifications.
The name is a double meaning: "getting your reps in" (training) and the repetitions field in the SM-2 spaced repetition algorithm the app is built on.
- Spaced repetition — SM-2 algorithm schedules reviews at optimal intervals
- AI coaching — Daily briefings and weekly insights powered by Claude
- Mock interviews — AI-generated questions with structured evaluation
- Board view — Kanban-style drag-and-drop with custom statuses per collection
- Collections & tags — Organize tasks into collections with custom workflows
- Push notifications — Pushover integration for iOS/Android reminders
- Email digests — Daily summary of due reviews via Resend
- CLI — Full-featured terminal interface for quick task management
| Layer | Technology |
|---|---|
| API | Hono + Node.js |
| DB | PostgreSQL + postgres.js |
| Frontend | React + Vite + Tailwind CSS |
| AI | Anthropic SDK (Claude) |
| Notifications | Pushover (push) + Resend (email) |
git clone https://github.com/crgeee/reps.git
cd reps
npm install && cd web && npm install && cd ..
cp .env.example .env
# Edit .env with your PostgreSQL credentials
npm run migrate
npm run dev:server # Terminal 1
npm run dev:web # Terminal 2See CONTRIBUTING.md for full setup instructions.
All configuration is via environment variables. Copy .env.example to .env and fill in your values:
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL connection string |
APP_URL |
Yes | Public URL (CORS, auth redirects, emails) |
ANTHROPIC_API_KEY |
For AI | Enables coaching, mock interviews, evaluation |
RESEND_API_KEY |
For email | Daily digest emails |
RESEND_FROM |
For email | Sender address |
PUSHOVER_USER_KEY |
For push | Pushover notifications |
PUSHOVER_API_TOKEN |
For push | Pushover notifications |
PORT |
No | Server port (default: 3000) |
npx reps # Dashboard
npx reps add # Add a task
npx reps list # List all tasks
npx reps review # Start a review session
npx reps done <id> # Mark task complete
npx reps note <id> # Add a note
npx reps status # Show prep statusThe app runs on a single VPS with pm2 and nginx:
npm run build # Build server + web
npm run migrate # Run DB migrations
pm2 start deploy/ecosystem.config.cjsSee deploy/ for nginx config and deploy script.
Contributions welcome! See CONTRIBUTING.md for guidelines.
If you find this useful, consider buying me a coffee.