Command your work. Prove your reliability.
Opsboard is a portfolio-grade operations workspace that combines kanban execution, incident response, service health, audit history, analytics, and a deterministic reliability copilot in one product. It is built as a production MVP, not a static dashboard demo.
https://opsboard-mvp-live.web.app
Click the preview to open the full MP4.
| Boards | Incidents | Copilot |
|---|---|---|
![]() |
![]() |
![]() |
If you are reviewing this as a portfolio project, the highest-signal parts are:
- the repository-backed split between
demoandauthenticatedruntime modes - the incident lifecycle and automatic audit side effects
- the deterministic copilot that derives recommendations from live workspace state
- the Firestore security rules and end-to-end workflow coverage
Opsboard v1 is designed as a single-user operational workspace with:
- Google sign-in for authenticated mode
- starter workspace bootstrap on first login
- isolated per-user Firestore persistence under
users/{uid}/... - explicit demo mode for instant evaluation without authentication
- deterministic copilot logic that works without an external LLM
- audit-first write flows for incidents and operations actions
- Live kanban board backed by repository-driven data
- Create cards directly in the workspace
- Move cards between lists with persistent state
- Shared board model for demo and authenticated runtime modes
- Create incidents from the UI with severity and summary
- Move incidents through
open,monitoring, andresolved - Automatic audit events on incident creation and state transitions
- Service health view derived from live workspace services
- Overall workspace health calculated from incidents and service state
- Live audit timeline sourced from the active workspace
- Richer event rendering with action details and actor metadata
- Derived workspace metrics for cards, incidents, audit volume, and uptime
- No seed-only dashboard logic in app routes
- Deterministic risk scoring over live incidents, cards, services, and audit history
- Summary, action plan, and execution trace without external AI dependencies
- Local telemetry and recovery snapshot controls
- Workspace-aware audit writes for operations actions
The app keeps routes thin and pushes behavior into feature and repository layers.
opsboard/src/appRoute entrypoints and page compositionopsboard/src/featuresSession, boards, incidents, analytics, status, workspace, audit, and copilot logicopsboard/src/features/data/repositoriesDemo and Firestore adapters behind shared contractsopsboard/src/componentsUI for boards, incidents, analytics, audit, auth, AI, and operations
Runtime is explicitly split into:
demoLocal demo repository with persistent browser storageauthenticatedFirebase Auth + Firestore-backed workspace for the signed-in user
flowchart LR
UI[App Router UI] --> Features[Feature View Models]
Features --> Session[Session Runtime]
Features --> Commands[Boards Incidents Audit Copilot]
Commands --> Repos[Workspace Repository Contract]
Session --> Repos
Repos --> DemoRepo[Demo Repository]
Repos --> FirestoreRepo[Firestore Repository]
DemoRepo --> Browser[(Local Storage)]
FirestoreRepo --> Auth[(Firebase Auth)]
FirestoreRepo --> DB[(Firestore)]
Commands --> Metrics[Derived Metrics and Copilot]
Commands --> Audit[Audit Log Writes]
| Category | Technologies |
|---|---|
| Frontend | Next.js 16 App Router, React 19, TypeScript 5 |
| Styling | Tailwind CSS 4 |
| Auth | Firebase Auth with Google sign-in |
| Data | Firestore with per-user document paths |
| Testing | Vitest, React Testing Library, Playwright |
| Hosting | Firebase Hosting |
git clone git@github.com:Patrik652/opsboard-mvp.git
cd opsboard-mvp/opsboard
npm installCreate an .env.local file in opsboard/:
NEXT_PUBLIC_FIREBASE_API_KEY=...
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=...
NEXT_PUBLIC_FIREBASE_PROJECT_ID=...
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=...
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=...
NEXT_PUBLIC_FIREBASE_APP_ID=...Then run:
npm run devOpen http://localhost:3000.
If Firebase env vars are not set, the app still supports local demo mode.
- Google Auth must be enabled in Firebase Authentication
- Firestore is scoped with rules in opsboard/firestore.rules
- User data is stored under
users/{uid}/...
npm run dev
npm run build
npm run lint
npm test -- --run
npm run test:e2e
npm run deploy:firebaseLatest local verification before release:
npm test -- --run:24files,37tests passednpm run lint: passednpm run build: passednpm run test:e2e -- --reporter=line:3 passed
Live verification:
npm run smoke:demo: passed againsthttps://opsboard-mvp-live.web.app- live Playwright smoke for
basic,demo, andworkspaceflows:3 passed
- Real authentication plus a separate instant demo path
- Shared repository contracts for demo and production persistence
- Deterministic copilot layer designed to be defensible and testable
- Firestore security rules included in the repo
- End-to-end workflow coverage for board, incident, and audit paths
.
├── docs/
│ ├── plans/
│ └── releases/
├── firebase.json
├── opsboard/
│ ├── firestore.rules
│ ├── docs/media/
│ ├── src/
│ ├── tests/e2e/
│ └── package.json
└── README.md
MIT



