Blog on Software Licensing, Commercialization, and Revenue Optimization

SDK Licensing and Pricing Guide

Let’s start this SDK Licensing and Pricing Guide with some background. Software Development Kits are becoming more and more popular, and it’s easy to see why. As software products themselves become more popular and advanced, developers see a growing interest in not having to reinvent the wheel. Selling libraries, APIs, and documentation to help developers speed up the process is, therefore, a great solution. They are not only are they helpful, but they can also be very profitable to sell.

For Software Development Kits (SDKs), there are some unique considerations you need to keep in mind when it comes to software licensing. Getting it wrong could mean that far too many will have access to the SDK. Although it is a bit more complex to sell and protect SDKs from unauthorized users, we will also cover how you can turn that challenge into an opportunity today.

We have made the following YouTube video on this topic that you might want to check out:

Challenges with SDK Licensing

The reason why SDKs have unique licensing requirements is because of end users. SDK licensing is where you distribute a component such as a library that will later be a part of another commercial solution. To keep it simple, the image below illustrates the purpose of an SDK. Let’s say that “Company SDK” in the image is the company that develops and sells the SDK. That is then the company that implements a software licensing system to restrict who has access to the SDK. The customers of Company SDK are called Customer A and Customer B, and they each get one license key so they can access the SDK.

It’s pretty straightforward so far, right? The two customers integrate the SDK into their own software products that they sell to their own customers. These customers are called end users because they are the final customers in the chain.

SDK Licensing

So what is then the difference between licensing an SDK, compared to a desktop application, for example? Well, because the customer of Company SDK is not the end user of the SDK itself, all of the end users of Customer A will share Customer A’s license key and all the information stored within. The same is true for Customer B. This is of course not ideal since the the intention is to only allow the customer, and not all of the end users, to access the SDK. Desktop applications will usually not run into the same problem, because their end users are most likely their own customers.

Opportunity: Pricing Model Efficiency

This scenario poses both challenges and opportunities. In order to protect your SDK, the software licensing system has to ensure that end users cannot access the SDK. The positive aspect is that you have quite a lot of freedom to implement a very effective pricing model that charges for the actual value that customers receive.

An effective way to price an SDK could be to charge customers per end user, or per installation of the SDK. That way, you ensure that the more value your customers get, the more they have to pay. Customer A in the example has a lot more end users and will pay a high price as a result. They are probably fine with the high price because all of the end users are giving Company A a pretty nice revenue stream. Company B will pay a lower price because they have fewer end users.

As a final remark, I would like to highlight the fact that not all SDKs are alike. The SDK is required to have an internet connection to keep track of the end users or installations. That means that these pricing models are not possible to implement in an offline setting.

We at Cryptolens offer you another solution for offline protection which involves storing the application’s identifier inside the license file. For more information on that approach, please check out our full technical implementation guide. You can of course also charge per installation or end user even with our software license management tool.

Thank you for reading, Stay Smart!

Username and Password Authentication

The normal way of authenticating users in Cryptolens is through license keys. However, there is another way. You can choose to allow customers to use username and password authentication. This blog focuses on how this method works in theory. Please visit the full documentation page if you want to learn about the code implementation. We have also made the following video tutorial which features code examples in Python:

Username and Password Authentication

There are some use cases where it might be more convenient to authenticate users with a username and password as opposed to a traditional license key. If a customer has a lot of licenses, or if you offer your application both as a web and desktop service, username and password authentication would be a suitable approach.

Step 1 – Access Token Permissions

In Cryptolens, the first step to implement username and password authentication is to select the correct access token permissions. In the “Miscellaneous” section of the access token permissions page, you will find “User Auth Normal” and “User Auth Admin”. It is recommended to use the “User Auth Normal” for the client code. However, in your back-end where you will create new user accounts, the permission “User Auth Admin” is more suitable.

Step 2 – User Creation

In your code, you need to implement a way for customers to sign up and choose a username, password, and alternatively, an email address. This is also where you can assign a customer ID. Please watch the video above or the full implementation page for code examples on how to set this up. After a user has successfully registered, they will appear in the Cryptolens dashboard and be assigned to a Cryptolens customer.

Step 3 – Authenticating Users

Because the user account that was just created is associated with a Cryptolens customer, you will be able to retrieve all of their Cryptolens license keys when they log in. You will also get the license properties such as the features, notes, product ID, and more. From this point, you will be able to proceed with key verification as normal. Once again, please check the full documentation page for code examples and a more detailed guide.

Thank you for reading, please reach out to us if you have any questions!

How to Find the Best Software License Management Tool in 2024

What is the best software license management tool? Well, the answer to that question is very dependent on your unique licensing requirements. In today’s blog, I will highlight the main aspects you need to consider when searching for the best provider for your application!

If you’d rather watch a video on the topic, please watch this one:

How to Find the Best Software License Management Tool in 2024

First of all, what do I mean when I say software license management tool? I am referring to a service provider that helps you create a software licensing system to protect and sell your software application.

Software license management tool image

When you are choosing between different Licensing as a Service (LaaS) providers, I would advise you to first list your licensing requirements. Will you, or are you, selling your application to businesses or private consumers? What licensing models are you interested in? What integrations with other business systems do you require, and how important is scalability to you? We will cover all of these questions in more detail today.

B2B and B2C Applications

Let’s start with the first question. Many LaaS providers set a limit to how many license keys you are allowed to create on each pricing tier. As a result, it can get quite expensive if you are selling a lot of licenses at a cheap one-time price, which is quite usual for B2C companies. If you are selling B2B, you will probably require fewer license keys, and you are less price-sensitive since you most likely will sell each license key at a high price, maybe even a recurring subscription fee.

Licensing Models

That brings me perfectly on to talk about the next consideration, which relates to licensing models. Most LaaS providers will give you the basic licensing models such as the perpetual and subscription models. This is usually fine if you are selling B2C, but for B2B companies, you might benefit from other models, such as floating, or node-lockled licenses to allow for multiple seats. Maybe you even need licensing to work in an offline setting.

The more advanced licensing models can come at an extra cost with some providers, so make sure to check that your provider is able to accommodate your chosen licensing model. If you are unsure about what licensing model you want to implement, you can check out this blog post.

Integrations and Scalability of the Software License Management Tool

The last point I want to mention is related to scalability. You of course need to investigate what integration capabilities you need from a licensing provider today, but you also need to have a more long-term perspective. Today, you might be fine with manually creating license keys in the LaaS dashboard, but when you get more customers, you might want to automate the process using, for example, Zapier. At some point, you might even want to invite more employees to work in the dashboard. It is then good to check if your licensing provider is able to supply you with the integrations and features you need to allow for future growth.

Cryptolens Software License Management Tool

Lastly, with all of these considerations, choosing the correct software license management tool can be tricky. Especially when it comes to scalability since it can be difficult to predict exactly what your licensing needs will be in 5 to 10 years.

That is where Cryptolens comes in! We offer all licensing models and comprehensive implementation guides in your programming language. If your needs still exceed our capabilities, we are willing to tailor our product to your licensing needs. And the best part? You can get started with software licensing for free, within minutes.

Thank you for reading, Stay Smart!

How to Market a Software Application

How do you market a software application? Today, we will answer that question by sharing three steps on how to launch a software product, going from (1) the market research phase to (2) testing an MVP, to (3) selling it at a larger scale. These three steps are quite common for software startups to begin with, but they are, contrary to what some other creators are saying, not that easy to get right.

We have made the following YouTube video on this topic that you can check out:

3 Steps on How to Market a Software Application

Step 1 – Market Research

To cover the main points, allow me to tell you a short story about an innovative software developer wanting to sell their software product. Our story begins with a brief prototype of a software product. The first question to ask yourself is; will anyone buy it? In marketing terms, you will have to research your market and audience. Let’s say that the product is a code cleaner that checks for errors and suggests code improvements. The audience to target will most likely be software developers who write a lot of code each day and want to ensure top quality.

One important question to research is “How can I reach out and find my target audience?” That question is important for the step after market research. Here are some other questions to research:

“What does my target audience look like?” “What problem does my target audience need to solve?” “How do they solve that problem today”. You can use many tools and analyses for this step, but we will cover more of those in future blog posts.

Step 2 – MVP Feedback Collection

Once you know a bit more about the target audience and market, the next step is to try to sell an MVP, a Minimum Viable Product, to a couple of early users. What is a Minimum Viable Product? Well, it is the simplest version of your product that has just enough features to satisfy early users. The main goal with an MVP is to evaluate how well your product fits the needs of your customers, which we sometimes call the product-market fit.

Remember how I told you to research where your target audience can be found? Well, now you know why because this step includes reaching out to them and getting their feedback. Going back to our example, early users might want you to color-code the code suggestions according to different categories. When you implement such a feature, your product-market fit will improve, because your product is more in line with what the market wants.

Step 3 – Getting Customers to the Software Application

The last broad step that we want to mention is how to get more customers after you have enhanced the product. For software businesses, getting more customers usually means getting more website visitors. Traffic to a website can come from paid channels such as Google Ads, and organic channels, such as your company’s blog or social media pages. Paid channels can be set up with Google Ads, but let’s not focus too much on that today.

Content creation is a great way to grow the organic channel where you educate people about what your product is and who it’s for using videos, blog posts, and social media posts. Levering SEO, or Search Engine Optimization, can work very well to grow the organic channel faster than just making content without having a clear plan. Working with SEO essentially means that you try to appear in top positions in Google’s search results when future customers search for the solution you are offering.

How to Market a Software Application

In our example, “Code cleaner” seems to be a relevant keyword to make content for. You can, for example, write a blog about the importance of keeping a code clean to improve your SEO score and rank higher on Google. With a clear SEO and content strategy in combination with Google Ads, you are well on your way to success. With these 3 steps, we hope you have learned something about how to market a software application.

The Moral of the Story When Marketing Software Applications

To conclude this story, we want to quickly bring you back to reality. As we mentioned in the beginning, there are a lot more aspects to think about after you get your first couple of customers, and there is even more to learn about the three steps we have mentioned today!

For example, when I launched my first startup, I completely ignored the MVP step and launched a working prototype immediately. As a result, I had no clue what I needed to fix when no one was buying the product, and we even gave it away for free! Simply reaching out to our target audience and getting a couple of them to try it out and give feedback would have helped greatly, but there were also major flaws in the distribution of the product. Either way, I am happy that I tried, because trying and failing is always more illuminating than not trying at all.

Thank you for reading, Stay Humble!

Adding Cryptolens SDK Into a Rhino 3D Plugin

The goal of this blog is to explain the 5 easy steps on how to add Cryptolens SDK into a Rhino 3D plugin. If you want to install our software license manager for a Rhino 3D plugin, please also check out our blog on how to get started in .NET. You can find that post here.

This blog will mainly cover how the steps in theory, and if you want code examples, please read the full documentation page for Rhino 3D plugins. We also show code examples in the following YouTube video:

5 simple steps to add Cryptolens SDK into a Rhino 3D plugin

Step 1 – Download the SDK

In our example, we create a plugin based on Rhino 8. When you have your project open, please follow this link to download our SDK on GitHub.

When on GitHub, click on “Releases” and choose the latest release. There are two versions to choose between. “Cryptolens.Licensing.CrossPlatform.zip” can be used if you expect to target platforms other than Windows. Normally, we suggest to try downloading “Cryptolens.Licensing.zip” and checking if all the features you need are supported.

Step 2 – Extract the folder

When you have downloaded your desired file, the next step is to extract the libraries. You will see that we have all of the binaries for all of the platforms on the downloaded file. For this tutorial, we will be using “netstandard.2.0”.

When in the “netstandard.2.0” folder, please copy the folder’s path link.

Step 3 – Dependencies

In Solution Explorer in Visual Studio, right-click on “Dependencies” under the name of your project. In the new menu, click on “Add Project Reference…”.

Step 4 – Browse

In the new window, click on “Browse” in the left menu. Now, click on the “Browse…” button in the lower right corner. In the “File name” field, please paste the folder path that you copied in step 2.

You should now be able to see the file called “Cryptolens.Licensing.ddl”. Please select that file and click “Add”. That should take you back to the original window, and simply click the “Ok” button to complete the step.

Step 5 – Install Newtonsoft.Json

The final step is to install Newtonsoft.Json using NuGet. To do that, right-click on “Dependencies” once again under the name of your project. This time, click on “Manage NuGet Packages…”

In the new window, change to the “Browse” tab and search for “Newtonsoft.Json”. When you find it in the search result, please install it using the down-arrow icon to the right. Click “Apply” in the window that pops up.

Code examples and full implementation

A good step to do next would be to build the project using our key verification code to see if everything is working. We suggest checking out the YouTube video above or going to the full documentation page.

Thank you for reading, please reach out to us if you have any questions!

Developing B2B Software Products

When you look at the software startups that receive venture capital investments today, many of them are software companies selling to businesses rather than private consumers, but why is that? What can make businesses better customers than private consumers when developing B2B software products?

Today’s blog will answer that question and also show you some things to consider when selling B2B. In case you’d rather watch a video, I have made the following one on this topic:

Developing B2B Software Products – Advantages

Now, it is quite different to sell software products to companies than to private consumers. For example, companies are usually a lot less price-sensitive compared to private individuals, and they tend to buy in bulk.

Selling to businesses can also give you more freedom when it comes to pricing models. Private consumers like to buy products at a one-time price, but businesses are more willing to buy subscriptions and other pricing models. We have other blogs that cover the many benefits of that, such as providing companies a predictable and stable monthly revenue.

Alright, let’s get to the developer’s perspective. If you sell a software product to private consumers, they tend to care a lot about the user design and they usually want things to look pretty. But when selling to companies, you don’t have to spend as much time on the user design because they tend to value the functionality a lot more. This can free up a lot of time and enable you to develop the features you really want instead of having to design everything to perfection.

Since business customers can bring in large deals, having a couple of customers can be enough to get a decent revenue. You are then also given a lot of possibilities to tailor the software product specifically to their needs. This can pose interesting challenges that will not only make your product better and more advanced, but they can also make you a better developer!

Disadvantages

However, tailoring your product after a few customers will take time. If one churns, most of that time might have been in vain. This also indicates a strong dependence on a few customers, which is not ideal.

Because companies rely on your software product to make money, they expect your customer support to be top-notch. Private consumers might not care as much about support or uptime, for example. They might use the product just for fun!

The professional nature of business customers also means that they require your software product to be integrated with a lot of other business systems such as ERP or CRM software. Creating seamless integrations with those systems might pose a bit of a challenge.

Mitigating the Disadvantages

At the beginning of this blog, I mentioned that companies like to buy products in bulk. That is also true for software products because they want multiple employees to be able to access the product. The best way to implement that is by choosing a floating or node-locked licensing model.

Cryptolens makes it effortless to implement any licensing model in your favorite programming language! With our easy-to-use software license manager, you can implement licensing for free, within minutes.

Thank you for reading, Stay Smart!

Messaging API To Send In-App Notifications

This blog will cover how to send in-app notifications using Cryptolens Messaging API. There are two main use cases for Messaging API: one is for updates tracking, and the other is for sending messages in general. You can even choose to send in-application messages to all customers, or a group of customers.

We will mainly cover the dashboard setup and theory behind Messaging API. For code examples, you can either check out the YouTube video or see the full documentation page.

Here is the YouTube video covering this topic, including Python code examples:

Updates tracking in the dashboard

When on the Message Page in Cryptolens, you can specify the Channel and Content that you want to broadcast. For updates tracking, you might want to add the URL where customers can download the latest update to the Content field.

You can implement different channels to send the notification only to some customers. You could, for example, have customers choose if they want to download stable updates, or if they also want to be notified when an experimental version is released. The way to do that is to specify “Experimental” in the Channel field. That way, only customers who your application knows want to receive experimental releases will receive the message.

When you are ready to publish, click on “Add”. In the “Broadcasted Messages” section, you will now find the recently broadcasted message.

For code examples, please check out the full documentation page. The YouTube video at the top of this blog will also show the Python setup.

Notifications in the dashboard

When it comes to update tracking, the main purpose is to make sure that the customer is using the latest update. However, with notifications, you always want to display the latest message for that channel. This means some changes to the code, but in the dashboard, notifications are posted the same way as updates tracking.

One use case for notifications could be to broadcast news. For example, you might want to tell your customers that you offer a limited summer discount. Then, on the Message Page in Cryptolens, you can write “News” in the Channel field, and your message in the Content field, such as “We now offer summer discounts”.

If you want to send in-app notifications for both updates tracking and other notifications, you can simply set up different channels. Use, for example, “Stable” and “Experimental” for updates tracking, and “News” for notifications.


Not a customer yet?

With Cryptolens software license manager, you can implement software licensing within minutes!

Implement Node-Locked Licenses

So, you want to implement node-locked licenses into your product’s code. This blog will cover the node-locked licensing model and how to set it up in Cryptolens. For the code examples, please read the following documentation page.

You can also watch this video for the dashboard and code tutorial:

Implementing Node-Locked Licenses

First of all, what is the difference between the node-locked and floating licensing models? With node-locking, count the maximum number of machines that are able to activate that license key. Floating licenses instead count the number of concurrent users. This means that you do not have to deactivate a machine once the device limit has been reached.

Implementing node-locked licenses is effortless with Cryptolens. When creating a new key in the Cryptolens dashboard, you can simply specify the maximum number of machines in the “Advanced Settings” field. As long as that field is greater than 0, that license key uses the node-locked licensing model! For this example, let’s set the limit to 2.

If you go to the product view, you can validate that it works. That license key should now have a field in the “Devices” row that shows how many devices have activated that license key. In our example, it should say “0/2” since no devices have been activated yet.

When you have set up the coding implementation, you will see that number change to “1/2” when the first device activates the key. If you click on the wrench icon to the right of the number “1/2” for that license key, you will bring up a new view.

Here, you can see some parameters relevant to the node-locked model. The machine code of the activated machines, IP, and time are available parameters. This is also where you can delete machines. Simply click on the red cross icon in the last field to the right to deactivate that machine.

Remember that when the device limit has been reached, deactivating another machine is the only way to allow more machines to activate.

So that is how you implement node-locked licenses in Cryptolens! Watch the video above or read the full documentation page to see the code examples.

What Is A Floating License?

What is a floating license? Well, a floating license, or concurrent license, is where multiple users can access a software product using the same software license key. This is quite common when selling B2B where a company can buy a license allowing for multiple seats.

What is a floating license?

This blog will answer some common questions when it comes to floating licenses. We have also made the following video covering this topic:

What is a floating license?

Firstly, what is the difference between a standard license and a floating license? A standalone license can only be activated by a single user on one device. So if a large company wants to buy a software product, they have to buy individual licenses for each employee. With floating licenses, the same license key can be used by a network of users and devices. One advantage of that is that it can help to keep the cost down.

Since this licensing model only counts the number of concurrent users, the company can install the software product on more devices than what is allowed by the concurrent user limit, but the license cannot be used by all devices at the same time.

Great, so how does a floating license work? Well, a floating license has a limit to how many machines or seats can use the same license key simultaneously. When a user tries to access the software product with a floating license key, the software licensing system sends a request to a license server, which checks if the concurrent device limit has been reached. Access will only be granted if the limit has indeed not been reached.

You might also have heard of another term called “node-locked licenses”, so what is the difference between a locked and floating license? With node-locked licenses, the software license system will count how many machines have activated that license key. It will grant the user access to the product as long as the limit has not been reached. Once the device limit has been reached, you have to manually deactivate a machine in the software license system to allow another one to be added.

Implementing floating or node-locked licenses

If you want to implement floating or node-locked licenses for your software business, you can check out Cryptolens. We make it effortless to implement any licensing model in the programming language you love. It is even possible to set up floating licenses in an offline setting, and you can find that tutorial here.

Thank you for reading, Stay Smart!

Should You Develop a Software Plugin?

Should you develop a software plugin? That’s a great question, because plugins, or add-ins, are very common today and can really add a lot of value to pre-existing software. Just like WooCommerce for WordPress, Prettier for Visual Studio, and Pipeline for Jenkins.

Today’s blog will be about the advantages and disadvantages of the plugin business model in general, along with some tips on how to code them. If you’d rather watch a YouTube video, we have made the following covering the same topic:

Business benefits when developing software plugins

First of all, plugins and ad-ins are software products that plug into a pre-existing application to add extra features. From a business model perspective, relying on a host application in such a way can be great. It means that you can build your business based on the pre-established name and customer list of the host.

Let’s take WooCommerce for WordPress as an example. How difficult do you think it would have been for WooCommerce to come out with an entirely new platform for building online stores? They would have to spend a lot of time and money on marketing to try to make people aware of the product and understand it. Good thing they decided to develop a software plugin instead!

Being a plugin removes a lot of those issues, because WordPress is already a trusted platform for building websites, and WooCommerce gets a lot of recognition by simply being listed in their store. Plugin developers can then easily get access to a lot of customers, and you can even work in partnership with the host application to get more business opportunities.

Coding benefits when developing software plugins

Sure, that sounds great, but what about the developer’s perspective? Because a plugin operates within the framework of another application, a plugin can take less time and cost less money to develop. You can just rely on the pre-existing framework, APIs, and libraries. This also means that you have less infrastructure to develop and manage!

Plugins are then great because you can truly focus on what you do best, which also helps with innovation. In other words, by working within another application’s framework, you get a lot of pre-written code for free!

Except sometimes, it does not come for free at all…

Disadvantages and solutions

Relying so heavily on the host gives them a very powerful position. For example, developers of host applications have realized all the benefits that plugins face and have begun to charge for them. When selling on their marketplace, a 35% take rate is not uncommon, but I have seen marketplaces take as much as 80% of the revenue from the plugin sales!

In those scenarios, it is a lot more profitable to sell the plugin outside of the marketplace and on your own website. When doing that, you not only get 100% of the money from every sale, but you also get a lot more freedom regarding pricing models. Some stores only allow you to sell a product at a one-time price, which is not always ideal. There are many benefits to be had if you instead sell a product with a subscription fee, for example. You can find out more about different pricing models here.

Software licensing helps you sell independently

Lastly, while marketplaces are not always perfect, they do provide some sense of safety. You don’t have to worry about marketing or getting website visitors, and it is easy to sell a product on marketplaces. If you want more freedom by selling the product on your own website, you need a software licensing system that restricts access from unauthorized users and allows you to implement the pricing model you really want.

Coding those systems can be tricky…

But not with Cryptolens! Our easy-to-use platform makes it effortless to sell your plugins independently, and to alleviate some of the stress, you can even implement software licensing for free, within minutes.

Thank you for reading, stay smart!