
Netpulse
Network monitoring sold as a subscription. Clients watch their own devices, and the provider runs billing without a payment gateway.
Netpulse is the client-facing half of a two-part system. A separate monitoring engine polls routers, switches and servers over ICMP, TCP and SNMP and owns every measurement. This app sits in front of it and decides who is allowed to see what.
Each client organization gets its own devices, live metrics, interface traffic, incidents and alert rules that notify through Telegram or webhooks, with Gemini on hand to help explain an incident. One rule shaped the whole interface: if the engine couldn't measure something, the screen shows a dash or a real error, never a made-up number.
Keeping tenants apart
Ownership on every call
The browser never talks to the engine directly. Every server action first proves the client owns the object, and the organization always comes from the user's own record, never the request.
No probing the internal network
Private, loopback, link-local and reserved addresses are refused, including hostnames that resolve to one.
Race-free quotas
Device slots are claimed inside a locked transaction, so two simultaneous adds can't both take the last slot.
Invitation-only access
Accounts are created through admin invitations only, with optional authenticator-app MFA that can be required for staff.
Billing without a gateway
A subscription is just a paid-until date. Staff record the money they actually received, and each payment produces a numbered receipt (RCP-2026-0001), prints from the app, and applies whatever it paid for: activation, renewal, extra device slots or an adjustment.
Slots bought mid-period get a prorated suggestion rounded up to the nearest Rp 1,000. When the paid date passes, a background worker pauses the client's devices in the engine. Paying resumes only the devices the platform paused, so anything the client paused on purpose stays that way.
Results
150+
Devices monitored across clients
−40%
Time to notice an outage
99.9%
Platform uptime
Built with
- Next.js 16
- Prisma
- PostgreSQL
- Clerk
- SNMP
- Leaflet
- Recharts
- Google Gemini
- Vitest
Related Work
