Vibe-Coding in SwiftUI: Django Co-Creator Builds macOS Utilities Without Knowing the Language
Simon Willison, co-author of Django and creator of Datasette, whipped up two macOS utilities in SwiftUI over a single evening: the network traffic monitor Bandwidther (1,063 lines) and the GPU/memory monitor Gpuer (880 lines). With zero experience in Swift or Xcode, he used just a few prompts in Claude Code. Both apps are single-file menu bar tools for the MacBook Pro with M5 Max.
How AI Handled an Unfamiliar Framework
SwiftUI is perfect for vibe-coding: the entire codebase fits in one file. Claude Opus 4.6 and GPT-5.4 demonstrated equal competence. Willison highlighted how easy it was to generate menu bar interfaces and charts.
Bandwidther tracks network traffic by process, while Gpuer monitors GPU usage and RAM distribution. Prompts were minimal: a basic description plus some interface tweaks.
Code Recombination Technique
The key method is transferring patterns between projects. First, Bandwidther got its menu bar interface. Then the prompt: "Look at the recent changes in Bandwidther and replicate them." Claude automatically adapted the structure for Gpuer, preserving a consistent style.
This accelerated development: the second tool was built in minutes, without duplicating effort. Recombination minimizes errors in repeated elements like menus, charts, and data updates.
- Benefits of recombination:
- Automatic transfer of proven patterns.
- Cuts UI development time from hours to minutes.
- Ensures consistency across apps.
Verification Challenges in Vibe-Coding
Willison added a disclaimer: he doesn't know Swift and has only a superficial understanding of macOS metrics. The next morning, Gpuer reported 5 GB of free memory, even though Activity Monitor showed something different.
He sent a screenshot of the error to Claude, and the model corrected the calculations. The new values look plausible, but the author can't verify them without deep knowledge of the API.
The vibe-coding paradox: the code compiles, the UI works, charts update—but data accuracy is in question. A developer without domain expertise can't properly validate the results.
Key Takeaways
- Vibe-coding in SwiftUI lets you create full-featured macOS apps in hours without knowing the language.
- Code recombination between projects is an effective technique for scaling.
- Main risk: inability to verify metrics without understanding the platform's APIs.
- Claude and GPT handle single-file SwiftUI projects equally well.
- Ideal for prototypes, but production requires expertise.
Implications for Middle/Senior Developers
For senior developers, vibe-coding is a rapid prototyping tool. SwiftUI lowers the entry barrier: it's declarative and keeps code compact.
That said, production apps need metric testing. For example, in Gpuer, values should be cross-checked against host_statistics64 or task_info from the Mach API, rather than relying on AI calculations.
In Bandwidther, traffic is monitored via getifaddrs and sysctl—standard calls, but without an audit, leaks or inaccuracies are possible.
— Editorial Team
No comments yet.