How to Contribute
Fork the Repository
Click the Fork button on GitHub to create your own copy.
Create a Feature Branch
git checkout -b feat/your-feature
Make Your Changes
Write code, fix bugs, improve docs — whatever you'd like to contribute.
Commit with a Clear Message
git commit -m 'feat: add your feature'
Push and Open a Pull Request
git push origin feat/your-feature
Then open a PR on GitHub. Describe what you changed and why.
Development Setup
See the full Getting Started guide for detailed prerequisites and installation steps. Quick summary:
git clone https://github.com/theja-vanka/NightFlow.git && cd NightFlow npm install --legacy-peer-deps # or: bun install npx tauri dev # or: bunx tauri dev
The frontend supports Vite HMR — changes to JSX/CSS are reflected instantly. Rust backend changes
require a recompile (automatic in tauri dev).
Code Style & Linting
Frontend (JavaScript / JSX)
- ESLint is configured — run
npm run lintorbun run lint - Use Preact imports, not React (e.g.,
import { h } from 'preact') - Use Signals for state management, not useState/useReducer
- Vanilla CSS — no Tailwind or CSS-in-JS
Backend (Rust)
- Run
cargo clippyto check for common issues - Run
cargo fmtto format code - Follow Rust Edition 2024 idioms
- All Tauri commands should have proper error handling
Commit Conventions
We follow Conventional Commits:
| Prefix | Purpose | Example |
|---|---|---|
feat: |
New feature | feat: add confusion matrix export |
fix: |
Bug fix | fix: resolve SSH timeout on slow networks |
docs: |
Documentation | docs: update architecture diagram |
refactor: |
Code refactor | refactor: extract chart utils |
chore: |
Tooling / deps | chore: bump Tauri to v2.3 |
Reporting Issues
Found a bug or have a feature request? Open an issue with:
- Bug reports: steps to reproduce, expected vs. actual behavior, OS/platform, and error logs if available
- Feature requests: describe the problem you're trying to solve, proposed solution, and any alternatives considered
Project Structure
See the Architecture page for a full breakdown. Key directories:
| Directory | Contents |
|---|---|
src/ |
Frontend — views, components, state, DB, utils |
src-tauri/ |
Rust backend — Tauri commands, config |
public/ |
Static assets (Netron, icons) |
docs/ |
Documentation site (GitHub Pages) |
License
NightFlow is distributed under the Apache License 2.0. By contributing, you agree that your contributions will be licensed under the same license.