Thanks for your interest in contributing to punt.sh!
# Clone the repo
git clone https://github.com/lance0/punt.git
cd punt
# Install dependencies
bun install
# Set up environment variables
cp .env.example .env
# Edit .env with your Turso credentials
# Initialize the database
bun run db:setup
# Start the dev server with hot reload
bun run devThe server runs at http://localhost:3000 by default.
| Variable | Description |
|---|---|
TURSO_DATABASE_URL |
Turso database URL |
TURSO_AUTH_TOKEN |
Turso auth token |
BASE_URL |
Public URL (default: https://punt.sh) |
GITHUB_CLIENT_ID |
GitHub OAuth app client ID |
GITHUB_CLIENT_SECRET |
GitHub OAuth app secret |
BETTER_AUTH_SECRET |
Secret for session signing |
- TypeScript for all source files
- Use Bun APIs where available (
Bun.file,Bun.serve, etc.) - Prefer
bun:sqliteoverbetter-sqlite3 - No semicolons (project uses Prettier defaults)
- Run
bun run typecheckbefore committing
punt/
├── src/
│ ├── index.ts # Main server entry
│ ├── routes/ # API route handlers
│ ├── lib/ # Shared utilities
│ └── templates/ # HTML templates (TSX)
├── cli/ # CLI tool (@lance0/punt)
├── scripts/ # Database setup, etc.
└── public/ # Static assets
- Fork the repo and create a branch from
master - Make your changes
- Run
bun run typecheckto ensure no type errors - Test your changes locally
- Submit a PR with a clear description of the changes
- Use GitHub Issues for bug reports and feature requests
- Include reproduction steps for bugs
- Check existing issues before creating a new one
By contributing, you agree that your contributions will be licensed under the MIT License.