Changelog

Welcome to the changelog section of Freemius, here you'll find our weekly technical update notes. You can subscribe to all posts via Newsletter or follow us on Twitter to stay updated.

Weekly Report Email Layout Fix for Banner Rendering

We noticed a regression following last week’s deployment of the “Weekly Report Email”. In some email clients, the banner image URL was not rendering correctly.

We have identified the root cause and deployed a fix. Starting next week, you should see the email rendered with the correct layout across supported clients. We apologize for the inconvenience.

API Fix: Resolved 504 Errors and Significantly Improved Sites Version Filter Performance

We noticed an intermittent issue where querying Sites by version number was returning a 504 server error from the API. This typically surfaced when makers clicked the Downloaded link from the Deployment page.

Downloaded Link from the Deployment Page

After investigating, we identified the root cause and deployed a fix. Alongside this, we substantially optimized the underlying API request, resulting in a much faster experience. The Sites page now loads instantly when filtering by version, instead of occasionally timing out.

A Fresh, Clearer Weekly Reports Experience

This week we’re wrapping our email rebranding with a bang. So far, we completed makers’ emails, followed by transactional and customer-facing emails—bringing their default design up to date while preserving all customization options.

However, we left one email for last because we didn’t just want to redesign it; we wanted to rebuild it from the ground up. That email is the weekly reports email.

Freemius Weekly Reports Email

As you can see above, this email is sent to our makers every week, highlighting the exact number of sales, first-time payments, and renewals across different plans. This gives you quick, reliable insights into which plans, pricing structures, and billing cycles are performing best.

While rebranding this email, we took the opportunity to unify and enrich the entire experience while introducing a clearer, more consistent UI.

  • Data now includes a more detailed breakdown per plan and billing cycle, offering deeper visibility into weekly performance.
  • The CTA now takes you directly to that specific week’s report in the Developer Dashboard.
  • The email is now fully responsive, adapting seamlessly to both mobile and desktop layouts.

For our makers, we hope you’ll enjoy this grand finale to the email rebranding journey.

PS: If you’re not receiving the weekly report emails, please ensure the notification isn’t disabled in your email settings.

Enhancement to the type of Products supported by Freemius

This week we’re rolling out a major enhancement to the product types supported in Freemius. As we expanded the platform for SaaS and App makers, we introduced two broad categories — “SaaS” and “App.”

However, after receiving feedback from makers, it became clear that these generic labels weren’t always enough to guide them toward the right setup. For example, creators of Chrome extensions weren’t sure which type to pick, and we noticed cases where products like Figma plugins were accidentally categorized as WordPress plugins — which then required manual corrections.

New Product form in Freemius Developer Dashboard

To address this and make the product creation flow more intuitive, we’ve expanded the new product form and backend to support a richer set of categories and product types.

Starting with a Wider Category

Makers now begin by selecting a broad category — SaaS, Apps, WordPress Products, or Bundles.

New product form category

Starting with a clear category helps avoid mix-ups, such as confusing WordPress plugins with Figma plugins.

More Fine-Tuned Product Options

Next, when relevant, we ask what specific kind of product you’re building. For example, under “Apps & Software,” you can now choose:

  • App (Mobile or Desktop)
  • Plugin
  • Extension
  • Add-on

Various product type options

This lets makers quickly identify the exact product type. For instance, someone integrating a Chrome extension would naturally select “Extension.”

After creation, you’ll be taken directly to the Setup Checklist for onboarding.

Onboarding Setup Checklist page

With these improvements, we aim to make it clearer how flexible the platform truly is. No matter what kind of software you’re selling, Freemius has you covered.

Enhanced DKIM-Aware Email Customization Flow

Following last week’s deployment improving how DKIM-verified emails are handled, this week we’re rolling out additional refinements and addressing a few regressions identified during wider usage.

Better UX While Configuring Emails

As documented, if DKIM is not properly configured for the domain of your sending address, we automatically fall back to our generic [email protected] to prevent deliverability issues.

Otherwise the system first attempts to use your configured sender address, then your developer account email — both checked against DKIM — before ultimately falling back to [email protected].

This ensures that only authenticated domains are used for sending, and helps maintain high inbox placement.

Freemius Email Customization UI

However, the customization UI previously did not communicate this logic clearly, and placeholder text sometimes suggested a different behavior, causing confusion for some makers. This week we’ve improved the UX to clearly show which email will be used and why, including a link to relevant documentation for easy reference.

Other Fixes

  • We identified two legacy email address types that were no longer functional. These have now been removed from the Dashboard.
  • Fixed a regression where, if DKIM was not set, the reply-to address was occasionally populated incorrectly.
  • The “Don’t Reply” email will now correctly fall back to the configured “General System Address” before using the developer’s email.

Improved SDK Integration Check UX

We have rolled out a UX improvement to help makers better integrate Freemius with their WordPress products. The Freemius Developer Dashboard includes an “SDK Integration” page that outlines all the steps required to connect a product with our official WP SDK.

At the end of those steps, there is a Check button that verifies whether the integration is complete.

Freemius WP SDK Integration Steps

Previously, if the integration failed for any reason, the UI did not provide any hints about common causes. This often left makers guessing what might have gone wrong during setup.

With today’s deployment, we are improving this flow. When the integration check fails, the system now presents a dialog highlighting common mistakes along with actionable next steps. It also includes links to relevant documentation to help makers quickly diagnose and resolve the issue.

SDK Integration error dialog

We hope this update makes the integration experience smoother and significantly reduces the guesswork during setup.

Checkout Improvements for Renewals & Upgrades

This week we’re rolling out several improvements and bug fixes across the Checkout, especially around license renewals, upgrades, and payment-method updates. These updates aim to reduce friction for makers who generate Checkout links programmatically or rely on dynamic license flows.

plan_id no longer required for payment-method updates

Previously, updating a payment method required passing a plan_id. While this worked fine when using our API or the Developer Dashboard, generating these links directly in code often created confusion because it wasn’t clear where the plan_id should come from.

Payment method update UI in Freemius Checkout

To simplify the process, the Checkout can now infer the correct plan automatically. All you need is the license key, making the payment-method update flow far easier to integrate.

https://checkout.freemius.com/product/<productID>/?license_key=<licenseKey>&is_payment_method_update=true

Respecting the licenses parameter in License Update flows

The Checkout supports pre-loading a quota using the licenses parameter. For example, if your pricing includes tiers for 1000, 5000, and 10,000 units, you can preselect one like:

https://checkout.freemius.com/product/<productID>/plan/<planID>/licenses/5000/

Preselected license quantity in Freemius Checkout

However, this didn’t previously work during license-upgrade flows, where makers often rely on preselected quantities to guide users toward the correct tier. This has now been fixed so the parameter is consistently honored.

Additional Fixes

  • We identified an edge case where altering a license’s quota in the Developer Dashboard could cause the Checkout’s quota dropdown to display incorrect values. The UI glitch has been resolved.
  • The legacy Checkout has now been fully removed from our platform. Passing checkout_style=legacy will no longer have any effect and the new design will load by default.

New Design for the License & Download Recovery Tool

We’ve refreshed the design of our license-recovery mini-app — the small self-service tool you can share with customers to help them retrieve their license keys and download links using only their email address.

Freemius License Recovery Form

When a customer submits the form, Freemius automatically sends them an email on your behalf containing download links for their purchased products along with all associated license keys.

Freemius License Recovery Email

This lightweight recovery flow gives your buyers a quick way to help themselves, which can significantly reduce routine support tickets. To link users directly to the mini-app for a specific product, use the URL pattern below:

https://dashboard.freemius.com/license-recovery/{product_id}/{product_slug}/

You can find the product_id and product_slug in your Developer Dashboard. Here’s an example:

https://dashboard.freemius.com/license-recovery/11707/my-awesome-plugin/.

If you prefer offering a unified recovery page for your entire developer account, you can use:

https://dashboard.freemius.com/license-recovery/{developer_id}/

Your developer_id is available on your Profile page.

Checkout Enhancements: Localization Fixes & Cart Stability Updates

This week we are bringing some small enhancements to our Checkout.

Fixed Coupon Discount Label Bug

We noticed an issue in the coupon discount label where absolute-value coupons would sometimes display an incorrect amount when the selected currency wasn’t USD. Since many of our makers operate in multiple currencies, this inconsistency created confusion during checkout.

In addition, the label wasn’t properly applying translation and number localization, which made the UI feel inconsistent for non-English locales.

Freemius Coupon Discount

With today’s deployment, both issues have been fixed so that currency handling and localized formatting work as expected.

Fixed Race Condition Bug in the Cart UI

In some rare cases, a race condition between parallel API calls caused the cart functionality to break—either failing to save or unintentionally disabling the cart when users interacted with the toggle.

Freemius Checkout cart toggle button

We’ve resolved this race condition to ensure the cart state always updates reliably.

Developer Dashboard Update – Improved Checkout Link Generation, Cleaner UI & Bug Fixes

This week we’re rolling out several meaningful UI/UX improvements and a few bug fixes to the Developer Dashboard.

Smarter Get Checkout Button

We’ve reorganized the links under the “Get Checkout” button on the Plans page, making it much easier to grab your no-code checkout links.

Get Checkout button UX improvement

Sandbox and production links are now grouped together and include a dedicated copy button for convenience. You can still click them to open in a new tab, just like before.

JS-Based Sandbox Example

Under the same “Get Checkout” menu, selecting “Overlay Code” now shows a JS-based sandbox example powered by our official JS SDK.

Checkout JS based sandbox example

This helps SaaS makers quickly spin up a local integration environment without digging through documentation.

Enhanced Empty State for the Plans Page

The Plans page now has a more thoughtful empty state when no plans exist.

Empty plan page

Instead of a plain “Add Plan” button, we now show a clearer explanation of what a plan is and why you might create one, along with a link to helpful documentation for first-time makers.

Other Notable Fixes

  • Added a tooltip explaining what the Personal Success Manager support feature covers for makers.
  • Cleaned up the license table layout for SaaS products.
  • Fixed a small UI glitch in the sidebar onboarding video and improved the overall responsiveness.
  • Resolved an edge case where a plan wasn’t being saved for newly created products.
  • Fixed a visual glitch on the “Emails” page under Store.
  • Improved the confirmation dialog when deleting a version from the deployment section.
  • Fixed layout overflow on the “Cancel Trial” button under “Site.”

Improved License Activation API with Full Bundle Support

We’ve extended our license activation API to fully support bundle licenses — an important improvement for makers building their own integrations outside the official WordPress SDK.

Previously, activating a bundle license through the product-level activation endpoints wasn’t supported. With this update, any bundle-issued license key will now activate correctly, when hitting a product-specific endpoint such as:

Freemius license activation API

This ensures custom apps, or LiteSDK-powered WordPress plugins all get consistent activation behavior.

If you’re implementing activation outside the WP SDK, here are helpful resources:

  1. WP LiteSDK POC — For building custom WordPress integrations without the full SDK.
  2. API Documentation — For Apps, or any custom implementation.

Fix for Rare License Migration Edge Case in the WP SDK

Our WP SDK includes a built-in mechanism to detect when a site is being cloned or moved to a new URL. When that happens, it presents several options to help users properly handle the migration — for example, marking the site as a staging copy or fully migrating it to the new domain.

Freemius WP SDK Clone Resolution Notice

We identified an edge case in the “Migrate License” flow where, in very rare situations, the system migrated a license without running all the expected validation checks. This included skipping quota validation or overlooking URL restrictions enforced by the license firewall.

The issue has now been fully resolved on our infrastructure side, ensuring all migrations go through the correct validation path. No update to the WP SDK is required on your end.

Customer Portal UI & Customization Fixes

This week we’re rolling out a few minor quality-of-life improvements to our Customer Portal.

  • We refined the error UI for better readability, and fixed an issue where some links appeared with an incorrect color.
  • We fixed a bug where custom CSS wasn’t updating reliably after makers changed their styling.

Customer Portal improved error UI

Load more