Thanks for your interest in contributing! This document covers everything you need to get started.
- Go 1.24+
- Node.js 20+ and npm
- Git
# Clone the repo
git clone https://github.com/mydisha/keirouter.git
cd keirouter
# Install dependencies
make install
# Run backend + frontend together (hot reload)
make devThis starts the backend on :20180 and the dashboard on :5180.
| Command | What it does |
|---|---|
make dev |
Run backend + frontend concurrently |
make backend |
Run only the Go backend |
make frontend |
Run only the Vite dev server |
make build |
Build production binary + frontend assets |
make test |
Run the backend test suite |
make vet |
Run Go static analysis |
make bootstrap |
Create an initial API key |
-
Fork the repo and create a branch from
main:git checkout -b feat/my-feature
-
Make your changes. Keep commits focused and well-described.
-
Run checks before pushing:
make test # Go tests make vet # Go static analysis cd frontend && npm run lint && npm run typecheck
-
Open a Pull Request against
main. Fill out the PR template.
- Go: Follow standard Go conventions. Run
go vetandgofmt. - TypeScript: The project uses ESLint + TypeScript strict mode. Run
npm run lintandnpm run typecheckin thefrontend/directory. - Commits: Use concise, descriptive messages. Prefix with the area of change when helpful (e.g.
gateway: fix streaming chunk encoding).
backend/
cmd/keirouter/ entrypoint
internal/ all Go packages (see README architecture section)
frontend/
src/ React + TypeScript dashboard
deploy/ Dockerfile + compose
Open a GitHub Issue with steps to reproduce, expected behavior, and your environment.
Open a GitHub Issue describing the problem you want solved and your proposed approach.
See SECURITY.md for reporting vulnerabilities.
By contributing, you agree that your contributions will be licensed under the MIT License.