AI-powered project-management dashboard for GitHub organisations. Unticket syncs your org's pull requests, issues, members, and activity into a fast dashboard with a features kanban, engineer stats, and an event feed — backed by GitHub data, no manual ticket-keeping.
Hosted (free): app.unticket.ai · Self-host: see DEPLOY.md · Architecture: see ARCHITECTURE.md
License: Unticket is source-available under the PolyForm Noncommercial License 1.0.0 — free for any non-commercial use, modify and self-host freely, but commercial use is not permitted. It is not an OSI "open source" license. See LICENSE.
npm install
npm run devOpen http://localhost:5173. By default the dev server proxies /api/* to the hosted instance; sign in with a GitHub personal access token (repo, read:org scopes) to try the UI. To run the full stack (backend Functions, D1, OAuth) against your own infrastructure, follow DEPLOY.md.
Set VITE_API_TARGET in .env.local to point the dev proxy at your own deployment. See .env.example for all configuration.
- GitHub App + OAuth (recommended for self-host/production) — "Sign in with GitHub", real-time webhooks, refresh-token rotation. Requires registering your own GitHub App.
- Personal Access Token — works with zero backend setup, but is read-only: webhooks can't be created in PAT mode, so data is only as fresh as the last manual sync.
- Frontend: React 19, TypeScript, Vite, Tailwind CSS, TanStack Query, Octokit, Radix UI, Lucide icons
- Backend: Cloudflare Pages Functions + D1 (SQLite), a sibling cron Worker, Cloudflare Queues + R2
- Testing: Vitest + Testing Library
| Command | What it does |
|---|---|
npm run dev |
Vite dev server |
npm run build |
Production build |
npm test |
Run the Vitest suite |
npm run lint |
ESLint |
npm run typecheck |
Frontend type-check |
npm run typecheck:functions |
Backend (Functions + cron) type-check |
See CONTRIBUTING.md and CODE_OF_CONDUCT.md. To report a security issue, see SECURITY.md.
Self-hosted instances keep all data in your own Cloudflare account. For the hosted instance, see PRIVACY.md and TERMS.md.