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.

Customer Portal Redesigned with a Fresh Look and Improved UX

This week we’ve hit yet another milestone in our ongoing rebranding project — the Customer Portal is now fully rebranded with several UX improvements.

Freemius Customer Portal Rebranded

Let’s go through some of the key updates:

Websites Page Improvement

On the main Websites page, we group and display all the websites where buyers have activated any Freemius-powered product. Each website may have one or more products associated with it.

Website pages improvement in the Customer Portal

Previously, it wasn’t very clear that you could click and navigate individual items inside the list. We’ve added a folder icon and removed the right-side chevron to make the navigation more intuitive.

Better UI Positioning

Across the app, we conducted UX audits and made numerous layout adjustments to position key UI elements where users expect them.

For example, in the Downloads page, the download button was previously placed at the end, often requiring a horizontal scroll on smaller screens to access it.

Better UI positioning

Now, the button appears just after the product title, bringing important actions closer to your fingertips.

This is just one of many small but impactful improvements throughout the portal.

Better Table Layout

We revamped the table design across the Customer Portal for better usability and consistency.

Table layout improvement

  1. Tables now better adapt to the available screen space.
  2. Tables that open a window or side panel are now clearly marked with a chevron.
  3. Labels and action buttons have been standardized to make their purpose clear. For instance, expired licenses are now highlighted in red for quick visibility.

FAQ Page Redesigned

The FAQ page has been restructured into two columns and organized by categories, making it easier to browse and find what you’re looking for.

Redesigned FAQ page

With this new layout, finding answers to your questions is now faster and more intuitive.

Other Notable Improvements

  1. Menu items have been renamed for clarity and industry alignment—for example, “Subscriptions” replaces “Renewals & Billings,” and “Invoices” replaces “Order History.”
  2. Breadcrumbs and other navigation elements have been refreshed, fixing several old bugs.
  3. If you use custom CSS for the Customer Portal, the initial flash of unbranded UI will no longer appear.
  4. All new brand-related changes continue to meet accessibility standards.

How to Upgrade to the New Design

We’ve released the newly rebranded Customer Portal under the subdomain https://customers.freemius.com. For most makers still using the old domain https://users.freemius.com, we’ve set up automatic redirects to ensure a seamless transition.

However, if you’re using custom CSS to brand your portal, we’ve preserved your old design since the latest CSS and markup changes are breaking in nature.

To help you migrate smoothly, your existing CSS has been moved under a new setting called “Legacy Customer Portal CSS Stylesheet”, leaving the original configuration empty. You can view this update in your Developer Dashboard under Store Settings.

Customer Portal CSS Configuration

To migrate to the new Customer Portal, follow these steps:

  1. Update your CSS according to the new customization guidelines.
  2. Save your configuration in the Developer Dashboard.
  3. Follow our migration guide to complete the upgrade.

Fixed Missing Quota Labels in Rebranded System Emails

We noticed a minor regression in some of our system emails sent to makers, where the label or type of quota associated with a license was missing.

For instance, in the after-purchase email, while the plan title appeared correctly under the License section, the corresponding quota label was omitted—causing a bit of confusion for recipients.

License information from Freemius emails

This issue has now been fixed. The purchased quota is once again properly displayed beside the plan name in all relevant system emails.

Fixed Typo and Formatting in WP SDK Integration Snippets

We noticed a minor issue in the WP SDK Integration code generated by our Developer Dashboard. These integration snippets are simple copy-paste blocks that you can use to integrate your WordPress Plugin or Theme with the Freemius WP SDK in minutes.

The issue involved a small typo and a formatting glitch.

WordPress SDK Integration code snippet

We’ve now fixed the typo and adjusted the formatting to ensure the snippet is error-free and follows WordPress’ standard code styling.

Simplified Referral Status in Affiliates Section

This week we’re rolling out improvements to the affiliates section in the Developer Dashboard.

Our system automatically calculates affiliate payouts and balances every month. Once you mark a payout as “paid,” you no longer need to manually adjust the status of individual referrals.

Marking affiliate payout as paid

Previously, there used to be an option under the “Referrals” section to manually mark each referral as “Paid.” This was a remnant of the older manual payout system and is no longer needed. However, since the UI element remained, it occasionally caused confusion among makers.

To make things clearer and prevent mistakes, we’ve simplified the “Status” column in the Referrals table to only show whether a referral is pending or paid. This status is now handled entirely by the system and can no longer be updated manually.

Improved Affiliate Referral UI

You can still click the three-dot menu to “Reject” referrals for suspicious activities, just like before. However, this action will only work if the referral hasn’t yet been included in the upcoming payout cycle.

Fix: Embedded Pricing Page Event Not Triggering

WP SDK Pricing Page

When someone visits the embedded pricing page from our WordPress SDK, our system triggers a pricing.visit event. This event can be used to automate marketing campaigns.

Logged pricing.visit webhook event

However, we noticed that due to a regression in our system, this event was no longer being triggered for some time. We have identified the issue and rolled out a fix to restore the event’s functionality.

No SDK update is required on your end, as the fix has been applied directly to our API.

Release: Freemius JavaScript SDK & React Starter Kit

We understand that most MoR or payment providers stop their integration guide at “now you can charge your customers.” That leaves you, the maker, to figure out all the glue code for:

  1. Checkout
  2. Purchase processing
  3. Validation and storage of purchases
  4. Entitlement logic
  5. Syncing licenses or entitlements with outside changes
  6. Creating Customer Portals for self-management of billing and purchases

At Freemius, we care about your time. That’s why we set out to create not just another “Billing SDK,” but a solution that provides patterns and components to solve these problems end-to-end.

With that in mind, today we’re shipping a major unlock: our JavaScript SDK and React Starter Kit.

Paywall provided by the Freemius JS SDK & React Starter Kit

By using our SDKs and Starter Kits, you’ll get all of this integration for free, so you can focus on what truly matters—the business logic of your product. As we like to say: “Your product shouldn’t be blocked by subscription plumbing. Now it isn’t.”

Freemius Customer Portal provided by the JS SDK and the React Starter Kit

Please check our official documentation for the full details. Below are some highlights.

Backend JS/TS SDK

  • Fully typed API client (licenses, subscriptions, users, payments, pricing).
  • Checkout builder: generate overlay options & hosted links (with sandbox & redirect verification).
  • Purchase + entitlement helpers (retrievePurchaseData, entitlement.getActive, upgrade authorization).
  • Strongly typed webhook listener + request processors (Fetch runtimes, Node HTTP, serverless, edge).
  • Signature verification & secure redirect handling (no copy-pasting HMAC code).
  • Runtime flexible: Node.js, Bun, Deno.

React Starter Kit

  • Pre-built UI: Pricing Table, Overlay Checkout trigger, Feature Gating helpers (Paywalls), and a fully working Customer Portal.
  • Seamless server → client handoff: serialized checkout + purchase data patterns.

Our system works with all modern JavaScript frameworks like Next.js, Nuxt, Hono, and more.

If you’re just starting out, we highly recommend using our SDK as your foundation. If you already have a working integration, try it out in a side branch and replace your existing “duct-tape” billing glue. Tell us what shaved the most time off your build—and what’s still rough.

Support for Custom Bulk Pricing, Smarter Pricing UI, and API Page Improvements

This week we are releasing a set of UI/UX enhancements to our Developer Dashboard. These updates are tailored for SaaS makers but also bring benefits to our WordPress makers community, making configuration and integration smoother across the board.

Smarter Pricing UI

We refined the pricing input UI to be smarter, clearer, and adaptive to how you’re configuring your product.

For example, if you are configuring only a single pricing inside a plan, the UI will simply ask you to configure the billing cycles for that pricing.

Simple pricing UI in Freemius Developer Dashboard

However, if you are configuring multiple bulk units (like selling credits), the UI will adjust accordingly, as shown in the screenshot below.

Bulk Pricing UI in the Freemius Developer Dashboard

Support for Custom Bulk Pricing

Previously, our system was limited to a preset list of unit options for creating bulk pricing.

Custom pricing creation mode in Freemius Dashboard

Now we’ve introduced a new option called Custom Unit... (where the term Unit represents your selling unit and is dynamic based on your configuration), which lets you define the exact number of units you want for bulk pricing. Simply click on the button and you will be presented a new dialog from where you can configure the pricing.

Custom configuration for bulk selling units in Freemius Developer Dashboard

This is especially useful for SaaS products selling consumable units such as credits or tokens.

Plan Description is Back for the React Starter Kit

With the release of the React Starter Kit, the Plan Description section is now back under plans.

Configure plan description from the Freemius Developer Dashboard

If you configure the description, it will show up in the Pricing Data API endpoint as well as be rendered by the React Starter Kit.

React Starter Kit Pricing Table UI

Improved API & Keys Page

With the release of our JS SDK, we’ve also improved the API & Keys page under Settings.

Now, all the keys you need to communicate with Freemius are consolidated into a single page.

We’ve also added improved usage examples with ready-to-use, copy-pastable snippets for getting started quickly with our SDKs.

Enhancements to API Documentation, Schema & Webhooks

This week, along with the release of our new JS SDK, we are rolling out several important updates to our API Documentation, OpenAPI Schema, and webhook events.

  1. The pricing endpoint now includes details about the selling unit. This makes it easier to render accurate information inside custom pricing tables.
  2. The subscription cancellation endpoint now properly supports an array of cancellation reasons. This allows you to capture multiple reasons from customers, and Freemius will notify you via email.
  3. The subscriptions endpoint has a new enrich_with_cancellation_discounts flag. When used, subscriptions will include a has_subscription_cancellation_discount property, helping you determine if a cancellation discount has already been applied. You can use this to show a custom UI during the cancellation flow (see our React Starter Kit for examples).
  4. The license.extended webhook now includes a data.is_renewal property, indicating whether the license extension happened due to a subscription renewal. You can hook to this event to provide some entitlement per billing cycle.

Improved Clarity for Customer Portal Temporary Passwords

When a user buys a Freemius powered product for the first time, we create an account for them with a temporary password so they can manage their purchases through our self-service Customer Portal.

To simplify the login process, we also send this temporary password via email. Once they log in, they are required to change it.

Previously, the label was shown as “Password,” which caused some confusion among customers and security researchers who thought it indicated a potential leak.

Temporary Password for Freemius Customer Portal

To avoid misunderstandings, the label has now been updated to “Temporary password,” making its purpose clear.

Bug Fix in License Table Showing Duplicate Subscriptions

We noticed a bug in our License table where, in some cases, duplicate rows were being rendered. This happened when a license had multiple canceled or inactive subscriptions from the past. With Freemius, it’s possible for a license to go through multiple subscriptions during its lifecycle—for example, when customers upgrade plans or change payment methods.

License table in Freemius Developer Dashboard

However, showing duplicate licenses created confusion for makers. We’ve rolled out a fix: the table will now display each license only once and correctly associate it with the latest subscription.

Freemius Documentation Website: Freshly Redesigned and Live

Did you see it already? Our freshly designed and fully revamped documentation website is now live! After about a month in the making, we’re super excited to finally share it with our community.

New Documentation Website - Freemius

We’ve made several improvements by tearing down the old site and rebuilding it from scratch with modern technology. The new site is also fully redesigned to align with our updated branding.

We’ll soon publish a blog post diving into the tech behind the build, but for now, here’s what you can start using right away:

Smarter & Real-Time Search

Search now feels instant—results load immediately and are much more accurate compared to the old system.

Better Search in Freemius Docs

Restructured Categories

We re-triaged our documentation and restructured categories and guides to make content easier to discover and more relevant to what you’re looking for.

Restructured Categories in Freemius Doc

Please explore and let us know if you have suggestions for further improvements.

Ask AI

Every page now has quick-access options to:

  1. Copy or view as Markdown
  2. Open in ChatGPT or Claude

Copy or Open page in AI ChatBot - Freemius Documentation

This lets you instantly use LLMs to ask specific questions about our documentation.

Improved Code Snippets

We’ve switched to an industry-standard renderer. From syntax highlighting to a one-click copy button, everything is optimized for a better Developer Experience (DX).

Freemius documentation with improved code snippet

Dark Mode

Just like our Developer Dashboard, the documentation site now supports dark mode.

Freemius Documentation in Dark Mode

Click the toggle button in the bottom-left corner to switch between modes and enjoy the docs in your preferred style.

Skip Confirmation Dialog in Overlay Checkout

This week we are introducing a new feature, especially tailored for SaaS makers. When using the Overlay Mode of our Checkout, you’d often want to hook into the success callback to handle post-processing. In this UX flow, it often makes less sense to display the final success dialog from Checkout.

Freemius Checkout Success Dialog

To address this, we’ve added an option to skip it. Simply head to Plans → Customization and enable the “Skip confirmation dialog after purchase” setting.

Skip Confirmation Dialog on Freemius Checkout

Once enabled, the dialog will be disabled by default for all overlay checkouts. Here’s a conceptual demo video showing how an application can hook into the success callback to show confettis and toast.

 

However, you can still use the show_confirmation_dialog parameter to control it on a case-by-case basis. For more details, please read our documentation here.

Dashboard Responsiveness and Notification Fixes

This week we are rolling out several Quality of Life improvements to our Developer Dashboard.

Charts and Controls are better on all screen sizes

We improved the responsiveness of charts and their controls to display better across different screen sizes.

Freemius Charts Responsiveness Improvements

They now adapt more intelligently to the available space, ensuring a smoother experience whether on desktop or smaller screens.

Previous and Next Button on all Sidebar Panes

During the rebranding we introduced next and previous buttons for some sidebar panes that accompany tables. These provide a great UX by letting you quickly navigate through different items without going back to the table view.

Sidepane navigation in Freemius Developer Dashboard

This week we’ve consolidated the feature by bringing the same navigation to all sidebar panes, making item browsing more consistent across the Dashboard.

Fixed Notification UI for New Developers

Freemius allows you to customize the notifications you receive as a seller. We noticed a regression where, for some new makers, accessing the customization page caused it to break in certain cases.

Notification Config from the Freemius Developer Dashboard

This edge case has now been fixed, ensuring a smooth notification setup experience for all makers.

Load more