Native Shell
Native Shell: AI-generated UI, native in your app, on every platform. Apps on iOS, Android, macOS, Windows and Linux, GPUI apps and web pages load signed, sandboxed TSX modules at run time and draw th
Personal ticketing & engineering workspace
Translation pending
Developer toolsTypeScript · CSSGitHub @JuanGaljoenOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Personal AI-first ticketing & engineering workspace
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Personal, AI-first ticketing and engineering workspace: projects, objectives, milestones and tickets; a Kanban board and roadmap; GitHub integration; an assistant that answers from real data and proposes work for you to review. Replaces Jira for personal work. Single user, not a SaaS.
Stack: Next.js 16 (App Router) · TypeScript · Drizzle ORM on Neon Postgres (PGlite locally) · GitHub OAuth (single allowlisted user) · Anthropic SDK · Tailwind v4 + shadcn/ui · Vercel.
pnpm install
pnpm dev # http://localhost:3000
With no DATABASE_URL, Orbit uses embedded Postgres (PGlite) in .data/pglite, migrated
automatically on first request. With no OAuth configured, dev mode skips login. GitHub and AI
features show how to enable them and the rest of the app works without them.
To develop against real Postgres, create a Neon dev branch and set DATABASE_URL in
.env.local, then pnpm db:migrate.
Put these in .env.local (local) or the Vercel project settings (production). Only the auth
group is required in production — without it Orbit refuses all access (fails closed).
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | prod | Neon Postgres connection string. Unset or pglite:<dir> → embedded PGlite. |
AUTH_GITHUB_ID, AUTH_GITHUB_SECRET | prod | GitHub OAuth app (Settings → Developer settings → OAuth Apps). Callback URL: <APP_URL>/api/auth/callback. |
AUTH_GITHUB_ALLOWED_LOGIN | prod | The one GitHub username allowed to sign in. |
AUTH_SECRET | prod | Session signing key, ≥32 chars (openssl rand -base64 48). |
APP_URL | prod | Public base URL, no trailing slash (OAuth redirects, webhook instructions). |
GITHUB_TOKEN | optional | Fine-grained PAT, read-only: Metadata, Contents, Pull requests, Checks, Commit statuses — on the repos Orbit should see. |
GITHUB_WEBHOOK_SECRET | optional | Shared secret for repository webhooks (openssl rand -hex 32). |
ANTHROPIC_API_KEY | optional | Enables the assistant. Model and effort are set in Settings. |
ORBIT_API_TOKEN | optional | Bearer token (≥24 chars) for /api/v1 (Claude Code, scripts). Unset = API disabled. |
ORBIT_TIMEZONE | optional | IANA zone for "today"/due/overdue, e.g. Africa/Johannesburg. Default UTC. |
Credentials only ever live in the environment — the database stores no secrets.
DATABASE_URL).https://<your-domain>/api/auth/callback.pnpm vercel-build (runs pnpm db:migrate then next build, so schema
changes deploy with the code).https://<your-domain>/api/github/webhook, content type
application/json, your GITHUB_WEBHOOK_SECRET, events: Pull requests, Pushes, Branch or tag
creation, Branch or tag deletion, Check runs, Check suites, Statuses. Without webhooks, use
Sync now on the GitHub page.ORB gives ticket IDs ORB-1, ORB-2, …).Keyboard: ⌘K palette · / search · C new ticket · G then D/T/B/P/O/R/I/A/G/S to navigate ·
? help · ⌘↵ save forms.
/api/v1 gives your agents read and write access to tickets (create, update status/fields,
blockers, comments, archive; no hard delete), every change logged as api — see docs/api.md.pnpm test # vitest — services against in-memory Postgres
pnpm test:e2e # playwright — the full workflow in a browser
pnpm lint && pnpm typecheck
pnpm db:generate # after editing src/db/schema.ts → new migration in drizzle/
pnpm import:tickets export.json # bulk import keeping keys + dates (format: src/server/services/import.ts)
Architecture: all domain logic lives in src/server/services/* behind validated inputs. Server
actions (src/actions), the REST API (src/app/api/v1) and the assistant's tools
(src/server/ai/tools.ts) are thin callers of the same services.
src/vendor/floorplan/; it powers the Architecture tab.src/vendor/floorplan/assets/vendor/.