Contributing
PicPeak is open source under the MIT license. Contributions are welcome --- whether fixing bugs, adding features, or improving documentation.
Ways to contribute
- Report bugs --- open a GitHub issue with steps to reproduce, expected behavior, and your environment details.
- Suggest features --- describe the enhancement and why it would be useful.
- Submit pull requests --- fork the repo, create a branch from
main, and submit a PR. - Improve documentation --- fix typos, add examples, or clarify existing docs.
First contribution
Look for issues labeled:
- good first issue --- small, well-scoped changes.
- help wanted --- issues that need community help.
Pull request process
- Fork the repo and create your branch from
main. - Install dependencies:
cd backend && npm install && cd ../frontend && npm install. - Make your changes. Follow the existing code style.
- Ensure tests pass:
npm testin bothbackend/andfrontend/. - Ensure linting passes:
npm run lintin both directories. - Write tests for new code.
- Update documentation if needed.
- Attach a screenshot for any UI change (see below).
- Submit the pull request.
Screenshots for UI changes
A screenshot is required for any pull request that changes a user-facing surface: a component, page, layout, style, or in-app text. Put at least one screenshot of the result in the PR description, with before/after where it helps reviewers see the difference. A UI pull request without one is asked to add it before review. Backend-only and other non-visual changes do not need one.
Where the images live:
- Working from a fork: drag the image into the PR description or a comment. GitHub hosts it; there is nothing to push.
- Pushing to the PicPeak repository: commit the image to the
pr-assetsbranch, never to a branch of your own.pr-assetsis an orphan branch that holds only images, one folder per PR or issue (screenshots/<issue-or-pr>-<n>/<file>.png, for examplescreenshots/1446-2/sign-step-dark.png). Link it throughhttps://raw.githubusercontent.com/PicPeak/picpeak/pr-assets/screenshots/.... Checking the branch out in a separate worktree (git worktree add ../picpeak-pr-assets pr-assets) keeps your working branch untouched.
Rules for pr-assets:
- Never delete it or force-push it; older PRs and issues load their images from it.
- Do not overwrite an existing file. Use a new name such as
-v2.png, because the raw CDN can keep serving the old image for a while. - Images only (PNG, JPEG, WebP, GIF, short MP4/WebM). No code, no secrets, nothing that shows real customer data.
- Do not create new
screenshots/*branches; the old ones were folded intopr-assets.
The full recipe is in CONTRIBUTING.md.
Code style
- ES6+ features, async/await over raw promises.
- Functional React components with hooks.
- TypeScript in the frontend.
- JSDoc comments for functions.
- Follow ESLint rules configured in the project.
Commit messages
- Present tense, imperative mood (“Add feature”, not “Added feature”).
- First line under 72 characters.
- Reference issues and PRs after the first line.
Contact
- GitHub Issues for bugs and features.
- GitHub Discussions for questions.
Last updated on