FlintGuard
A mobile and web app for managing a GL.iNet Wi-Fi router: approve new devices from a push notification, block them and keep the home network under control.


Challenge
A home router’s admin panel is built for network engineers, not for a parent who wants to see what is connected and pause the internet for one device.
Solution
- Security audit first: a baseline of the router showed SSH and HTTPS reachable from the internet and password login over SSH enabled; seven WAN rules were closed, password login turned off, and the router checked for signs of compromise.
- SDK and tools: a typed client for the router’s JSON-RPC API with safeguards against locking yourself out, contract tests against a real router that roll back every change, a command-line tool, nine architecture decision records.
- App: devices with filters, a device card with rename, profile and one-tap internet block, an event log, “pending” devices with Allow and Block buttons, blocked devices outside the router’s own list, “this is the same device” for a new private MAC address; a web version served from the router itself.
- Agent on the router: a Lua package and service that detects new devices, adds custom API methods, puts new devices in quarantine, and lets only approved devices join Wi-Fi.
- Notifications: push with action buttons, native iOS push through a small relay, alerts about connection attempts, with rate limits and short-lived action tokens.
- Platforms: iOS builds through TestFlight, Android and web.
Result
A personal project for the author’s home network, in active development, not a commercial product.