A job board for developers seeking their first role in tech.
- Next.js 16 - React framework with App Router
- Convex - Backend database with real-time sync
- Clerk - Authentication (email, Google, GitHub)
- Tailwind CSS 4 - Styling
- TypeScript - Type safety
- Node.js 18+ or Bun
- Convex account
- Clerk account
# Clone and install
git clone https://github.com/yourusername/firstdevjob.git
cd firstdevjob
bun install
# Set up Convex
bunx convex dev
# In another terminal, run Next.js
bun run devCreate .env.local:
# Convex
CONVEX_DEPLOYMENT=dev:your-deployment
NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud
CLERK_JWT_ISSUER_DOMAIN=https://your-issuer.clerk.accounts.dev
# Clerk
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxx
CLERK_SECRET_KEY=sk_test_xxx
# Feedback board (optional until configured)
NEXT_PUBLIC_FEEDBACK_BOARD_URL=https://your-board.fider.iobunx convex run seed:seedTags- Job search with role level and location filtering
- Application tracking dashboard
- Job posting with admin approval
- Role-based access (user, moderator, admin)
- Added launch hardening for auth redirects and deployment workflow behavior.
- Added stricter job URL validation (
http/httpsonly) for safer outbound links. - Added a dedicated
/feedbackpage and footer link for feature requests and bug reports. - Aligned deployment documentation and environment variable requirements.
- Add anti-spam/rate limiting for public job submissions.
- Increase automated test coverage for auth, posting, and moderation flows.
├── convex/ # Backend (schema, queries, mutations)
├── src/
│ ├── app/ # Next.js pages
│ ├── components/ # React components
│ └── lib/ # Utilities
└── tests/ # Test files
bun run dev # Development server
bun run build # Production build
bun run lint # Lint code
bun run test # Run tests
bun run sync:prod-to-dev # Pull prod data into local devPushing to Master triggers the CI/CD pipeline (.github/workflows/deploy.yml):
- Pre-deployment tests — lint, typecheck, build
- Deploy Convex functions — pushes backend code to prod (
CONVEX_DEPLOY_KEYsecret required) - Deploy to Vercel — builds and deploys frontend with prod environment variables
- Dev:
bunx convex devconnects to your dev deployment..env.localhas dev URLs. - Prod: Only updated via CI/CD on push to Master. Never run
bunx convex devagainst prod. - Run
bun run sync:prod-to-devto pull fresh prod data into your local dev environment.
Full documentation is available at /docs covering:
- User Guide - Getting started, browsing jobs, posting jobs, tracking applications
- Architecture - System overview, tech stack, data flow, authentication
- Technical - Database schema, deployment, contributing guidelines
- API Reference - Jobs, bookmarks, profiles, and admin APIs
To run the docs locally, start the dev server (bun run dev) and visit http://localhost:3000/docs.
- Fork the repo
- Create a feature branch
- Make your changes
- Run
bun run lintandbun run test - Open a PR
MIT