Open source

Contribute to Speed Doctor

Contributions of every size are welcome — bug fixes, new detectors, docs, design polish or ideas. Here's how to get set up and ship a great pull request.

Ways to help

  • Report bugs or request features via GitHub issues.
  • Improve detectors — add or tune rules in packages/dom-analyzer.
  • Sharpen the docs or write guides.
  • Polish the UI and accessibility.
  • Triage issues and review open pull requests.

Local setup

Follow the documentation to get a working install, then:

  1. 1

    Fork the repository and clone your fork.

    terminal
    git clone https://github.com/<your-fork>/Speed-Doctor.git
    cd Speed-Doctor
    pnpm install
  2. 2

    Create a branch with a descriptive name.

    terminal
    git checkout -b fix/oversized-image-threshold
  3. 3

    Make your change and keep it focused on one thing.

Before you push

Run the same checks CI runs, so your PR goes green the first time:

terminal
pnpm typecheck   # types must pass
pnpm build       # everything must build
pnpm lint        # keep it clean
Keep PRs small
Smaller, single-purpose pull requests are far easier to review and merge. If you're planning a large change, open an issue first to discuss the approach.

Coding standards

  • TypeScript everywhere — the repo runs in strict mode; avoid any.
  • Match the existing style — Prettier formats the codebase (pnpm format).
  • Keep packages focused — detectors, engines and the DB layer stay independent.
  • No secrets in code — configuration goes through environment variables only.
  • Clear commit messages — describe the “why”, not just the “what”.

Opening the pull request

  1. 1

    Push your branch and open a PR against main.

  2. 2

    Fill in the PR template: what changed, why, and how you tested it.

  3. 3

    Make sure CI checks (typecheck, build, CodeQL) pass.

  4. 4

    Respond to review feedback — then a maintainer merges it. 🎉

Full details live in CONTRIBUTING.md and our Code of Conduct.

Say thanks

Not a coder? You can still help by starring the repository, sharing the project, or buying a coffee.