Back to Blog

Why LicenseGuard Went Free, and Pre-flight Checklist Became the Flagship

We made LicenseGuard free and handed the flagship spot to Pre-flight Checklist. The real reason is a Jira API that doesn't do what it claims, not a pricing epiphany.

EvolRed Team··6 min read

Two weeks ago we shipped LicenseGuard 4.0.0 and rewrote the pitch: it's now free, every feature included, and it no longer deactivates accounts for you. In the same release cycle, Pre-flight Checklist became the sole featured app on evolred.com. Neither change made it into a blog post at the time. That was a mistake, because the reason behind both is more interesting than "we adjusted pricing."

What LicenseGuard used to promise

LicenseGuard's original pitch was end-to-end: find inactive Jira seats, show what they cost, and deactivate them for you from inside the app. That last part, the one-click deactivation, was the feature that justified charging for it. Everything up to that point was the easy half.

The deactivation flow depended on an Atlassian admin API behaving the way the documentation implied it would. It mostly did, until it didn't. Across a growing number of Jira Cloud instances we started seeing deactivation calls fail silently, get rate-limited in ways the docs didn't describe, or succeed against the API while leaving the account visibly active in the admin console for hours. We chased this for a release cycle assuming it was our bug. It wasn't. There is no Jira REST endpoint today that reliably deactivates and reactivates a user account with the guarantees a paid safety feature needs. The same seat-management actions a human clicking through the admin console can do without issue simply aren't exposed to apps with the same reliability.

The decision we didn't want to make

The options were: keep shipping the one-click deactivation and accept that it would occasionally fail in a way that erodes trust in exactly the kind of tool where trust is the entire product; build an unreliable workaround and hope nobody hit the edge case during a renewal conversation; or stop promising something we couldn't stand behind.

We took the third option, which meant admitting the paid feature didn't fully work. LicenseGuard 4.0.0 still does the hard part (the scan, the cost calculator, the risk flags for admins and users with open work, the activity log) and then hands you off to Atlassian's own admin console for the actual deactivation, a click closer than doing it by hand but still a hand-off rather than automation. Once the app could no longer do the thing we were charging for, charging for it stopped making sense. So it's free now, every feature included, no tier to unlock.

Why Pre-flight Checklist, and why now

Making LicenseGuard free left a gap: we needed a paid flagship that could carry the cross-install funnel, the thing every other listing on the Marketplace points back to. Pre-flight Checklist was the obvious pick, not because it's flashy but because it's boring in the way that sells. It stops incomplete issues moving forward, and the value is visible on day one without needing an admin to interpret a cost report. It was already stable, already had a clean growth line, and didn't depend on any admin API we don't fully trust.

So the featured flag moved. LicenseGuard stays in the portfolio as a genuinely useful free hook. It still finds money nobody was tracking, and that alone gets it installed. Pre-flight Checklist is now what we point new visitors toward first.

What we'd tell another vendor in the same spot

If a paid feature depends on a platform API that doesn't behave consistently, don't wait for a support ticket from a customer to find out. The failure mode we hit, silent inconsistency rather than a clean error, is the worst kind: it looks fine in testing and only shows up at scale, on the accounts your customers care most about not breaking.

The other lesson is smaller but sharper. Giving away the feature that no longer fully works is better for the relationship than leaving the price where it was and hoping nobody notices the seams. We expected the free move to read as a downgrade. Install growth since the change suggests customers read it the other way.


If you're maintaining an Atlassian app and want a second opinion on whether an admin API you depend on is as solid as the docs claim, that's a conversation we have often on our Atlassian work. Talk to us.