Inspiration
As developers building on Serverpod, I loved the speed of development but felt a gap in "Day 2" operations. When a backend throws a 500 error, the workflow typically involves grepping through raw logs, checking a separate dashboard like Grafana, and manually connecting to the database. I thought: What if the server could just tell us what's wrong? Better yet, what if it could fix itself? This inspired Sentinel—not just a dashboard, but an active Guardian for your backend.
What it does
Sentinel is an all-in-one observability and remediation platform running alongside your Serverpod app.
- The Butler (AI Agent): A conversational AI that analyzes logs and metrics. You can ask "Why did the payment service fail?" and it retrieves the relevant stack traces and context.
- Live Stream: A real-time, zero-latency feed of every event, health signal, and security alert occurring in your system, powered by Serverpod WebSockets.
- Remediation Playbooks: Pre-defined scripts (e.g., "Clear Cache", "Restart Service", "Block IP") that can be executed instantly from the UI or by the AI agent.
- Incident Management: Tracks outages from detection to resolution with audit trails.
How I built it
I built Sentinel as a 100% Dart full-stack solution, proving the power of a unified language.
- Backend (Serverpod): I utilized Serverpod Modules to keep the Sentinel logic decoupled from the main application. I leveraged
serverpod_authfor granular Role-Based Access Control (RBAC) to ensure only admins can trigger risky playbooks. - Frontend (Flutter): A responsive, high-performance dashboard that runs on Windows, MacOS, and Web. I used Riverpod for state management to handle the intense stream of real-time telemetry.
- AI (Vertex AI/Gemini): I integrated Gemini to power "The Butler", feeding it sanitized system contexts so it understands the specific topology of a Serverpod deployment.
- Real-Time: I heavily utilized Serverpod's streaming capabilities to push health metrics without polling.
Challenges I ran into
- AI Hallucinations vs. DevOps Safety: Letting an AI control infrastructure is scary. I had to build a strict "Human-in-the-loop" permission system where the AI can propose a Playbook execution, but a human (or specific policy) must authorize it using our
Scopebased security model. - Telemetry Overload: Streaming everything crashed our initial frontend builds. I had to implement aggressive buffering and throttling on the server-side to ensure the "Live Stream" was viewable without freezing the UI.
- Bootstrapping: Creating a "seed" experience that sets up a full admin environment without requiring a pre-existing user was tricky. I solved this with a custom
seed_data.dartscript and a temporaryauthenticationHandlerbypass for local dev.
Accomplishments that I'm proud of
- Zero-Latency Monitoring: Seeing a log line appear on the dashboard the exact millisecond it happens on the server is magical.
- The Butler: Having a conversation with our backend and having it actually perform a database cleanup task felt like the future of DevOps.
- Seamless Integration: Sentinel drops into an existing Serverpod project as a module—no complex sidecars or separate containers required.
What I learned
- Serverpod is a beast: Its module system is incredibly robust. I could build an entire "SaaS-in-a-box" inside a backend without polluting the main codebase.
- Dart on the Backend: The type safety from database to UI (via Serverpod code generation) saved us countless hours of debugging API mismatches.
What's next for Serverpod Sentinel
- Predictive Auto-Scaling: Using AI to forecast traffic spikes and scale containers before they are needed.
- Mobile Companion App: A Flutter mobile app to get push notifications and approve Playbooks from your phone.
- Multi-Server Mesh: Aggregating telemetry from a distributed cluster of Serverpod nodes into a single "Global View".
Built With
- dart
- docusaurus
- flutter
- powershell
- serverpod
- shellscript

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