Thanks for your interest in contributing to ThoughtsPlus! This guide explains how to report issues, propose changes, and set up a local dev environment.
- Read the project overview and README to understand scope and constraints.
- This project is source-available, not open source. Contributions are accepted, but use is governed by
LICENSE. - Check existing issues before starting work; for larger changes, open an issue first to align on scope.
- Bug reports (most helpful): use the bug report template and include clear repro steps.
- Feature requests: describe the problem, the desired outcome, and alternatives considered.
- Docs and UI polish: clarity, copy, and consistency improvements are welcome.
- Code contributions: please keep PRs focused and small when possible.
Use the issue template in .github/ISSUE_TEMPLATE/bug_report.md and include:
- OS and app version
- Exact steps to reproduce
- Expected vs. actual behavior
- Screenshots or short clips if UI-related
Prerequisites:
- Node.js 18+
- npm
Setup:
npm install
npm run devNotes:
- This is an Electron app. Run it via
npm run dev(not in a browser). - Dev mode uses an isolated data folder so production data isn't overwritten.
Minimum check before opening a PR:
npx tsc --noEmitOptional:
npm test- Follow existing patterns in the codebase (TypeScript + React + Tailwind).
- Keep dark mode variants where applicable.
- Prefer
clsxfor conditional class names. - Use
accentColorfromuseTheme()instead of hard-coded accent colors. - Keep IPC changes paired: renderer call + main handler.
- Clear description of what and why
- Linked issue (if applicable)
- Screenshots/GIFs for UI changes
- Tests run (or rationale if not)
- No secrets or API keys committed
- Documentation updated if behavior or UI changed
If you are working on packaging or installers, see BUILD_INSTRUCTIONS.md. Please avoid committing build artifacts in PRs.
If you believe you have found a security issue, please avoid public disclosure. Use GitHub's private security advisory flow if available. If not, open a minimal issue asking for a private follow-up.
By submitting a contribution, you agree that:
- Your contribution is licensed under the same terms as
LICENSE. - You assign all rights to the project maintainers as described in
LICENSE.
Thanks again for helping improve ThoughtsPlus!