BACK TO DOCS

Contributing Guidelines

Optizen is built by and for the self-hosted community. Learn how to run the codebase locally, test changes, and submit pull requests safely.

Contribution Principles

Focus and Simplicity

Keep changes intentional and easy to review. Prefer small, highly targeted improvements over broad, unrelated edits.

Maintain Operational Safety

Preserve absolute trust in deploy, SSH credentials, and server operations by testing sensitive paths carefully.

Self-Documentation

Write clean code and comment complex blocks so the next operator or developer can understand what the system is doing under pressure.

Setup & Workflow

01
Fork and clone

Fork the repository on GitHub, then clone your fork locally to get started.

git clone https://github.com/<your-username>/optizen.git
cd optizen
02
Create a focused branch

Use a branch name that reflects a single feature, bugfix, or docs task.

git checkout -b feat/your-feature-name
03
Start local environment

Install all monorepo dependencies and boot both the client and server services concurrently using Bun.

bun install
bun dev
04
Make your edits

Ensure code modifications respect existing styling and logic. Do not mix unrelated cleanups or package updates.

# edit files in apps/web, apps/server, or packages/shared
05
Run diagnostics & verify

At minimum, verify that all TS checks compile and test your changed workflows manually in the browser.

bun run type-check
06
Submit pull request

Push your changes to your fork and submit a pull request explaining the problem, solution, and manual verification steps.

git add .
git commit -m "feat: short description"
git push origin your-branch-name

Pull Request Checklist

A high-quality pull request makes merging fast and painless. Please make sure to include:

  • A clear explanation of the user or operator problem being solved.
  • A list of files or configurations that were changed.
  • Description of how the behavior was verified locally (screenshots or recordings are highly welcome).
  • Any operational risks, migrations, or database changes introduced.