openstatushq / openstatus
Code health
This codebase scores 8.3 out of 10 for code health, which we rate good. It also scores maintainability 9.1 and static performance 9.9 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 313 of 2,753 files are git hotspots, and they average 7.4 — which is where the fixes pay off most.
Do next
1 suggested
1 thing worth doing this quarter.
Worth planning
Delete 180 unused symbols and files (4,067 lines)
Nothing in the graph reaches them, across 110 files; every reader and agent pays to skip them.
- symbols
- 180
- lines
- 4,067
- safe to delete
- Yes(inferred)
Medium effort
Improve what Repowise can see
Add a test coverage report
Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.
- line coverage
- Unknown, no report
Small effort
- Lines of code
- 506.8K
Recent activity
All commitsCommits
- f04c8271build: bump Deno to 2.9.2 in server and workflows dofigen/docker builds (#2367)3mo ago
- 0aa8d144fix(ui): keep input-group focus ring when control is wrapped in FormControl (#2364)3mo ago
- ba11394eRefactor: replace legacy InputWithAddons with InputGroup (#2349)3mo ago
- 9b27caabExtract Vercel domain helpers to dedicated module (#2362)3mo ago
- c4dfeeddFix status page redirect to include default locale (#2363)3mo ago
- afa8122afeat: custom-theme api (#2359)3mo ago
Decisions
- First rejection wins. Subsequent rejections in the same microtask batch must not silently overwrite…proposed · 3mo ago
- Race-free settle-as-they-arrive: each promise pushes into a queue when it resolves; the consumer…proposed · 3mo ago
- We add a state so that we can do data-state="expanded" or "collapsed". This makes it easier to…proposed · 3mo ago
- This is the internal state of the sidebar. We use openProp and setOpenProp for control from outside…proposed · 3mo ago
- NOTE: change from default shadcn sidebarproposed · 3mo ago
- CSS-only animated text shimmer — a gradient slides under a bg-clip:text mask. Pure CSS keeps the…proposed · 3mo ago
Everything we found
4,464 open
Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.
- worst item is critical severity. Code health1,295Untested hotspot · packages/api/src/router/statusPage.ts18 findings · 9.1 deducted
- worst item is medium severity. Refactoring136getCommonDbValuesForUpdate+1.5 health, S effort · apps/server/src/routes/rpc/handlers/monitor/validators.ts
- worst item is medium severity. Decisions1,034packages/api/src/router/page.ts721 awaiting review · 313 hotspots ungoverned
- worst item is medium severity. Ownership1,800packages/api/src/router/page.ts100% single-owner concentration, 12 commits in 90d
- worst item is low severity. Dead code199apps/web/src/data/code-dictionary.tsUnreachable symbol (10 lines)
Composition
Open the graph- typescript96%
- go3%
- dockerfile<1%
- javascript<1%
- shell<1%
Explore this codebase
- Docs0 pages across 4 modules
- ChatAsk this codebase a question and get an answer with its sources.
- Files2,753 files with per-file docs, health and history
- ArchitectureDependency graph, layers, and 275 entry points
- Code healthPer-file scores, 1,497 open findings, coverage and refactoring targets
- Knowledge graphEntities, communities, and the paths between them
- Change couplingFiles that keep changing together, mined from commit history
- CommitsChange-risk ranked history with agent provenance
- ContributorsBus factor, per-file maintainers, and the human/agent split
- StatsSize class, origin, lifetime churn, rhythm and records
- CostsWhat indexing this snapshot cost, by model and by run.