A modern bounty platform for developers and creators.
bounty.new connects talented developers with rewarding opportunities through structured bounties. Post tasks, complete challenges, earn rewards.
For Contributors
- Browse available bounties
- Submit quality work
- Get paid for your skills
- Build your reputation
For Project Owners
- Post bounty tasks
- Access skilled developers
- Get quality work done
- Pay only for results
Frontend
- Next.js 14 with App Router
- React with TypeScript
- TailwindCSS
- shadcn/ui components
Backend
- Next.js API routes
- tRPC for type-safe APIs
- PostgreSQL with Drizzle ORM
- Better Auth with GitHub OAuth
Development
- Bun runtime
- Turborepo monorepo
- TypeScript throughout
Frontend
Prerequisites
- Bun v1.0+
- PostgreSQL v14+
- Node.js v18+
Setup
# Clone and install
git clone https://github.com/ripgrim/bounty.new.git
cd bounty.new
bun install
# Setup database
createdb bounty_new
cp apps/server/.env.example apps/server/.env
cp apps/web/.env.example apps/web/.env
# Configure environment (edit apps/server/.env)
DATABASE_URL="postgresql://username:password@localhost:5432/bounty_new"
BETTER_AUTH_SECRET="your-secret-key"
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
NEXT_PUBLIC_MARBLE_API_URL="https://api.marblecms.com"
MARBLE_WORKSPACE_KEY="your-workspace-key"
# Initialize database and start
bun db:push
bun devAccess
- Web: http://localhost:3001
- API: http://localhost:3000
bounty.new/
├── apps/
│ ├── web/ # Frontend application
│ │ ├── src/
│ │ │ ├── app/ # App router pages
│ │ │ ├── components/ # UI components
│ │ │ └── lib/ # Utilities and hooks
│ │ └── ...
│ └── server/ # Backend API
│ ├── src/
│ │ ├── app/ # API routes
│ │ ├── db/ # Database schema
│ │ ├── lib/ # Server utilities
│ │ └── routers/ # tRPC routers
│ └── ...
├── packages/ # Shared packages
└── docs/ # Documentation
Development
bun dev # Start all apps
bun dev:web # Frontend only
bun dev:server # Backend only
bun build # Build for productionDatabase
bun db:push # Apply schema changes
bun db:studio # Open database UI
bun db:generate # Generate migrationsQuality
bun check-types # Type checking
bun lint # Code linting
bun test # Run testsServer (.env)
DATABASE_URL="postgresql://username:password@localhost:5432/bounty_new"
BETTER_AUTH_SECRET="your-secret-key"
BETTER_AUTH_URL="http://localhost:3000"
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"Web (.env)
NEXT_PUBLIC_API_URL="http://localhost:3000"
NEXT_PUBLIC_APP_URL="http://localhost:3001"- Go to GitHub Developer Settings
- Create new OAuth App
- Set callback URL:
http://localhost:3000/api/auth/callback/github - Copy Client ID and Secret to your
.envfile
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
bun test - Submit a pull request
Guidelines
- Follow TypeScript best practices
- Write tests for new features
- Keep components focused
- Use semantic commits
Vercel
- Connect GitHub repository
- Configure environment variables
- Deploy on push to main
Self-hosting
- Build:
bun build - Setup PostgreSQL
- Configure environment
- Start:
bun start
Ready to earn? Start contributing to bounty.new.