Skip to content
orbit-collectivePublic

About

Orbit is an issue and project tracker

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

1,359 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orbit Banner

Last commit Commits Closed PRs CI License Package mgr · npm Container · Docker Language · TypeScript Lint · oxlint Format · oxfmt Bundler · Vite CSS · Tailwind React

Orbit

Orbit is an issue and project tracker: create projects, track issues through a workflow, and see progress on a dashboard — as a List, a Kanban Board, a Calendar, or an Activity feed. It's a single Laravel + Inertia.js + React monolith, so there's no separate API to stand up.

Features

  • Projects & issues — projects with name/color/description; issues with title, description, status, priority, labels, assignee, and dates.
  • Four views of the same data — table, board, calendar, activity feed — plus configurable columns and saved filters, per project.
  • A dashboard with productivity trends and completion ratios.
  • Notifications — nine event types, each independently toggleable for in-app and email delivery.
  • Project-scoped roles & permissions — no global admin; Owner/Admin/ Member/Viewer system tiers plus custom roles, backed by 30 fine-grained permissions.
  • Integrations — a catalog of third-party tools per project (Discord live today, via queued webhooks); see documentation/en/integrations/ for how to add another.
  • Account settings (/settings) — profile, security, preferences, notifications, and workspace management (members, roles, integrations).
  • Light/dark/system theme with 10 accent colors, persisted per browser.
  • Guided onboarding for new accounts.

Tech stack

Layer Technology
Backend PHP 8.5+, Laravel 13
Bridge Inertia.js 3 (no REST/JSON API — Laravel renders React pages directly)
Frontend React 19, TypeScript, Vite
Styling Tailwind CSS, class-variance-authority, light/dark/system theming
Database SQLite by default (swappable via Laravel's standard DB_* env vars)
Testing Pest (PHP), Vitest + Testing Library (React)

The backend follows a layered Controller → Service → Repository architecture. The frontend follows atomic design (Atoms, Molecules, Organisms) composing into Inertia pages under resources/js/Pages.

Getting started

Docker (recommended)

Needs Docker and make.

git clone https://github.com/Adiksuu/orbit.git
cd orbit
make setup

This builds the images and starts the stack. .env is created and an APP_KEY generated automatically on first run (or Doppler is used instead, if this directory is linked to it — see documentation/ for details).

Service URL
App http://localhost:8000
Vite (assets/HMR) http://localhost:5173
nsfwjs (moderation) http://localhost:3333

Common commands (see the Makefile for the full list):

make up               # start the stack in the foreground
make down             # stop the stack
make shell
make tinker
make migrate          # run migrations
make fresh            # rebuild with seed data
make test             # run the PHP test suite
make test-js          # run the frontend test suite
make lint
make type-check

Native (PHP + Node directly)

Needs PHP 8.5+, Composer, and Node.js.

git clone https://github.com/Adiksuu/orbit.git
cd orbit
composer setup   # installs deps, copies .env, migrates, builds assets
php artisan migrate:fresh --seed   # optional: seed demo data
composer dev      # runs the server, queue listener, log tail, and Vite together

Environment configuration

Only applies to the Docker setup — the native setup uses a plain local .env copied from .env.example. In Docker, ${KEY} values come either from a .env file at the repo root (the default, generated automatically on first make setup) or, for the core team, from Doppler if this directory is linked to it — the Makefile detects which mode applies, no manual choice needed. See documentation/en/architecture/04-docker-doppler-and-deployment.md for the full mechanics and troubleshooting.

Testing

composer test       # PHP (Pest) suite
npm test             # Frontend (Vitest) suite

CI runs type-checking, linting, both test suites, and a production build on every push and pull request against master.

Project structure

app/
  Http/Controllers/   Thin HTTP layer — validate, delegate, redirect
  Services/            Business logic and side effects
  Repositories/        All Eloquent query logic
  Policies/            Permission- and project-membership-based authorization
  Models/               Issue, Project, User, Role, ProjectIntegration, ...

resources/js/
  Pages/                Inertia pages, resolved by name
  Components/           Atoms / Molecules / Organisms (atomic design)
  Layouts/              Page shells (MainLayout, GuestLayout)
  types/                Shared TypeScript types

documentation/
  en/, pl/              Step-by-step "how do I extend X" guides (bilingual)

See CLAUDE.md and documentation/ for a deeper dive into architecture and conventions.

Deploying to production

Orbit is a standard Laravel + Vite app: build assets (npm run build), install PHP deps without dev packages, point DB_* at a real database, migrate (php artisan migrate --force), cache config/routes/views, and serve public/ behind Nginx/Apache or the Docker image's php target. Run a queue worker (php artisan queue:work) if you rely on queued jobs (email notifications, integration webhooks).

License

Licensed under the MIT License.

Adiksuu/orbit contributors

About

Orbit is an issue and project tracker

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages