Changelog

Follow new updates and improvements to Moonbase.

February 9th, 2026

Improved

We’ve added a new “Compare” option to the analytics dashboard, allowing you to overlay historical data directly on your current view. This makes it much easier to answer questions like:

  • “Am I performing better this year than last year?”

  • “How does this year’s Black Friday compare to last year’s?”

  • “Is my growth consistent week over week?”

When selecting a comparison period, you can choose from:

  • Previous period: the same number of days immediately before your current date range

  • Previous month: the same days in the prior month

  • Previous year: the same date range from last year

Each panel will have relevant changes between the two periods shown, and you can hover the percentage change to see the actual value of the last period.

We’d love to hear your feedback on this improvement!

January 5th, 2026

Improved

Some times, you have customers that deserve an early reward, or maybe you need to manually merge some difficult subscriptions and keep the milestone progress intact. This is why we now added a small feature to manually increment progress on subscription milestones, so you can speed up the redemption process for those customers.

Screenshot of the milestone progress of a subscription with a new "Increment progress" button highlighted

When incrementing progress, the milestone progress ticks up one step, and grants any rewards that may be due based on the milestone scheme.

Milestones are a feature for Subscriptions that define a series of rewards to be issued to customers based on their subscriptions. To learn more about the feature, check out the article on Subscriptions

December 23rd, 2025

New

From the start, we built Moonbase to be a white-label solution, powering your websites, apps and stores invisibly in the background. Many customers never realize someone else than your business is powering big chunks of the infrastructure and features necessary to run modern e-commerce. There were however two surfaces which until now has kept a default Moonbase theme, namely emails and checkouts.

Starting today, all Moonbase merchants can now adjust the theme of these surfaces to match their brand, making the customer experience even smoother and presenting a consistent brand throughout the journey.

Screen Recording 2026-01-09 at 16.03.11.mov [video-to-gif output image]

Configuring your Theme

Head over to your Moonbase account settings and find the "Theme" section to get started:

These settings allow you to tweak the overall look and feel of emails and checkouts for your customers, including:

  • Fonts used in headings and body

  • Corner roundness across most UI elements

  • Button style for secondary buttons

  • Brand color with shades for different UI elements, along with a configurable contrast color to ensure legibility on brighter brand colors

All of these settings are also configurable for the Embedded Storefront to ensure that the theme is also consistent with the cart and customer portal embedded on your website.

November 23rd, 2025

Improved

Earlier this year, we launched our Offers feature, which is an easy way to add in-cart up-sells to bundles or cross-sells to other products, both with an optional discount. This already drives more sales and revenue for our merchants, and is perfect for those selling more relevant products together.

Until now, each offer would promote a single target product or bundle only, but today, we've extended these offers to allow promoting several products, giving customers the choice.

Ramping up towards Black Friday, several of our merchants have used this new ability to offer 2-for-1 deals where customers can choose their free product. One example is Aapo from Sixth Sample:

Setting it up

To create the same kind of offer for your store, set up an offer on your Moonbase account using settings like the following:

  1. Head to the "Offers" page of your Moonbase account, and create a new offer

  2. Select all the products that should be selectable as a free second product as the target products of the offer

  3. Leave the condition to the default condition of any products in cart

  4. Set the discount to 100% to grant the added product for free

See below for a full example offer setup:

And that's all there is to it!

September 16th, 2025

Improved

As an alternative to selling high-priced perpetual licenses up-front, more and more merchants are now offering Rent-to-own schemes in order to let customers get an extended taste of the product, while still working towards ownership. This technique has garnered massive amounts of positive customer reviews, leading to more sales and greater flexibility for consumers across the board.

These Rent-to-own schemes come in many shapes and sizes; focusing on single high-ticket products, but also on bigger collections of products. Yum Audio runs their Rent-to-own programme as part of their "YumPass" all-access subscription, where every 12 months of being subscribed, customers receive a $150 coupon they can spend to get their favorite plugins for free.

When we started building support for this in Moonbase, we wanted to support either approach, to make sure our merchants has the tools to sell their products the way they want. The result is what we call Subscription Milestones.

Introducing Subscription Milestones

Crafting your own rent-to-own scheme or just a generic rewards programme for subscriptions is now easier than ever, just head over to the new "Milestones" section of your subscription price variation:

These milestones are defined per price variation, which means you can have different schemes for different types of subscriptions, whether yearly or monthly, cheap or expensive. Each scheme may have multiple milestones, meaning you can drip-feed rewards throughout the journey. Today, we support the following two reward types:

  1. Coupon codes: Simply define a coupon on your account, with any restrictions (for example a limit on redemptions per code), and we'll automatically generate a unique code for the customer, and communicate the code by email.

  2. Perpetual license conversion: This will remove any expiry date on subscription licenses, making them perpetual and independent of the subscription.

With these, you can already craft a myriad of reward schemes to keep customers invested in your subscriptions, with the options to also repeat the scheme for as long as the subscription is active, or automatically stop subscriptions on reaching the end of the scheme.

Perpetual license conversions only works for products using Moonbase for licensing, external licenses in other systems need specific support. Contact us for more details on this.

Customer experience

On the customer side of things, we've extended both our APIs and SDKs to be able to render progress and upcoming rewards, and added UI for this in the Embedded Storefront:

Customers will be able to see all previous rewards, including the generated coupon codes, as well as a preview of upcoming ones on any subscriptions they may have.

Tips & Tricks

These milestones are set up to be flexible, to cater for a wide variety of reward schemes, but here's some tips and tricks you may want to consider.

Coupon setup

When setting up coupons for use in milestone rewards, we often intend for them to be personal codes, unique for the customer earning the reward. To make sure this is the case, you should add a redemption limit per code of 1 in the coupon configuration:

This makes each code generated actually unique, usable once only.

Consider future upgrades

Subscriptions in Moonbase are never automatically updated when you update the product or bundle they are subscribing to, they keep their price, content and any milestone scheme they were created with when first started by customers.

Especially for bundle subscriptions, it's common that you change price and bundle content over time, at which point you usually want to upgrade subscriptions. Upgrading subscriptions will align the price and/or content to match the current price and content of the product or bundle, communicating the change to customers and potentially revoking or issuing licenses.

Since these subscription milestones are part of the price, you need to run a subscription upgrade process where you upgrade the price of all existing subscriptions.

Learn more about all of this in our help center: Subscriptions

August 18th, 2025

New

Being able to promote key products in your storefront during the shopping experience is a great way to drive additional sales, and with the new Offers feature in Moonbase, you can easily set up the journey you want.

The promoted offers can also contain discounts exclusive to that shopping cart, making combinations of products or up-sells to bundles even more appealing.

Initial insights from Moonbase merchants using these offers to drive more sales indicates increased revenue upwards of 3.5% based on offer sales alone!

Getting started

Head over to the new "Offers" tab in your Moonbase account and create your first offer:

You can determine yourself how you want offers to appear in shopping carts, and when. The Offer Condition will determine in which scenarios you want an offer to appear, so that you can promote similar products at a higher priority for example.

Displaying in carts

The Offers feature is natively supported in the Moonbase Embedded Storefront, where it picks the best offer to show based on:

  • Does the authenticated customer own the promoted product?

  • Does the cart currently contain the promoted product?

  • Is the offer eligible based on the current cart contents?

  • Lastly, rank offers based on configured priority

This way, you can control the sequence of Offers being promoted, and in which scenarios they should appear.

In the case you are using our APIs or SDKs to display offers, you can just as easily use offers:

  • There's a new list of offers on the storefront response

  • In our Vue.js SDK, there's a new composable to get all or relevant offers

  • When adding products to cart, they support an offerId, indicating which offer they are added with

What to promote

A common approach that we see working well is promoting "companion" products, two products that naturally complement each other. There are practically two ways to facilitate this up-sell:

  1. Add a bundle with both products that has a bundle discount applied. Then add an offer for this bundle that should be promoted when any product is in the cart, it can have a 0% discount since the bundle is already discounted.

  2. Add two offers, one for each product that is configured to show when the other is in cart. This offer can have a similar discount as the bundle may have.

These tactics also extend to bigger sets of complementing products, with bundles being the better option as the number of products grow.

Discount behavior

These offer discounts are now a third type of discount supported by Moonbase, and it's important to think about the order of discounts when many are applicable to a given product. When calculating the final price, we always apply discounts in the following order:

  1. Product discount, configured on the product or bundle directly, only the best one is picked if multiple is eligible for the customer

  2. Offer discount, if any is applied to the line item

  3. Coupon discount, if the customer has added a coupon code

Some coupons are non-combinable with other discounts, in which case the coupon discount is the only discount applied.

July 11th, 2025

New

When you have thousands of customers running your software on a myriad of platforms, environments and configurations, how do you know which to pay the most attention to? Should you put more effort into doing quality assurance and marketing towards Windows or Mac users? Towards Intel or AMD CPU users? And how many of your users are on the latest version of your apps already?

These are questions many of our merchants had, and with a new upgrade to our analytical stack as well as new versions of our licensing SDKs, this is easily added to your apps!

New API parameters

To facilitate taking in metadata about the environment of your users, all licensing endpoints have been updated to accept a few optional query parameters.

At the base, you may now pass a ?appVersion=1.0.0&platform=Windows, which will be available when breaking down license validations and trial activations in your Moonbase dashboard. Where it gets interesting is when you add any other dimension that may be relevant to you in the meta parameter, which is a key/value map of values. For example, you may add a ?meta[Is64Bit]=true to be able to break down on how many of your users are on 64bit devices, but the possibilities here are endless.

In the world of audio plugins for example, it can be very useful to know which DAW is hosting the plugin, being able to break down usage of Reaper vs Logic Pro users, or how many of your users have CPUs with support for specific instruction sets like SSE or AVX.

Read more in our documentation on Metadata for analytics, or if using our SDKs, read on for instructions.

Keep in mind that values in this metadata map should be low cardinality and anonymous to make your insights useful. Anything non-anonymous requires user consent before gathering.

Dashboard configuration

To get insights on the dimensions you've tracked through these parameters, start by configuring your Moonbase dashboard insights, targeting licensing statistics:

New in the normal breakdown parameters are ApplicationVersion and Platform, and the new metadata breakdown field has any custom meta parameter we've ingested in the last month. Once selected and saved, your charts and tables will now break down licensing events based on these custom parameters!

SDK updates

To make it easier to collect these parameters, we've updated our SDKs to automatically gather some useful dimensions, but also let you add any additional parameters on demand.

.NET SDK

By default, the .NET SDK now tracks which Platform the app is running on, and it will try to get the version of the entry assembly as ApplicationVersion. This, along with any custom parameters is configurable when setting up the Moonbase instance:

var licensing = LicensingFactory.CreateInstance(
    opts =>
    {
        ...

        opts.ApplicationVersion = "1.0.0";
        opts.Metadata = new Dictionary<string, string>
        {
            {"Host", "Console"},
            {"ProcessorCount", Environment.ProcessorCount.ToString()},
            {"Is64Bit", Environment.Is64BitProcess.ToString()},
        };
    });

This configuration is available starting with version 1.1.2 of our .NET SDK.

JUCE SDK

By default, the JUCE SDK now tracks which Platform the app or plugin is running on, as well as the version of the project as ApplicationVersion. Additionally, using the underlying JUCE-provided system information, we can also track a number of device metrics like:

  • JUCE framework version

  • Host DAW (if any)

  • Operating system details (32bit vs 64bit, version)

  • Device and CPU details (including CPU features like instruction sets)

These are not enabled by default, but can easily be toggled on, or supplanted with your own parameters, simply add parameters when configuring the SDK:

moonbaseClient->setTransmitAnalytics (true, true);

moonbaseClient->registerGetAnalyticsCallback ([&] (bool& includeExtendedDefaultAnalytics) -> const juce::StringPairArray
{
    // This is where you can add custom environment metadata. 
    StringPairArray analytics;
    analytics.set ("CustomKey", "This value can come from anywhere");

    return analytics;
});

This feature was added to our JUCE module in commit 4d653e8.

February 13th, 2025

New

A consistent feature request we've heard from our customers is the ability to sell software through subscriptions. It's practically a must-have for any modern software e-commerce, and so it's high time we roll out our own.

Through the last months, we've been building, testing and improving our subscriptions feature, and in this article you can learn everything you need to get started.

Getting started

Subscriptions in Moonbase are set up through pricing variations on your products and bundles. Start by switching from one-off purchases to a recurring payment schedule in the configuration of one of your pricing variations:

Once you have a pricing variation set up, link to it from your website or update your code to add the new variation to your Moonbase-powered cart. Our embedded storefront and other SDKs have been updated to support subscriptions, along with a myriad of improvements to support multiple variations.

How they work

Subscriptions manage payment cycles between you and your customers, with a configurable length per variation (monthly or yearly). Each cycle, Moonbase will attempt to automatically renew the subscription, charging the payment method stored by the customer during the first purchase. If successful, we send out order receipts, and fulfill the new cycle of the subscription by extending licenses or issuing new key codes depending on your license generator setup.

If a subscription renewal fails, the subscription expires, and Moonbase will attempt to get updated payment information from the customer that owns the subscription. The customer may also choose to cancel their subscriptions at any time, at which point we will not automatically charge them for a new subscription cycle.

Interaction with discounts and coupons

When starting new subscriptions, customers will benefit from all the discounts you have set up on your products and bundles. These discounts will carry over to all subsequent payments for new subscriptions. If you want to limit discounts to avoid discounting subscriptions, you can restrict discounts to specific variations:

Coupons on the other hand, are only applied to the initial purchase, and will not be carried over to subsequent payments. This is useful in case you want to offer discounts on the first cycle of new subscriptions. We're intending to expand the possibilities of coupon and product discounts together with subscriptions in the future, based on your feedback.

Discount segmentation for subscriptions

One of the most unique features in Moonbase is our ability to segment discounts by what the customer owns. More specifically, we can say that discounts only apply to customers that own a specific set of products. Now that subscription licenses will start to appear, you will have the option to include or exclude subscription licenses in these segments:

Analytics

Sales for subscriptions, both the initial purchase as well as renewals, are all counted as unit sales in your analytics dashboards. However, if you wish to separate recurring and one-off payments, you may use the new payment type filter in your dashboards:

It's also possible to break down by payment type in cases where you want to compare the performance of subscription payments vs normal one-off payments.

Marketing attribution

To better understand your revenue streams, we support marketing attribution for sales done through Moonbase. In the case of subscriptions, any attribution done on the initial purchase of a new subscription will be carried on to every subsequent renewal payment. This way, you can better analyze the lifetime earnings of your marketing campaigns, and get a better picture of what works for your business.

Overriding licensing configuration

Depending on the way you set up and use subscription variations, you may want to change the licenses created by these variations. Offline activations is something we've heard from merchants that is undesired when licenses are attached to subscriptions, since they would have an expiry date when offline activations are supposed to be permanent.

This is now possible for all pricing variations, also non-subscription based variations, by heading over to the new "Licensing" tab of the pricing variation:

Any settings added here will override the base product settings, and make sure subscription licenses are providing the best experience possible.

Using subscriptions with external licensing platforms

If you are using external licensing platforms together with Moonbase subscription, we will re-fulfill licenses for each cycle. In the case of key codes, customers will receive a new key code with each renewal, and in the case of remote API delivery, we will call the API on each renewal to get a new license.

Remote API fulfillment requests will include an expiry date on license requests so that you can create scoped keys to the cycle length of the subscription.

Webhook support

Should you want to react to subscription events yourself, you can set up webhooks to inform your APIs about changes in subscriptions.

We support the following events:

  • SubscriptionStarted

  • SubscriptionRenewed

  • SubscriptionExpired

  • SubscriptionCancelled

Check out our article on webhooks to learn more on how to integrate subscription events into your own systems.

Pricing

Subscriptions in Moonbase comes at no additional cost, and is treated as any other purchase performed through Moonbase.

Learn all about subscriptions in our help center article: Subscriptions

December 8th, 2024

New

A common request we were getting from our merchants was the ability for them to build their own automated services around customer actions on Moonbase. This week, we completed a big milestone towards this with our new webhooks feature.

These webhooks allow you to configure endpoints to be called in response to actions being performed by your customers on your Moonbase account. Included in this feature is error handling, request visibility, security and more.

As always, if you're interested in the technical docs, head over to our webhooks documentation.

React to customer events

At the time of writing, we support events around both sales, licenses and trials, to let you build the automations you want. The possibilities are endless, whether you want to ingest these into your own analytics platform, run your own email campaigns or loyalty programmes, or trigger any other kind of workflow, they can all be achieved with webhooks.

Order events describe changes in state for new sales, where orders are paid, then completed (fulfilled), and finally scheduled to be paid out. Part of these events also include the calculated payout amount, which is great for building better ROAS analytics.

License and trial events describe new devices being activated by your customers, which can be used to further track the journey your customers have installing, using and purchasing your products.

Security and resilience

To make sure you have the best chance of processing all events, and do so securely, we've implemented some features that mitigate common issues.

First of all, we have retry-policies on all requests going to your endpoints, with an escalating back-off policy so your servers have a chance to recover. If the requests fail 3 times in a row, we mark the request as failed, and you may manually trigger a re-send in our UI.

Secondly, to ensure all requests are legitimately coming from Moonbase, we include a HMAC signature on all requests being sent. The secret being used can be configured in your Moonbase account settings, and should be used to ensure no forged requests are accepted into your systems.


This is just the early days of our webhooks feature, if there are specific events you are missing, reach out!

October 2nd, 2024

New

For many, driving sales through partners with an existing audience is a highly effective strategy, especially so for newer merchants with little exposure to begin with. Whether that partnership is about collaborating on the product itself, or as a marketing channel, being able to easily set up the revenue share has been a highly requested feature in Moonbase, one that is now live!

We made a small video to showcase some of the features, but read on to learn more!

Flexible commission structures

Depending on the goal you want to achieve, you might want to use different factors to split revenue with your partners. Using the affiliates features in Moonbase, you can create commission structures that split revenue based on:

  • Products: perfect for when you are collaborating on the product and all sales should bring revenue to the partner

  • Coupons: ideal for when your partner is best set up to reward their audience with a unique discount

  • Marketing parameters: using our marketing revenue tracking you can also split revenue by UTM parameters in links to your store, which works great for pure marketing partners

Building a commission structure that fits your partner and your goals is crucial for a healthy and sustainable affiliate solution, and with our flexibility you can achieve that.

Payouts handled by Moonbase

Much like merchants on Moonbase gets paid directly to their bank accounts for their sales, so will affiliates. We automatically divert the commission on sales to the relevant affiliates and pay them once monthly to bank accounts all over the world. We don't charge any payout fees for affiliates, as they are baked into the cost for the affiliate solution as described in our Fees & Costs

Much like merchants, affiliates also receive payout invoices for any payouts they receive, for dead simple accounting across thousands of sales. They are also capable of accepting contracts from multiple merchants at the same time, which is important to keep affiliates flexible enough to grow how they wish.