
Aegis
Network-wide DNS sinkhole that doubles as a productivity tool. Blocks ads, trackers, and whole services like social media at the resolver, with per-client policy, schedules, and a node graph of live network traffic.
Outcome: Runs the whole network's DNS from a single binary: about 6% of live queries blocked as ads, trackers, and telemetry, while everything else still resolves normally.
Project details
Problem
Browser extensions only protect browsers. Phones, TVs, and everything else on the network still pulled ads and trackers, and I wanted a single enforcement point for focus and privacy instead of a per-device install.
Constraints
It runs 24/7 as the network's resolver, so it cannot be the slowest hop, and blocklists with 400k+ rules keep churning underneath it. Everything stays configurable from the web console instead of a config file, and it has to survive restarts without losing state.
What I decided
Shipped it as one static Go binary: DNS server, HTTP API, and the Solid web console embedded in the same artifact, with SQLite for config and query history, blocklists held in memory behind per-client and per-profile policy, and multi-arch Docker images from CI. The console draws every client, profile, and upstream as a node graph so you can watch traffic flow across the network, while a live query stream makes each block traceable and beaconing plus DGA detection flag traffic that looks wrong.



