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.
We identified a UI bug where the Delete button was missing from the “Installed” products section of a website page in the Customer Portal.
This UI allows buyers/users to delete the installation data of a Freemius product from a website — particularly useful when a product was removed ad-hoc, without going through the proper uninstallation process.
This bug has now been fixed, and the Delete button will appear and work as expected.
Last week, we noticed intermittent downtime across our Developer Dashboard and some API servers. Upon investigation, we found that this was caused by unexpectedly high traffic volumes and overall network growth.
To resolve this, we identified bottlenecks in our infrastructure and deployed several improvements and fixes. These changes not only resolved the downtime but also enhanced overall performance. For example:
The SDK pricing page now loads faster.
Buyers will experience improved performance in the integrated Customer Portal, eliminating the “white screen” timeout issue.
Our SDK now receives faster responses when querying for available premium updates.
We apologize for any inconvenience this may have caused. Fortunately, no critical systems were affected. As a precaution, we have also invested in additional monitoring systems to help us detect and address such bottlenecks more efficiently in the future.
Freemius supports securing your account with two-factor authentication. We recently discovered that the 2FA input was not accepting pasted codes from Samsung Keyboard’s clipboard bubble.
This issue has now been fixed, enabling smoother 2FA code pasting from the keyboard toolbar.
We have deployed two minor UI improvements to our Checkout this week.
Fixed Padding Issue in Zip/Postal Code Input
As a regression to our newly introduced UX improvements for the VAT Number UI, we noticed there was extra left-over padding on the zip/postal code input. This has now been fixed.
Removed Money-Back Guarantee UI from Free Plans
We noticed that we’ve been incorrectly showing the money-back guarantee UI when the Checkout is opened in the context of a Free plan. The same has now been fixed.
This week, we’re rolling out several UI/UX improvements to the Developer Dashboard.
Enhancements to Subscription and Payment Tables
We’ve reorganized the columns in the Payments and Subscription tables to prioritize the most important data at the beginning. Additionally, we’ve refined some wording to enhance clarity.
Offline UI Improvements
We observed that the offline UI was sometimes too quick to detect network issues. We’ve identified these cases and deployed a fix to improve its accuracy.
Freemius allows both you, as a maker, and your buyers to cancel subscriptions at any time. We recently identified a regression where cancellations made very close to the renewal date were sometimes failing. This issue has now been fixed.
This week, we’re introducing one of the most anticipated features for our Checkout. Last year, we released Phase 2 of the Checkout, which underwent a major redesign. At that time, we removed the legacy Billing Cycle UI in favor of a more compact Upsell UI.
However, we’ve received feedback requesting the return of the billing selector UI. This feature is particularly useful for makers using Freemius Checkout directly, without a dedicated pricing page. It provides buyers with more flexibility to select their preferred billing cycle at the time of purchase.
We’ve listened to your feedback and are now introducing an optimized and visually enhanced Billing Cycle UI that complements the new Checkout experience.
This feature is not enabled by default. To activate it, add the following URL parameter to your Checkout URL:
?billing_cycle_selector=responsive_list
Alternatively, if you’re using the Checkout JS SDK, you can enable it with the following configuration:
const handler = new Checkout({
billing_cycle_selector: 'responsive_list',
});
Configuration Options
The billing_cycle_selector parameter accepts the following values:
responsive_list – Displays billing cycles in a smart list that adapts to available space.
dropdown – Shows a dropdown UI, allowing buyers to select their preferred billing cycle.
list – Same as responsive_list but always show up vertically.
If none of the values are present the UI will not show up. Read more details below.
Rendering a Responsive List
Our recommendation is to use the responsive_list option. You can do so by setting the parameter value to responsive_list or simply true.
This will display all available billing cycles upfront. If only two billing cycles are available, they will appear in a horizontal layout to save space.
If you prefer a vertical list, you can use list instead of responsive_list.
Dropdown UI
If you want to minimize vertical space usage, set the parameter to dropdown.
This will render a single item that buyers can click to open a dropdown menu for selection.
Adjustment with Upsells
Enabling the billing cycle UI will automatically disable annual and lifetime upsells.
As always, we’re building this feature with our community. If you’d like to discuss anything, feel free to join our Slack or reach out to our support team.
This week, we are releasing several UI and UX improvements for our checkout. See the details below.
VAT Number Validation UX Improvement
Freemius allows buyers to enter their business VAT number for reverse VAT charges. Behind the scenes, Freemius validates the VAT, and if valid, it nullifies any VAT for EU/UK buyers. We noticed that in rare cases, a buyer might submit the checkout even though the VAT number validation had not yet completed. While the checkout still displayed the amount with VAT, we understand that this could be confusing for some buyers.
To enhance the experience, we now display a spinner next to the VAT field while the system is validating the number. Additionally, if a buyer clicks the Review or Continue to PayPal button before validation completes, the form will shake, focus on the VAT number field, and display a short message: “Verifying…”.
We also implemented similar UX improvements for the US Sales tax, where the tax amount depends on the billing details.
We hope these enhancements improve the overall buyer experience with Freemius Checkout.
From the Freemius Developer Dashboard, makers can view and download a list of licenses. The system also allows filtering licenses based on various criteria.
We identified a regression where selecting the Abandoned filter was not working correctly. Abandoned licenses refer to those that have expired or have an expired/canceled subscription. We have now identified the root cause and deployed a fix.
Freemius provides a webhook mechanism for seamless integration with your software. We recently discovered that some webhook payloads were unintentionally including developer data. To optimize network payloads, we will no longer be sending this data. All other entities and payloads will remain unchanged. For example, the license.created webhook will continue to receive the license object as expected.
This inclusion of developer data was an oversight on our part, and since it was never documented, we have no reason to believe it was actively used. However, if you were relying on it, you have two options:
Retrieve the developer data directly via the API when needed.
Recommended: Store the developer data in an environment variable or cache it within your system. Since this data rarely changes, frequent API calls or webhook-based retrieval are unnecessary.
We’re rolling out several key enhancements to our Developer Dashboard this week.
Bulk Licenses for SaaS & App Products
Building on our recent introduction of custom unit labels, we’re now adding bulk licensing options for SaaS and App product types.
When setting up pricing for bulk licenses/activations, you’ll now see predefined options for 50K, 100K, 250K, 500K, and 1M activation units.
Based on demand, we plan to enhance the UX further by allowing you to customize these values directly in the UI. For now, if you need a different number, feel free to reach out to our support team, and we’ll take care of it for you.
Payments Table Improvements for Migrated Payments
Freemius enables seamless and assisted migration from other platforms without losing existing subscriptions or licenses. To ensure you have a complete view of your Financials and Audience, we also display migrated data in the Developer Dashboard.
However, we noticed color inconsistencies in the Payments Table for migrated transactions. With this update, we’ve standardized the coloring to ensure clarity:
Gross amounts are now blue (positive) or red (negative), depending on the value.
Test payments are displayed in gray for differentiation.
Migrated payments are now visually distinct, with the Migration icon at the start of the table highlighted for better visibility.
App Documentation Improvements
We’ve published a new documentation with various examples of integrating Apps with Freemius.
Notification Settings for Failed Renewal Recovery Emails
We’ve added a new Notification Center setting that lets you control whether you want to receive a notification when Freemius successfully recovers a failed renewal through its dunning mechanism.
This release focuses exclusively on documentation and developer experience improvements. The Checkout JS SDK is used to embed the Checkout inside your website. Please read our documentation to get started.
Improved Coupon Error Handling
We noticed that in some edge cases, our Checkout could silently reject a coupon, which might cause confusion for buyers.
We’ve implemented a fix to ensure that if a coupon cannot be applied, an error message is now clearly visible in the UI. Additionally, we’ve improved the UX to make it clear that buyers can simply press a button to continue the purchase without the coupon.
Clearer Error Messages for Checkout Setup
Previously, when passing incorrect configuration parameters (such as an invalid Product ID or Plan ID), Checkout would fail and display only a single-line error message.
We’ve made some UI improvements to enhance the experience:
If Checkout is loaded in sandbox mode, it will now display a clearer message to assist makers in setting it up correctly.
If Checkout is loaded via the JS SDK, a close button will now appear, allowing users to return to the website easily.
This week, we’re following up on the recent PWA release of our Developer Dashboard. Right after the initial launch, we gathered a lot of feedback and doubled down on improving the UX even further. While we conducted multiple audits and fixes, let’s take a look at the most important ones.
Better PWA Lifecycle Management
Starting with the PWA (or the Installable App), we’ve made several significant improvements.
The “app update” dialog is now smarter and updates itself even when multiple tabs or windows are open.
The PWA now detects if you’re offline during the initial load or when navigating through the dashboard and displays relevant UI accordingly.
We understand that the best PWA experience isn’t possible on some platforms and browsers, and the default installation method doesn’t apply to those. Initially, we only displayed the Install button for supported platforms.
To provide a more consistent experience, we now show the Install button for all platforms. If the current platform supports PWA, we display the native installation experience. Otherwise, we show a modal with platform-specific installation instructions.
To further streamline the experience, we’ve also added the Install button to the Login and Registration pages.
Finally, we’ve improved PWA cache management, which has resulted in approximately a 30% faster initial load time.
UI & Dark Theme improvements
We adjusted several contrasting elements of the Dark Theme to enhance the readability of data-heavy UI components. At the same time, we identified and resolved some lingering UI inconsistencies. For example:
The Plan page now adapts better to different screen sizes.
The Date Picker now renders more effectively on mobile and tablet screens, ensuring the text fits neatly with our new font.
The Chart’s Customize button and general UI alignment now match our design system.
Cross browser improvements
We noticed some glitches and bugs in certain browsers like Safari and Firefox—those have now been fixed.
This week, we are deploying various UI improvements to our Developer Dashboard, focusing on the newly launched App product type and addressing some minor bug fixes.
Improved Developer Experience of the App type
We have made several tweaks throughout the system to enhance the onboarding experience for newly launched App products.
For example, the pricing page now displays relevant information and links to our documentation. Similarly, the Setup Checklist provides more accurate and helpful details.
Stay tuned for more improvements to the new product type!
Other small bug fixes
We identified an issue with font ligatures and have fixed it.
A potential issue with our login and 2FA mechanism when using popular password managers has been identified and resolved.
This week, we deployed some minor UI improvements and bug fixes for our checkout.
Smarter back button
Recently, with Phase 2, we introduced a Back button for the standalone version of our checkout. This worked by checking the HTTP referrer or a specific URL parameter.
With today’s release, the Back button now defaults to the marketing URL set in your product’s configuration.
If you haven’t already, please follow the directions in the screenshot above to set your marketing URL. Additionally, the cancel_url parameter still works as expected and will override any HTTP referrer or implicit marketing URL value.
UI glitch fix for payment method update
With Freemius, buyers can update their payment method anytime via the self-service Customer Portal. Additionally, we introduced a shortcut in the Developer Dashboard, allowing you to manually copy and send a payment method update link to buyers.
We noticed a minor UI glitch in the payment method update flow where the header was not aligned properly. This has now been fixed.
Improved payment PDF
We identified edge cases where long lines in the buyer’s or seller’s billing address could break the layout. This issue has been resolved in today’s release.
We use tools, such as cookies, to enable essential services and functionality on our site and to collect data on how visitors interact with our site, products and services. By clicking CONTINUE, you agree to our use of these tools for advertising, analytics and support