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.

Deployment Now Ensures is_org_compliant Flag Is Present

In last week we released an update following a compliance requirement from the wp.org plugin review team. The SDK integration snippet generated by the Developer Dashboard will now always have the is_org_compliant flag present (even though implicitly it has a true value).

This week we are releasing another update where our deployment mechanism will inspect the codebase itself and automatically add the flag if it is missing. This change ensures existing products remain compliant, even if the integration snippet was not manually updated.

Improvements to Email Customization UI & Placement

As a follow-up to the recently released email customization feature, this week we are deploying the following enhancements:

  1. The email section no longer requires a title to be present, giving you more flexibility when adding concise instructions or contextual notes.
  2. The custom section now appears earlier in the email, with a UI that feels more naturally integrated into the overall email layout.

You can head to Emails → Customization to start customizing it right away.

Email customization in Freemius Developer Dashboard

We have also further enhanced the UI/UX of the Developer Dashboard around this feature:

  1. The preview UI is now snappier and more compact.
  2. A separate Styling tab has been introduced for email branding customization, reducing clutter under the single Customization tab.

Customer Portal UI Consistency & Styling Improvements

This week we are rolling out follow-ups addressing several UI glitches and styling enhancements in the Customer Portal.

Customer Portal - Freemius

These changes are primarily at the infrastructure level and touch many UI components across the portal. As a result, you should now experience better visual consistency, especially when applying custom themes using CSS variables. Below are the notable improvements:

  1. All icons are now rendered as inline SVGs, allowing your custom CSS to style them more reliably.
  2. Several minor alignment issues have been resolved based on feedback from our makers.
  3. We audited and replaced all remaining hard-coded color values with CSS variables to ensure custom styling works more predictably.

In addition to the UI fixed, we also fixed an issue where the portal could remain on a stale page after login. For example, if a store sells only SaaS products (and has no Websites page), users will now be correctly redirected to the Licenses page.

Developer Dashboard Improvements: Templates, Higher Bulk Pricing & Webhooks

We have rolled out the following quality-of-life improvements to the Developer Dashboard.

Template Under WordPress Products

We realized in the last release we accidentally removed the “Template” type from the WordPress category. Many makers use Freemius to sell WordPress-related templates (for example, page builder templates or customization templates for plugins), so this made it harder to locate the correct product type during setup.

Templates inside WordPress category

To address this, the Template type has now been added back under the WordPress Products category in the new product form.

Higher Bulk Pricing Support

Based on feedback from makers selling large credit bundles, we have increased the quota limit of pricing to support values up to 100,000,000 (100 million).

Bulk pricing supporting 100 million

This makes it easier to configure plans for products that operate with high-volume credit systems.

More Exposure to Webhooks

To improve discoverability, webhooks are now available as a top-level menu item instead of being nested under “Integration”.

Webhook as top level menu

We received consistent feedback from SaaS & App makers that webhooks are a core part of the integration. Promoting it to a primary navigation item makes the integration workflow more direct and aligned with how modern SaaS products are built.

Checkout UX Improvements for SaaS & App Makers

This week we are rolling out some small but important enhancements to our Checkout, aimed at delivering a better experience to your buyers, especially for SaaS and App makers.

Better Title for Plan Update

Our Checkout previously showed the title “License Update” when buyers tried to upgrade or downgrade their subscription. While this makes sense for WordPress products, we understood that for SaaS & App products it could be confusing. To make the flow more intuitive, we now identify such cases and display the title “Plan update” instead.

Checkout showing plan update

Similarly, for manual renewals the Checkout will now display “Subscription renewal” instead of “License renewal”, aligning the terminology with how SaaS and App makers typically position their offerings.

Manual subscription renewal through Freemius Checkout

Back Button Hides Automatically

To further streamline the Checkout experience, when buyers reach the Review step (and about to pay), the back button will no longer be shown.

Freemius Checkout in Review state

This reduces confusion where two left arrows were previously visible on the left side of the screen—one to return to the billing form and another to navigate back to the product’s website.

Better Fallback for the Billing Cycle Selector

Recently, we published an update where our Checkout automatically detects if there is no annual discount and, in such cases, falls back to displaying the billing cycle selector instead of the upsell UI. At that time, the billing cycle selector defaulted to responsive_list mode.

Checkout billing cycle selector

After reviewing feedback from makers with all three billing cycles configured, we are now defaulting the selector to dropdown mode, as it consumes less vertical space and keeps the layout more compact.

Cleaner Purchase Email for Licenses

We received feedback that the information shown in purchase emails about multi-unit licenses could be confusing for buyers. For example, if someone purchased a 5-Device license, the email previously displayed this as “Activations: 0 out of 5 devices”. This terminology is not always familiar outside the WordPress ecosystem. Additionally, in many SaaS and App scenarios, license usage is managed directly by the product, so Freemius may not have visibility into actual usage.

License information in Freemius Transactional Emails

To make this clearer and more universally applicable, the email will now display a simplified label such as “License Type: 5 devices”, which better aligns with different product types and usage models.

Support For Multiple Domains When Embedding The Customer Portal

This week we are releasing a new feature to support embedding our Customer Portal on more than one domain. Freemius allows you to embed the Customer Portal into your own WordPress website to provide a more seamless experience for your buyers. However, for security purposes, the portal will not load unless it has been embedded on the specified domain.

We understood this could be limiting in real-world workflows. Especially when testing the integration locally or in a staging environment, the URL is often different, making it impossible to see the portal in action.

To address this, you can now go to the Settings page of your Store and use the newly introduced Additional Whitelisted Domains configuration.

Whitelisted domains for customer portal embedding

You can add as many additional domains or hostnames as needed, and the Customer Portal will load securely on those domains without any issues.

WordPress.org Compliant Snippet Flag Now Enabled by Default

As per the updated guidelines from the wordpress.org review team, we are updating the integration snippet our system generates for the Freemius WP SDK. Previously, the is_org_compliant flag was only present in the snippet if it was explicitly set to false. Our SDK always treats the integration as WordPress.org compliant.

With the latest compliance update, the flag is now always present, defaulting to true.

Freemius WP SDK Integration Snippet

For new products, this change ensures your first submission won’t get rejected due to a missing compliance flag. For existing products, we recommend making this manual change in your integration snippet. We will also follow up soon with an update to our deployment mechanism so the flag is automatically added to your integration snippet in newly generated versions.

Refinements and Layout Fixes in the Customer Portal

This week we are rolling out a set of fixes addressing UI glitches in our Customer Portal.

Freemius Customer Portal

  1. We identified some elements that were still using legacy hard-coded colors, which could cause inconsistencies across themes. These have now been updated to use the correct design tokens.
  2. We reviewed and refined all tables to ensure consistent spacing and alignment, even for products with shorter titles.
  3. We also resolved a few minor layout glitches to improve overall visual stability and polish.

Read our documentation if you want to learn more about our Customer Portal.

Analytics Performance Improvements for Large Products

We noticed an issue in our Analytics pages where, for some large products, requests could time out due to high data volume. After identifying the root cause, we have deployed the first round of performance optimizations to improve response times and stability.

Freemius Analytics Page

If you continue to experience any slowdown on these pages, please reach out to our support team and let us know.

Customize Key Transactional Emails with Custom Content

This week we are releasing a feature requested by many of our makers. Freemius sends various transactional emails to your customers. For example, when someone purchases a subscription (or lifetime access), they receive an email with all the plan and pricing details. Similarly, customers are notified when subscriptions are renewed.

So far, all these emails were fully controlled by Freemius. While they are already fine-tuned and optimized for your buyers, we understood that having some level of customization can significantly improve your software integration and onboarding experience. For example:

  1. A SaaS or App product can include a short introduction and links to help users get started immediately.
  2. A WordPress product may include or link to usage instructions or next steps after activation.

With this in mind, we are deploying a feature this week that lets you do exactly that. You can now add a custom section to the following emails:

  1. New Subscription Email
  2. New Lifetime Purchase Email
  3. Subscription Renewal Email

Adding Custom Content to the Emails

Simply go to EmailsCustomization, where you will find a new section named Specific Email Customization.

Freemius Developer Dashboard for Email Customization

From there, select the email you want to customize and add a new section by defining its title and content.

The content area supports Markdown for basic formatting, and you can include custom links as needed. A live preview of the email is available below the form so you can verify exactly how it will appear to your buyers.

Email Preview with Custom Section

We believe this will help you better align transactional emails with your product’s onboarding and user journey. If you have any feedback, please let us know via the feature request board.

Resolved Regression in Review Submission Links

Freemius has a built-in review system that allows your verified customers to leave a review for your product. You can choose to display those reviews automatically in the Checkout, on the pricing page, and you can also use the API to show them on your own website or application.

Freemius Review Form

Reviews are requested automatically a few days after the purchase. You can also go to the Developer Dashboard to generate a secure URL that allows your customers to leave a review directly.

Generate Review URL from the Developer Dashboard

We identified a regression where the review URL was not functioning correctly and was incorrectly redirecting to the Freemius homepage. The root cause has been resolved and the fix has been deployed.

One-Click Customer Portal Login via API

This week we’re releasing a new capability that lets you generate auto-login links to the Customer Portal for your buyers. We understand that in today’s SaaS & App marketplace, development speed is critical, so we aim to offload as much infrastructure and UX complexity from you as possible. As part of that, Freemius already provides a hosted Customer Portal where buyers can manage subscriptions, purchases, and even join the affiliate program.

Until now, there was no way to generate login links that automatically authenticated customers. Buyers always had to enter their Freemius password to access the portal. With today’s rollout, this is no longer required. You can now make an API call to generate a secure magic link and redirect your buyers directly into the Customer Portal without any manual login step.

Generating the Magic Login Link

You need to make an API call to the following endpoint using Bearer Token authentication:

POST https://api.freemius.com/v1/products/{product_id}/portal/login.json
{"email": "[email protected]"}

The response will be a JSON object with the following properties:

  • link – The magic login link
  • token – A login token for manual or more advanced integrations

Portal login API call

Once generated, you should immediately redirect your customer to the link, and they will be automatically logged in to the Customer Portal.

Logged in Customer Portal

More detailed documentation will follow shortly. Until then, please note that you can generate the login link using either:

  1. email – If you don’t store the Freemius User ID
  2. id – If you do store it, which is the preferred approach

Also note that the link generated by the API call is short-lived and expires after 5 minutes. You should only generate it when the customer explicitly requests access to the portal, and then redirect them immediately.

Redesigned Cart Recovery Unsubscribe Page

Freemius has a built-in cart recovery system that sends reminder emails to potential buyers who didn’t complete their purchase. Each of these emails includes an unsubscribe link, allowing recipients to opt out of future reminders at any time. Until now, the unsubscribe page behind this flow was using an outdated design.

Cart recovery form redesign

This week, we rolled out a complete redesign of the unsubscribe page. The refreshed layout brings it in line with our current visual language, making the opt-out experience clearer, more modern, and more consistent with the rest of the Freemius ecosystem.

Smarter Billing Cycle Selection and Coupon Fixes in Checkout

This week we have updated the Checkout with the following improvements and bug fixes:

Smarter Billing Cycle Selector UI

Our Checkout uses a set of Upsell UI components by default. One of them automatically shows up whenever there are billing-cycle-related discounts, such as annual-over-monthly pricing. The same UI is also used by your customers to toggle between billing cycles.

Checkout monthly switch UI

However, when there are no such discounts, we recommend using the explicit billing cycle selector UI by configuring it through the Checkout Config. While this works as expected, we understand that this behavior can be a bit confusing for new makers joining the platform—especially those selling SaaS & Apps, where billing-cycle discounts are not very common. In such cases, makers testing the Checkout would see the annual plan auto-selected, without a clear way to switch to a monthly billing cycle.

To address this, we’ve made the Checkout smarter by automatically detecting these scenarios and switching to the billing cycle selector UI when appropriate.

Checkout Billing Cycle Selector UI

Please note that in sandbox mode, a hint will also pop up to guide makers toward configuring discounts if they prefer to use the upsell UI instead. All other behaviors remain unchanged. For example, if you explicitly load the Checkout with an annual billing cycle, the option to switch to monthly will not be shown, preventing buyers from changing the intended configuration.

Fixed Non-USD Flat Discount Coupon

We identified a recent regression where applying a non-USD flat discount coupon did not work correctly in certain edge cases, particularly in some PayPal flows.

Checkout Coupon UI

This issue has been identified and fixed.

Clearer Templates & Kits and Small Dashboard Improvements

This week we are releasing some quality-of-life improvements to our Developer Dashboard app.

Better Visibility of Templates & Kits

Freemius supports selling templates and kits out of the box. We also support uploading ZIP files and distributing them to your buyers.

However, we realized that this capability was not very visible when creating a new product, as it was previously placed under the “WordPress Products” category. From a UX perspective, this made it easy to miss.

To address this, we’ve improved the new product creation flow so the Templates & Kits option is now visible right in the first step.

Template Kits in the New Product Form

We are also rolling out improved documentation shortly to better explain how to properly use this category.

Other Improvements

  • Removed some unneeded API calls made by the Developer Dashboard as part of general housekeeping.
  • On the Sites page, the Change Plan button is now disabled when a product has only one paid plan, along with a clear message explaining why. In such cases, changing plans for sites is not possible.
Load more