Building WolfeWriter · July 9, 2026

What Happens When a Paid Mac App Becomes Freemium

Changing WolfeWriter from a paid download to a free app with Wolfe Pro required more than changing a price tag.

Changing the price of a Mac app sounds like a storefront task. Set the app to free, add an in-app purchase, upload a new build, and explain the change in the release notes. In practice, the price is only the visible part. The application also has to understand who already paid, what a free user can try, what remains stored while locked, and what happens when StoreKit takes a little longer than the interface expects.

For WolfeWriter, the move became free download plus a one-time Wolfe Pro purchase. The free experience needed to be real rather than a hollow preview. Local writing, the library, and the manuscript had to remain useful. Pro intelligence could work out of the box for the first 7,500 words, so a writer could understand the product before deciding whether the whole-book features were worth paying for. After that boundary, extraction, annotation, observation, graph work, and provider-backed intelligence need a clear Wolfe Pro decision instead of a confusing partial failure.

The entitlement model had to be a single source of truth. A button should not decide that someone is Pro while a background worker decides they are on trial. The app needs one policy that understands the distribution channel, the verified Wolfe Pro transaction, the original paid app purchase, and the manuscript scope. The user interface, provider runtime, extraction coordinator, and annotation projection all need to ask the same policy.

Existing customers make the migration more sensitive. People who bought an earlier paid version should not be asked to buy the app again because the business model changed. That means checking the verified App Transaction and recognizing qualifying original app versions before applying the free trial. A redeemed Wolfe Pro code follows the same verified StoreKit entitlement path as a normal purchase. The application should not invent a second local database of promotional ownership that can drift away from Apple’s record.

Restore is also a user experience, not just an API call. The app can inspect current entitlements first, then perform the user-requested sync and check again. If an older paid purchase is the reason the person should be unlocked, the legacy app transaction still needs to be considered even when IAP synchronization fails. Authentication prompts should happen only when the user explicitly chooses Restore Purchases, not because the app happened to launch.

Locking must not destroy data. A user who configured a provider before the trial ended should not lose the saved settings or Keychain credential. The app should prevent use while locked, preserve the configuration, and rehydrate the provider runtime after a verified entitlement appears. The same principle applies to observations, formatting, plans, and project data. Entitlement changes access; they do not rewrite the book.

This is where a freemium model can expose architectural shortcuts. If a worker checks access only when it starts, it may finish after the manuscript crosses the trial boundary and project an answer that is no longer allowed. If the provider page remains editable while provider execution is locked, the interface makes a promise the policy cannot keep. If the old paid path is treated as a special button instead of an entitlement source, restoration becomes fragile.

The change is now part of WolfeWriter’s product rather than an App Store setting. Free users need a useful first experience, paid users need an unambiguous unlock, and older customers need their purchase respected. The cleanest implementation is not the one with the most upgrade screens. It is the one where the same entitlement decision is enforced everywhere and the writer’s local project remains intact whichever decision it returns.

There is a temptation in a transition like this to make the free version feel deliberately incomplete. That may create a short-term reason to upgrade, but it also makes it harder for a writer to understand what the product is for. A fair trial should let someone write, import a book, see the local workflow, and experience the kind of intelligence the paid version extends. The boundary should be clear because the whole-book workflow has value, not because ordinary writing has been made uncomfortable.

The change also has to be communicated in the language of the writer rather than the language of the implementation. “Entitlement reconciliation” is an engineering task. “Your old purchase still unlocks Wolfe Pro” is the thing a customer needs to know. The same applies to the 7,500-word trial: it should be explained as a usable first experience with a clear point where whole-book intelligence requires Pro, not as a mysterious error that appears after a background job stops.

The migration is a reminder that pricing is part of product architecture. It reaches into onboarding, settings, background work, support messages, release notes, and the data model. A good transition makes those surfaces agree. The writer should not have to understand why one screen says trial while another says unavailable, or why a purchase restored on one launch disappears on the next. Clear rules are kinder than clever exceptions, especially when the thing being protected is someone’s book.

That is the standard we are using for the current WolfeWriter release: the manuscript is free to keep, the intelligence boundary is explicit, and a purchase should unlock the whole book rather than change how the book is stored. The storefront can change in an afternoon; the trust behind it takes longer to build.

Keep reading, keep writing

The book should remain the place where the work happens.

WolfeWriter is a native Mac workspace for fiction writers who want story context and AI help without handing over the manuscript.

Free to start on the Mac App Store Write, plan, and keep your project local; Pro intelligence is available for your first 7,500 words Requires macOS 26 or later on an Apple silicon Mac.

Download on the App Store