Lagerland Apps

Journal · · 8 min read · Updated

Why Mac-native is the right architecture for App Store screenshots, and why it's so rare

Most App Store screenshot tools on the market today are web-based. You drop your pre-release screenshots into someone else's browser, they get uploaded to someone else's servers and rendered there, and you download the result. That is a strange architecture for a product whose entire input is content that hasn't been announced. This post explains why Mac-native makes more sense, and why so few tools are built that way.

Looked at closely, the App Store screenshot tool category is a slightly absurd one.

Open the top three Google results for “App Store screenshot generator” and try the workflow. You drop your pre-release screenshots, which are often still under embargo, into someone else’s web browser. The browser uploads them to someone else’s servers. The rendering, the device framing, and the AI translation pass all happen on infrastructure the vendor owns. Then you download the finished files and upload them, by hand, to App Store Connect.

The workflow is perfectly normal. As an architecture it is odd for a tool whose entire input is content that hasn’t been announced yet. Once you notice that, you start to wonder why so few people build the obvious alternative: a native Mac app that does the same job while your project stays on your machine until you push it to Apple.

This post tries to answer both halves of that: why Mac-native is the better architecture in this category, and why so few tools are built that way.

What “Mac-native” actually means here

Here “Mac-native” means a few specific things, all of which come from running the workflow in a real macOS app and not in a browser:

  1. Rendering happens on your machine. When you place a screenshot on a 3D iPhone, your Mac renders the device and exports the finished image. There is no upload, no remote render farm, and no waiting in someone else’s queue, and editing and exporting work offline.

  2. Files stay on disk. Your raw screenshots, your localised text, and your project files all sit in ~/Documents or wherever you put them. The screenshot tool reads and writes locally, and nothing leaves the machine unless you start a step that needs the network.

  3. AI translation calls your provider directly. When you ask the tool to translate “Track every workout in one tap” into Japanese, it sends the text from your Mac to OpenAI, Anthropic, or Google, with your API key and billed to your account. The screenshot tool’s vendor never sees the request. The provider does, because it does the translating.

  4. App Store Connect uses your own API key. When you push the finished screenshots to App Store Connect, the app signs requests to Apple’s official API with your App Store Connect API key. The key lives in your Mac’s Keychain, and not in a SaaS vendor’s database.

That is what “native” buys you. Nostalgia for desktop software has nothing to do with it. It is one specific property of the architecture: your project stays on your machine, and data leaves only for the provider you chose or for Apple, when you ask.

Why it’s the right architecture for this category

Several reasons, roughly in order of how often they come up:

NDA exposure. This is the strongest case. If you’re shipping pre-release work for a client under a master services agreement, or pre-launch features for an embargoed announcement, “the screenshots passed through a third-party SaaS server” may well be a contractual problem you don’t want. A vendor policy that says “we delete uploads after rendering” is still only a policy, and it sits on the wrong side of your trust boundary. With local rendering the question doesn’t come up for the screenshots. If you translate with AI, check that your contract allows sending the caption text to your AI provider.

Your project is a file you keep. When the project is a file on your disk, you can reopen it next year, copy it to another Mac, or put it in version control. With a web tool, the project lives in the vendor’s account, on the vendor’s terms, for as long as you keep paying.

Speed and uptime. Local rendering doesn’t include an upload, a queue, and a download for every change, and it doesn’t depend on the vendor’s servers staying up tonight. When you change one caption the night before a release, that matters more than any benchmark.

Lower total cost. When the rendering happens locally, the natural pricing model is a one-time purchase. A Mac app distributed through the App Store has no server bills, so it can sell for a one-time price. A SaaS web app runs servers around the clock and pretty much needs a subscription. That is why Mockly is $12.99 once, with no subscription, while most web competitors charge monthly.

No account or login required. There is simply nothing for an account to authenticate against. The app stores nothing server-side because there is no server, and you don’t need to recover an account when you change machines, because there isn’t one. Less friction and better privacy both follow from “the rendering happens here.”

So why doesn’t everyone build it this way?

Because the business model decides the architecture, not the other way round.

A SaaS subscription needs three things: a recurring infrastructure cost to justify the recurring price, lock-in to keep churn down, and costs that grow more slowly than revenue as users are added. The web architecture provides all three. The render service is the recurring cost, the cloud project files you can’t take with you are the switching cost, and one more user costs very little in compute.

The Mac-native architecture provides none of them. The render is on the user’s machine, so there’s no recurring infrastructure cost to recoup. The project files are on the user’s disk, so there’s no lock-in; if anything it runs the other way, since users can mail their projects around. And the marginal cost per user is close to zero, so there’s no recurring revenue per active user to chase.

So the Mac-native architecture is better for the user and worse for the vendor. That is the usual pattern for indie software, and it is why SaaS dominates the category even where SaaS is the wrong shape for the product.

The SaaS competitors aren’t doing anything wrong. AppLaunchpad, Screenshots.pro, Screenshot Studio, and the others are reasonable products built under a reasonable business constraint. They optimise for a different goal, and that goal pushes them toward an architecture where your pre-release screenshots end up on someone else’s server.

What Mockly actually does differently

Mockly is the Mac-native version. Specifically:

  • 3D devices rendered on your Mac. Six 3D models (iPhone 17 Pro Max, iPad Pro 11-inch and 12.9-inch, MacBook Pro 16-inch, Apple Watch Ultra, and Apple Watch Series 11) that you turn on three axes and render Realistic, Clay, or UI Only. Artboard presets cover iPhone 6.9-inch and 6.5-inch, iPad, Mac, and Apple Watch, and Save Images writes PNG or HEIC at the artboard’s exact pixel size.

  • AI translation with your own API key. When you translate overlaid text into any of the 50 App Store languages Mockly lists, the text goes from your Mac directly to the provider you chose, OpenAI, Anthropic, or Google, with your key. No Lagerland server is in the path, because there is no Lagerland server. If you’d rather use a translator, export a CSV and import it back.

  • App Store Connect upload with your API key. Add your App Store Connect API key (Key ID, Issuer ID, and .p8 file), and Mockly lists your apps and versions, reads the display type from the artboard, and uploads the pages for the languages you pick. It replaces the screenshots already in that display type, so you check the set first. There are no manual browser uploads and no third party in between.

  • One-time $12.99, with no subscription. The architecture keeps the running costs near zero, and that is what makes a one-time price possible.

The price follows from the architecture.

A note on Fastlane

For many indie developers, the honest answer to “why use a GUI tool at all” is that Fastlane takes real work to set up. Fastlane snapshot and frameit are the de facto open-source standard for automated App Store screenshot generation, and for teams with mature CI/CD they’re the right answer. The setup curve is steep, though: a Snapfile, UI tests in Xcode that drive the screenshot states, then frameit to add device frames, then deliver to upload. First-time setup can take days.

For solo developers and small teams who ship new screenshots a few times a year, a GUI tool is usually the faster start. Mockly is a GUI alternative for those people, and Fastlane is the right answer for teams that have already paid the setup cost.

TL;DR

  • Most App Store screenshot tools are web-based: you drop screenshots into a browser, they’re processed on the vendor’s server, and you download the result.
  • For a workflow whose input is pre-release content under NDA, that’s a strange architecture, with a third party in the data path for no functional benefit.
  • Mac-native means rendering happens on your machine, AI translation calls your own provider directly with your key, and App Store Connect uploads use your own API key from the Keychain. Your project stays local until you translate or push to Apple.
  • Web apps dominate because the SaaS subscription business model works best when the work happens on the vendor’s infrastructure. User preference has little to do with it.
  • Mac-native is better for the user and worse for the vendor, which is why it’s rare.
  • Mockly is the Mac-native version: $12.99 once, with no subscription, and it needs neither a server nor an account.

Questions

Frequently asked

Why is almost every App Store screenshot tool a web app?
Because the SaaS subscription business model needs a server. If the work happens on the customer's machine, there's no recurring infrastructure cost to recover, and so no recurring fee to justify. A Mac app naturally sells as a one-time purchase, which earns less per user. Most companies in this category chose the web architecture because the business model needed it, even though it is the worse product architecture.
Is it actually a security problem if my screenshots go through a vendor server?
It depends on your NDA exposure. For updates to public apps it is probably not a real issue. Pre-release apps under embargo, apps for clients under a master services agreement, and features that haven't been announced are where 'the file was on a third-party server at some point' becomes a contractual problem. Even when vendors delete uploads after rendering, the policy is on their side of the trust boundary.
Doesn't Apple already provide everything I need in Xcode and ASC?
Apple provides the slots: App Store Connect lets you upload up to 10 screenshots per language per device size, and Xcode helps you take them. What Apple doesn't provide is a tool that puts your raw screenshots on a 3D device, translates the overlaid feature text, or uploads a whole multi-language set in one go. The screenshot category exists because Apple solves one half of the workflow and leaves the rest to third-party tools.
Why do 3D device models matter for App Store screenshots?
Because they let you turn the device. Many tools lay a flat device frame on top of a PNG, which only works straight on. With a real 3D model, you can turn the device on three axes, change the projection, and set the light, and the screen stays on the device at any angle. Mockly has six 3D models, from iPhone 17 Pro Max to Apple Watch Series 11, and renders each one Realistic, Clay, or UI Only.
Why does on-device AI translation matter when most apps just use a cloud API?
Practical privacy. If Mockly (or any other tool) calls a translation API directly from your Mac with your own API key, the request goes from your machine to the model provider, and the vendor of the screenshot tool never sees the content. If the screenshot tool is a SaaS web app, your overlaid text passes through its server before it reaches the model provider, which adds a third party to your data flow for no functional benefit. The translation itself still happens at the provider, so the text and your key do leave your Mac.

Mentioned in this post

Apps in this post

More from the journal

Read another post