Inspiration
We kept getting paged for the same outage twice. The logs were there, last week’s fix was in someone’s head, and nobody wanted to grep Slack at 2 a.m. We wanted a console that watches servers the way an SRE would, then actually remembers what worked.
What it does
OpsMind is an ops console. You register a server, it health-checks like an AWS load balancer, and it polls logs instead of waiting for a webhook. Errors become tickets. When you write how you fixed it, that goes into CockroachDB as vector memory. Next time a similar error shows up, it suggests a fix from your own history, not a generic LLM essay.
How we built it
Three apps: a Fastify API, a React console, and a mock “broken” service so we could demo without a real fleet. CockroachDB holds systems, logs, tickets, and 1024-d embeddings. Health and log pollers run in the background; Socket.io pushes live updates. Resolve embeds the write-up; new tickets only call the model if similarity clears 0.8. We used OpenRouter for embed and chat so we could ship the loop without fighting model plumbing.
Challenges we ran into
Polling sounds easy until you hit cursors, duplicate rows, and a poller that must not die if one server is down. Health status needed real consecutive thresholds, not a single 200. The AI path was worse: empty embeddings, chat when history was junk, and suggestions that read like essays. We gated chat on cosine similarity and forced structured steps. Also: keep the live API off the same database when tests run, or everything flakes.
Accomplishments that we're proud of
The demo is a full loop: register, go unhealthy, inject an error, open a ticket, resolve it, inject the same error again, and watch a suggestion appear. Vector search lives in Cockroach, not a side database. The UI actually feels like a console (live logs, tickets, bulk resolve) instead of a form on a landing page.
What we learned
Pull-based ingest is boring and correct. Memory only helps if you refuse to guess when nothing similar exists. Cockroach’s vector index meant we did not need a second store for RAG. And for a hackathon, a fake monitored app with a “break me” button is worth more than a perfect architecture diagram.
What's next for Opsmind
Swap chat/embed to Bedrock if that is the production path. Then: auth that is not a demo API key, alerts out of the console (Slack/PagerDuty), and letting people register a real service using the monitored-server guide instead of only our mock.
Built With
- amazon-web-services
- cockroachdb
- fastify
- node.js
- openrouter
- react

Log in or sign up for Devpost to join the conversation.