[One-line pitch: what it does and who it's for]
Built at [Hackathon Name] — [Date] | Team: [Team Name]
[What problem are you solving? Keep it to 2-3 sentences.]
[How does your project solve it? What's the core insight?]
[Link to deployed app / video demo / screenshots]
| Layer | Technology |
|---|---|
| Frontend | React + Vite + TypeScript |
| Backend | Node.js + Express + TypeScript |
| Database | MongoDB / PostgreSQL |
| Infra | Docker Compose |
| AI | Claude API (optional) |
- Node.js 20+
- Docker + Docker Compose
- (Optional) Claude Code:
npm install -g @anthropic-ai/claude-code
# Clone from template, then run the init script once
chmod +x scripts/init.sh
./scripts/init.sh
# Or via Make
make initThe script will:
- Scaffold
frontend/usingcreate-vite(React + TypeScript) - Scaffold
backend/with Express + TypeScript + all dependencies - Copy pre-written stubs (env validation, error handling, async handler)
- Create
.envfrom.env.example
# Fill in secrets
nano .env
# Start everything
make dev
# Backend at http://localhost:3000
# Frontend at http://localhost:5173hackathon-template/
├── .claude/
│ └── settings.json # Claude Code permissions (optional)
├── .github/
│ ├── ISSUE_TEMPLATE/
| | └── bug_report.md
│ └── PULL_REQUEST_TEMPLATE.md # Checklist for PRs
├── docs/
│ ├── ARCHITECTURE.md # System design and decisions
│ └── snippets/ # Pre-written stubs copied by init.sh
│ ├── index.ts
│ ├── env.ts
│ ├── asyncHandler.ts
│ ├── errorHandler.ts
│ ├── tsconfig.json
│ └── nodemon.json
├── scripts/
│ └── init.sh # Run once after cloning
├── .env.example # All required env vars with placeholders
├── .gitignore
├── AI_USAGE.md # AI tool disclosure (fill in or delete)
├── CLAUDE.local.md # Personal Claude Code overrides (gitignored)
├── CLAUDE.md # Claude Code project memory
├── CONTRIBUTING.md
├── docker-compose.yml
├── Makefile
└── README.md
# Generated by init.sh — not in the template repo:
├── frontend/ # Vite + React + TypeScript (via create-vite)
└── backend/ # Express + TypeScript (scaffolded by init.sh)
| Name | Role |
|---|---|
This project is licensed under the MIT License - see the LICENSE file for details.