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 Bug Fix: Missing Delete Button on Website Page

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.

Freemius Customer Portal with Installed products on a website

This bug has now been fixed, and the Delete button will appear and work as expected.

Fixed Intermittent Server Downtime from Last Week

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.

Checkout UI Improvements

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.

Developer Dashboard UI Improvements

This week, we’re rolling out several UI/UX improvements to the Developer Dashboard.

Enhancements to Subscription and Payment Tables

Subscription table improvement in the Freemius Developer Dashboard

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

Offline UI in the Developer Dashboard

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.

Other Improvements

  • Fixed alignment issues in some UIs.
  • Resolved artifacts caused by old color schemes.

Fixed issue with subscription cancellation

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.

New Feature: Billing Selector UI for Checkout

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.

Freemius Checkout Billing Selector UI

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:

  1. responsive_list – Displays billing cycles in a smart list that adapts to available space.
  2. dropdown – Shows a dropdown UI, allowing buyers to select their preferred billing cycle.
  3. 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.

Responsive list of Billing Cycle in Freemius Checkout

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.

Flat vertical list of Billing cycle UI in Freemius Checkout

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.

Billing Cycle dropdown UI in open state - Freemius Checkout

Adjustment with Upsells

Enabling the billing cycle UI will automatically disable annual and lifetime upsells.

Disabled upsells when Billing Cycle UI is shown

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.

Checkout UI/UX Improvements

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.

Freemius Checkout VAT number validation UX

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…”.

Freemius Checkout Zip code validation UX

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.

Fixed Text in Money-Back Guarantee

Freemius Checkout includes built-in social proof elements, such as a money-back guarantee and customer reviews, to boost buyer confidence.

Freemius Checkout money-back guarantee UI

We noticed that the money-back guarantee text incorrectly referred to a plugin instead of a product. This has now been corrected.

Fixed Mobile UI Regression

We identified a regression where the mobile UI had incorrect top padding. This issue has now been fixed.

Fixed Loading of Abandoned Licenses in the Developer Dashboard

From the Freemius Developer Dashboard, makers can view and download a list of licenses. The system also allows filtering licenses based on various criteria.

Freemius Developer Dashboard - Filter Licenses

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.

Optimizing Webhook Payloads: Removal of Developer Data

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:

  1. Retrieve the developer data directly via the API when needed.
  2. 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.

Bulk Licenses, Payments Table & App Experience Improvements + Notification Controls

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.

Bulk Licensing option for SaaS and Apps on Freemius Platform

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:

Freemius Payments table UI improvement with Migrated entries
  • 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

Freemius App integration documentation

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.

Freemius Checkout Improvements with a New Version of the JS SDK

This week, we’re rolling out a few minor improvements to Freemius Checkout.

New Version of the JS SDK

Version 1.1.1 of the Checkout JS SDK is now available!

Freemius Checkout JS SDK Developer Experience Improvement with improved types

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.

Freemius Checkout improved coupon error handling

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.

Freemius Checkout Loading Error UI

We’ve made some UI improvements to enhance the experience:

  1. If Checkout is loaded in sandbox mode, it will now display a clearer message to assist makers in setting it up correctly.
  2. If Checkout is loaded via the JS SDK, a close button will now appear, allowing users to return to the website easily.

Various Mobile and PWA Improvements for the Developer Dashboard

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.

App Update UI

The “app update” dialog is now smarter and updates itself even when multiple tabs or windows are open.

Freemius App Offline UI

The PWA now detects if you’re offline during the initial load or when navigating through the dashboard and displays relevant UI accordingly.

Freemius Install instruction for non PWA platforms

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.

Freemius Install button for the login and registration page

To further streamline the experience, we’ve also added the Install button to the Login and Registration pages.

Freemius Developer Dashboard faster load time due to PWA caching

Finally, we’ve improved PWA cache management, which has resulted in approximately a 30% faster initial load time.

UI & Dark Theme improvements

Freemius App Dark Theme

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:

Freemius Plans Page under Mobile

The Plan page now adapts better to different screen sizes.

Freemius date picker UI

The Date Picker now renders more effectively on mobile and tablet screens, ensuring the text fits neatly with our new font.

Freemius Charts UI on Mobile

The Chart’s Customize button and general UI alignment now match our design system.

Cross browser improvements

Freemius Developer Dashboard on Safari

We noticed some glitches and bugs in certain browsers like Safari and Firefox—those have now been fixed.

Developer Dashboard UI improvements and bug fixes

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.

Freemius Developer Dashboard App Product Type

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.

Checkout UI improvements and bug fixes

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.

Back button on Freemius Checkout

With today’s release, the Back button now defaults to the marketing URL set in your product’s configuration.

Set marketing page URL

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.

Freemius Checkout payment method update

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

Freemius payment PDF with long lines

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.

Load more