How to contribute
Thanks for your interest in working on Scani. This page is a short on-ramp. The canonical engineering spec lives in Engineering conventions — read that before opening anything non-trivial.
Filing issues
Section titled “Filing issues”- Bug? Use the Bug report template. Include reproduction steps, what you expected, what you saw, and your environment (OS, Bun version, whether you’re self-hosted or pointing at a hosted data-provider).
- Feature idea? Use the Feature request template. State the problem first, the proposed solution second.
- Security finding? Do not open a public issue. See
.github/SECURITY.mdfor the private disclosure flow.
Local development
Section titled “Local development”See Quickstart for boot instructions. The short version:
git clone git@github.com:MGrin/scani-oss.gitcd scani-osscp .env.example .envbun installbun run dev:stackopen http://localhost:5173You need Bun ≥ 1.3 and Docker.
Pull-request flow
Section titled “Pull-request flow”-
Fork the repo and create a topic branch:
Terminal window git checkout -b your-name/short-descriptive-name -
One logical change per PR. A bug fix, a single new feature, a refactor — not all three at once.
-
Run the checks locally before pushing:
Terminal window bun run type-checkbun lint:fixbun test --preload ./packages/business/domain/test-preload.ts packages/ --timeout 30000If you touched dependencies:
Terminal window bun run deps:lint # syncpack — version alignmentbun run deps:unused # knip — unused exports/files/dependencies -
Sign off your commits with the Developer Certificate of Origin (DCO):
Terminal window git commit -s -m "your message"This adds a
Signed-off-by:trailer and certifies you have the right to contribute the work under the project’s MIT license. -
Open the PR using the PR template. Link the issue it closes if one exists. Wait for CI green.
-
Code review is a conversation. Expect questions and small change requests. Maintainers aim to first-review within a few days.
What kinds of contributions are most welcome
Section titled “What kinds of contributions are most welcome”- Provider integrations. Exchange + brokerage + chain adapters in
packages/clients/providers/. Every exchange has quirks; we’ve only normalized a fraction of what users want. - Bug fixes with a regression test.
- Documentation. README clarifications, package-level READMEs, better self-host instructions, additions to this site.
- Performance. Profile-driven; show the before/after numbers.
What we’ll likely close
Section titled “What we’ll likely close”- Sweeping refactors with no behaviour change and no benchmark wins.
- Drive-by formatter / lint reflows.
bun lint:fixhandles those. - Adding new linters, formatters, or test runners.
- “Add framework X” PRs without an issue agreeing on the direction first.
License
Section titled “License”By contributing, you agree that your contributions will be licensed under
the MIT License (see
LICENSE).