Skip to content
Omicron

Development

Contributing

How to propose a change, what the review looks for, and the licensing implications.

Omicron is AGPL-3.0-or-later free software. Contributions are welcome, and the bar is mostly about fitting the existing shape rather than about volume.

Before you write code

  • Open an issue first for anything beyond a small fix. A short discussion about approach saves rewriting.
  • Read Architecture. Most review feedback is a layering rule the contributor had not seen yet.
  • Check the roadmap in the repository — a feature may already be planned with a particular design in mind.

The workflow

git clone https://github.com/the-jk-labs/omicron.git
cd omicron
git checkout -b your-change
# … work …
cd apps/backend  && deno task check && deno lint
cd apps/frontend && npm run check

Then open a pull request describing what changes for the user and why.

What review looks for

Area Expectation
Layering Routes stay thin; no SQL outside db/; no HTTP inside services/
Repositories Every query is a repository function
Pagination Cursor-based on (created_at, id), never OFFSET
UI Bits UI primitives and theme tokens only — no ad-hoc colours
Migrations Additive within a version; generated SQL committed
Federation Nothing imported from federation/ when the flag is off
Privacy No new reader-identifying data. See Writer dashboard
Comments Explain why, at the density of the surrounding code

Migrations in a pull request

Include the generated SQL from deno task db:generate, and state in the description whether the change is additive. A migration that drops or renames a column needs to be split across releases — see Database and migrations.

UI changes

Screenshots in the PR, light and dark. The theme tokens are ported from the Bits UI docs and both themes are first-class; a change that only looks right in one is not finished.

Documentation

This documentation site lives in a separate repository: the-jk-labs/omicron-docs. A feature that changes operator-visible behaviour should come with a docs PR — or at least an issue there, so the pages do not drift from the software.

Every page here has an Edit this page on GitHub link at the bottom.

Reporting bugs

Include:

  • curl localhost:8000/version output,
  • your container engine and version,
  • whether federation is enabled,
  • the relevant logs (docker compose logs --since 30m backend).

Security issues

Report privately through GitHub security advisories, not as a public issue, so a fix can ship before the details are public.

Licensing

By contributing you agree your work is licensed under AGPL-3.0-or-later, the project’s licence. Every source file carries an SPDX header:

// SPDX-License-Identifier: AGPL-3.0-or-later

Keep it on new files. See License and AGPL for what the licence requires of people who deploy modified versions.

Found a mistake?Edit this page on GitHub.