NetPulse: Network Monitoring
Real-time monitoring for servers, routers, and network devices: an on-prem agent pings them and a cloud dashboard shows status live.

Team of one· Solo full-stack engineer
No team, no agency, no hand-offs. I owned this project end to end:
- Requirements
- Architecture
- UI & UX
- Backend & APIs
- Database
- Stack
- Next.js 15PythonSupabase RealtimeWebSocketsRLS
What was broken, and what fixed it
Problem: IT learned about a downed device when users called.
Fix: An on-prem Python agent pings servers, routers, and devices on a set interval with timeout detection, and the dashboard updates live without a page refresh.
Problem: The devices are on a private network, but the team wants to see status from anywhere.
Fix: The agent pushes results out to Supabase, which streams them to a cloud dashboard behind Supabase Auth and row-level security.
Approach
- Hybrid design: an on-prem Python agent does ICMP checks and pushes results to a cloud dashboard.
- Supabase Auth with row-level security protects the data.
What I built
- Python agent with configurable intervals and timeout detection
- Next.js dashboard with live WebSocket updates and charts
- Bulk add, edit, and delete of monitored devices, with labels and categories
- CSV and JSON export
Architecture
Interface
- Next.js 15
- Charts
Logic & APIs
- Python
- Supabase Realtime
- WebSockets
- TypeScript
Data
- RLS
- Supabase
Infrastructure & delivery
- Identity
- Server
- 1PythonServer
An on-prem Python agent uses asyncio and icmplib to ping servers, routers, and devices on a set interval.
- 2ChartsRealtimeSupabase
The agent pushes results to Supabase, and Supabase Realtime streams them to the dashboard.
- 3Next.jsChartsTypeScript
A Next.js 15 and TypeScript dashboard shows live status, response times, and charts.
- 4SupabaseRow-level securityIdentity
Supabase Auth handles sign-in, with row-level security on the data.
Engineering
- Row-level security in Supabase protects device data at the database level.
- The agent installs as a systemd service on Linux, so monitoring survives reboots.
- Performance test scripts exercise the agent and its WebSocket updates.
- The dashboard reconnects automatically and uses optimistic updates with error handling.
Outcome
- Device status updates live on the dashboard without a page refresh.