Building Relay with SwiftUI
When we set out to build Relay, we knew we wanted to go fully native. SwiftUI had matured enough by 2025 that we felt confident building a production-grade macOS application with it.
The decision to go native wasn't just about performance,it was about feel. A REST client is a tool developers live in all day. It needs to feel snappy, responsive, and deeply integrated with the operating system.
We chose a modular architecture that separates the networking layer from the UI layer entirely. This means our HTTP engine can be tested independently, and the SwiftUI views remain thin and declarative.
One of the biggest challenges was building a performant response viewer that could handle large JSON payloads. We ended up implementing a custom syntax highlighter using AttributedString rather than relying on a web view, which gave us much better scrolling performance.
The result is an app that launches in under a second, handles concurrent requests effortlessly, and feels like a true Mac citizen.