Building StillView 3.0: Raising the Quality Bar with Claude Code and Opus 4.5
Using Claude Code and Opus 4.5 as thinking partners helped me rebuild confidence, clarity, and quality in a growing macOS codebase.
Building StillView 3.0: How Claude Code and Opus 4.5 Raised the Bar on My Mac App
At some point, every side project crosses an invisible line.
It still works. Features keep shipping. Tests pass. But something feels off. Changes take longer. Small edits create surprising side effects. You hesitate before touching certain files, not because they are hard in a productive way, but because you are no longer confident you fully understand them.
That was StillView.
Not broken. Not failing. Just quietly accumulating risk.
StillView began as a simple macOS image viewer, built for speed and focus. Over time, convenience won. Magic numbers crept in. Placeholder implementations overstayed their welcome. Methods accumulated responsibilities because it was faster to add “one more thing” than to stop and rethink structure.
Nothing was catastrophic. But the codebase had crossed a threshold where intuition alone was no longer reliable.
StillView 3.0 was about resetting that trajectory.
The Problem Wasn’t Speed. It Was Confidence.
This was not about writing code faster.
The real issue was trust.
There were parts of the app where I could no longer say, with confidence, why something worked. Refactors succeeded but felt brittle. Bug fixes landed, followed by a quiet question: what else did this destabilize?
That uncertainty is expensive. It slows every future decision.
I needed a way to slow down without stalling, to reason more deliberately, and to surface design debt before it hardened further. That is where Claude Code and Opus 4.5 became interesting.
As StillView matured, I wanted to go beyond basic viewing and introduce lightweight AI insights that added real value, while staying true to the app’s performance and privacy principles, which led me to Apple’s on-device ResNet-50 model.
As StillView matured, I wanted to go beyond basic viewing and introduce lightweight AI insights that added real value, while staying true to the app’s performance and privacy principles, which led me to Apple’s on-device ResNet-50 model.
On-Device Intelligence with Apple’s ResNet-50
In StillView 3.0, that enrichment takes the form of on-device image classification, implemented using Apple’s ResNet-50 model.
Classification happens entirely on device. No images, metadata, or user data ever leave the machine. That was a non-negotiable requirement from day one.
Apple provides ResNet-50 models converted to Core ML, allowing them to run efficiently on the Neural Engine. The result is fast, low-latency inference that feels instantaneous, without the privacy or reliability tradeoffs of cloud-based calls.
This choice reflects a broader principle in StillView: push intelligence as close to the user as possible, maximize performance, and treat privacy as a first-class constraint, not a feature toggle.
Opus 4.5 as a Thinking Partner
Claude Code with Opus 4.5 did not behave like an autocomplete engine. It behaved like a meticulous senior engineer joining the project for the first time, skeptical of legacy decisions and unimpressed by historical convenience.
It questioned unclear abstractions. It flagged methods doing too much. It asked why responsibilities lived where they did.
More importantly, it forced articulation.
Any time I struggled to clearly justify a design decision, that friction usually pointed to a real problem. In that sense, Opus was not writing code for me. It was exposing where my reasoning lacked clarity.
The value was not speed.
It was pressure applied to my thinking.
A Necessary Disagreement: Enforcing My Own Standards
This partnership was not frictionless.
One recurring issue was that Opus did not automatically internalize my design and coding standards. These standards cover naming, architectural boundaries, and the principles I expect the codebase to honor.
I had to repeatedly prompt the model to apply them.
At first, this felt like a failure. Why should I restate rules I had already written down?
Then the lesson became obvious.
AI does not replace intent.
It amplifies it, but only when that intent is made explicit.
Once I consistently grounded Opus in those standards, the quality improved dramatically. Refactors aligned with the architecture. Suggestions respected constraints. The output felt native to the codebase, not imported from somewhere else.
Judgment still mattered.
Leadership still mattered.
Even in code.
What Changed in StillView 3.0
The result was not flashy.
StillView 3.0 is quieter than previous versions, by design.
- Responsibilities are explicit.
- Boundaries are sharper.
- Refactors are easier to reason about.
- Changes feel safer.
The app improved, but more importantly, my relationship with the codebase did. I trust it again.
The Real Takeaway
AI did not replace my judgment.
It demanded more of it.
Claude Code and Opus 4.5 worked best when treated as thinking partners, not tools. When I showed up with clear intent, explicit standards, and a willingness to be challenged, the quality bar rose naturally.
Clean code is not a style preference.
It is a confidence strategy.
And for StillView, that made all the difference.
Try StillView
If you are looking for a fast, focused image viewer for macOS, StillView is available on the [Apple App Store] (https://apps.apple.com/us/app/stillview-image-viewer/id6749210445?mt=12)
Share this post
Related Posts
How I Built a Production Notification System for TravelTimes in One Day with Claude Code
From 'users want commute alerts' to 1,800 lines of shipped, App Store-ready code in a single coding session. A deep dive into architecture, edge cases, and what AI-assisted iOS development actually looks like.
OpenClaw and the Rise of the 'Real' AI Assistant
An honest look at OpenClaw, the open-source AI personal assistant generating real excitement. What it does, what I learned running it, and why it matters for the future of enterprise AI.
The Open Source Paradox AI Created
Generative AI is accelerating open-source adoption while quietly breaking the economic models that sustain it. This is not a tooling problem. It’s a policy and incentive failure.