English | 中文
Thanks for your interest in contributing! This guide covers the basics.
# Prerequisites: Node.js >= 22.14.0, pnpm >= 10.8.1
git clone https://github.com/VrianCao/Uptimer.git
cd Uptimer
pnpm install
cp apps/worker/.dev.vars.example apps/worker/.dev.vars
pnpm devSee Develop/LOCAL-TESTING.md for the full local development guide.
- Create a branch from
master - Make your changes, keeping them small and focused
- Ensure quality checks pass:
pnpm lint pnpm typecheck pnpm test pnpm format:check - If you changed the D1 schema, add a new migration file (never modify existing migrations)
- Open a pull request
- TypeScript strict mode across all packages
- Formatting is handled by Prettier — run
pnpm formatbefore committing - Linting rules are defined in
eslint.config.mjs
Before making changes, review these documents:
- Develop/Application.md — Product spec and technical constraints
- Develop/Structure.md — Directory structure and module boundaries
- AGENTS.md — Collaboration guidelines
Key conventions:
- All API input is validated with Zod
- All DB writes use parameterized queries (Drizzle ORM)
- Shared types live in
packages/shared, not duplicated across apps - API routes go in
apps/worker/src/routes/— business logic stays in domain modules
When filing a bug report, please include:
- Steps to reproduce
- Expected vs actual behavior
- Relevant logs or error messages
- Your deployment method (local dev, GitHub Actions, manual)
- Keep PRs small and focused on a single concern
- Include a clear description of what changed and why
- Reference any related issues
- Ensure CI passes before requesting review