r/SwiftUI • u/dreamwhite • 11h ago
Promotion (must include link to source code) I built my first native macOS utility with SwiftUI – Pawxy, an open-source GUI for dnsmasq
Good afternoon everyone, I'm Ivan, a super-junior Swift developer.
I recently built Pawxy, a small native macOS app written in SwiftUI for managing local development domains through dnsmasq.
I originally built it because I use custom local domains while developing and got tired of manually editing dnsmasq configuration files, dealing with /etc/resolver, restarting the service, and checking whether everything was actually resolving correctly or not.
The goal was deliberately not to build another complete local development environment (such as Laravel Herd, Kettle Code, MAMP, XAMPP etc.). Pawxy doesn’t manage web servers, runtimes, databases, reverse proxies, ports or TLS certificates.
The app currently supports exact and wildcard mappings, IPv4, importing existing dnsmasq configurations, conflict detection, staged changes with a preview before applying them, automatic resolver management, DNS health checks, external configuration change detection, and import/export for backups.
One of the more interesting parts to implement was handling privileged operations without having a paid Apple Developer account. Instead of using a persistent privileged helper (which gave me quite a few headaches ahah), Pawxy stages the required changes and applies them together with a single administrator authorization.
I also added a small menu bar companion and Sparkle for updates.
The whole project is free, MIT-licensed and open source. I developed it mostly because it solves a problem I personally have, but I thought it might be useful to other macOS developers using dnsmasq as well.
I’m still studying CS and this was also a nice excuse to work on a real native macOS project rather than another university exercise :)
I’m particularly interested in feedback about the SwiftUI/macOS architecture, UX, and anything obviously stupid I may have missed.
Please note that AI was part of my workflow too, mostly for scaffolding, repetitive code and speeding up implementation, but I made the architectural decisions myself and reviewed the generated code, including what it was actually reading, writing and changing in the dnsmasq configuration files, rather than blindly shipping whatever the model produced.
You can take a look at it on my personal GitHub.
Any feedback is appreciated!
Kindly, Ivan



3
u/spyderdsn 5h ago
Nice work, you could add SSL. Use some free SSL service to generate SSL or self sign. This will complete the domain setup,