Thanks for your interest in contributing to Pons!
- Fork the repository
- Clone your fork locally
- Make sure you have Deno installed (v2+)
deno task dev # Watch mode with auto-restart
deno task start # Production mode
deno check src/index.ts # Type check-
Create a feature branch from
main:git checkout -b feat/my-feature
-
Make your changes — keep commits focused and atomic
-
Ensure your code passes type checking:
deno check src/index.ts
-
Push your branch and open a Pull Request
- TypeScript, strict mode
- No external linter — Deno's built-in formatter and checker are the standard:
deno fmt deno lint
- Explicit imports with
jsr:ornpm:prefixes and version constraints - No bare specifiers
- The kernel is thin — if it doesn't belong in the five core responsibilities (bus, lifecycle, RPC, service directory, config), it belongs in a module
- Modules communicate only through the kernel (pub/sub or RPC) — no direct imports between modules
- Every module runs as an isolated child process
- Keep PRs small and focused on a single concern
- Write a clear description of what changed and why
- Reference related issues if applicable
Found a bug or have a feature request? Open an issue.
By contributing, you agree that your contributions will be licensed under the MIT License.