Nats Eye

F 42 completed
Other
containerized / typescript · small
106
Files
20,392
LOC
4
Frameworks
7
Languages

Pipeline State

completed
Run ID
#1545966
Phase
done
Progress
0%
Started
2026-04-16 23:38:41
Finished
2026-04-16 23:38:41
LLM tokens
0

Pipeline Metadata

Stage
Cataloged
Decision
proceed
Novelty
82.40
Framework unique
Isolation
Last stage change
2026-05-10 03:34:46
Deduplication group #1938282
Member of a group with 1 similar repo(s) — this repo is canonical view group →
Repobility analyzer · published findings · https://repobility.com

AI Prompt

Create a modern, self-hostable web UI called "NATS Eye" for managing NATS clusters. I need it to monitor cluster health, message rates, and connections in real-time. Key features must include Cluster Management with support for token and username/password authentication, a Dashboard overview, JetStream Streams management (including live message tailing), and full Key-Value store management with real-time key watching. The UI should also support Dark/Light Mode. Please use React for the frontend, Hono for the backend, and ensure it's containerized using Docker.
typescript react hono docker web-ui nats monitoring jetstream key-value dashboard
Generated by gemma4:latest

Catalog Information

Create a modern, self-hostable web UI called "NATS Eye" for managing NATS clusters. I need it to monitor cluster health, message rates, and connections in real-time. Key features must include Cluster Management with support for token and username/password authentication, a Dashboard overview, JetStream Streams management (including live message tailing), and full Key-Value store management with real-time key watching. The UI should also support Dark/Light Mode. Please use React for the frontend,

Tags

typescript react hono docker web-ui nats monitoring jetstream key-value dashboard

Quality Score

F
41.8/100
Structure
52
Code Quality
32
Documentation
34
Testing
15
Practices
56
Security
75
Dependencies
90

Strengths

  • CI/CD pipeline configured (github_actions)
  • Code linting configured (biome)
  • Containerized deployment (Docker)

Weaknesses

  • No LICENSE file — legal ambiguity for contributors
  • No tests found — high risk of regressions
  • 19 files with critical complexity need refactoring
  • 3877 duplicate lines detected — consider DRY refactoring
  • 12 'god files' with >500 LOC need decomposition

Recommendations

  • Add a test suite — start with critical path integration tests
  • Add a LICENSE file (MIT recommended for open source)

Languages

typescript
95.9%
markdown
1.8%
json
1.1%
css
0.6%
yaml
0.3%
html
0.2%
text
0.0%

Frameworks

React Hono Vitest Vite

Symbols

variable992
function430
interface98
type_alias17
constant13

API Endpoints (71)

Per-row analysis by Repobility · https://repobility.com
MethodPathHandlerFramework
Repobility · severity-and-effort ranking · https://repobility.com
GET*app.getExpress/Koa
GET/clusters.getExpress
POST/clusters.postExpress
GET/alertsmonitoring.getExpress
POST/alertsmonitoring.postExpress
DELETE/alerts/:idmonitoring.deleteExpress
PATCH/alerts/:idmonitoring.patchExpress
GET/alerts/:idmonitoring.getExpress
GET/alerts/:id/eventsmonitoring.getExpress
GET/api/healthapp.getExpress/Koa
POST/channelsnotifications.postExpress
GET/channelsnotifications.getExpress
GET/channels/:idnotifications.getExpress
DELETE/channels/:idnotifications.deleteExpress
PATCH/channels/:idnotifications.patchExpress
POST/channels/:id/testnotifications.postExpress
POST/cluster/:clusterIdkv.postExpress
POST/cluster/:clusterIdstreams.postExpress
GET/cluster/:clusterIdstreams.getExpress
GET/cluster/:clusterIdobjectstore.getExpress
GET/cluster/:clusterIdconsumers.getExpress
GET/cluster/:clusterIdkv.getExpress
DELETE/cluster/:clusterId/bucket/:bucketobjectstore.deleteExpress
POST/cluster/:clusterId/bucket/:bucket/uploadobjectstore.postExpress
DELETE/cluster/:clusterId/bucket/:namekv.deleteExpress
GET/cluster/:clusterId/bucket/:namekv.getExpress
PUT/cluster/:clusterId/bucket/:name/keykv.putExpress
GET/cluster/:clusterId/bucket/:name/key/:keykv.getExpress
DELETE/cluster/:clusterId/bucket/:name/key/:keykv.deleteExpress
GET/cluster/:clusterId/bucket/:name/key/:key/historykv.getExpress
POST/cluster/:clusterId/bucket/:name/key/:key/purgekv.postExpress
GET/cluster/:clusterId/bucket/:name/keyskv.getExpress
DELETE/cluster/:clusterId/stream/:namestreams.deleteExpress
PATCH/cluster/:clusterId/stream/:namestreams.patchExpress
GET/cluster/:clusterId/stream/:namestreams.getExpress
GET/cluster/:clusterId/stream/:name/messagesstreams.getExpress
POST/cluster/:clusterId/stream/:name/purgestreams.postExpress
POST/cluster/:clusterId/stream/:streamNameconsumers.postExpress
GET/cluster/:clusterId/stream/:streamNameconsumers.getExpress
DELETE/cluster/:clusterId/stream/:streamName/consumer/:consumerNameconsumers.deleteExpress
GET/cluster/:clusterId/stream/:streamName/consumer/:consumerNameconsumers.getExpress
GET/cluster/:idstats.getExpress
POST/cluster/:id/check-alertsmonitoring.postExpress
GET/cluster/:id/connzmonitoring.getExpress
GET/cluster/:id/healthmonitoring.getExpress
GET/cluster/:id/subszmonitoring.getExpress
GET/cluster/:id/varzmonitoring.getExpress
GET/clustersmonitoring.getExpress
GET/dashboardstats.getExpress
GET/events/recentmonitoring.getExpress

Showing 50 of 71

Quality Timeline

1 quality score recorded.

View File Metrics
Repobility (the analyzer behind this table) · https://repobility.com

Embed Badge

Add to your README:

![Quality](https://repos.aljefra.com/badge/1369734.svg)
Quality BadgeSecurity Badge
Export Quality CSVDownload SBOMExport Findings CSV