Blog on Software Licensing, Commercialization, and Revenue Optimization

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!

Usage-Based Pricing Model For Software Products

Would it not be great if all products were priced in exact relation to how much value we receive? The usage-based pricing model for software products works just like that!

Read this blog to learn the basics of the usage-based pricing model and see if your next software product can use it to get more customers. Alternatively, you can watch the video we created on this topic:

The usage-based pricing model example

Let’s start off with an example to really illustrate the benefits of usage-based pricing. Say that a company sells a product that automatically edits images based on user input. The one-time price would be high because the product took a long time to develop and has a lot of advanced features. With such a high price, the company can really only attract real photo enthusiasts.

By instead implementing subscriptions, the company gets a much larger addressable market. They can get more customers because subscriptions lower the entry barriers for customers! They could sell a limited version of the product to allow hobby photographers to try out the product at a much lower price. We have already covered subscriptions in this blog.

Now, what would happen if the company began charging the customer a fixed price for every photo that the application edits? Hobby developers would still be able to try the product at a low price since they would not edit that many photos. Real photo enthusiasts would edit a lot more and pay a higher price, but they also receive much more value from the product.

So how is that different from subscriptions? Well, with subscriptions, you have to mess around with pricing plans and feature fits. You simply have to figure out how to motivate advanced users to upgrade pricing plans, and that is not always easy. With the usage-based approach, customers automatically pay more the more they use the product!

Considerations before implementation

Doesn’t that sound great? Well, the issue is actually that not all software products can use the usage-based pricing approach. The pricing model works for photo editing software because the value metric is very clear, the more images you edit, the more value the product generates and the higher the price can be. Not all types of software have such a clear value metric, and I suggest researching how your product is or will be used to figure out if you can implement the usage-based approach.

If you struggle to find a clear value metric, you might want to combine the pricing model with other pricing models for a more effective pricing strategy. You can implement subscriptions and charge extra each month for the use of certain features, or even give a customer a limited number of credit points that are reduced each time the feature is used. If they run out of credits, they have to pay to get more!

Implementing the usage-based pricing model in code

The usage-based pricing model can be a game-changer for some software products, but only if customers think it works fairly. That is why the first step is to investigate your value metric. Then, the second step is to implement the pricing model in code. For that, you need a software licensing system that tracks the feature usage. It also makes sure only people who pay have access to the feature.

We have already made a blog on how to implement such a system for free, within minutes.

Implement Usage-Based Pricing Model

This blog covers how to implement usage-based pricing, both in your code and in the Cryptolens dashboard. We will go through two use cases. One is where you charge customers based on their usage of a specific feature. The other one is instead where you give a customer X amount of credit points, and each time they use the feature, one credit point is removed.

You can find the full documentation page here. If you would rather watch a video, we have made the following:

The two use cases for the usage-based pricing model

Let’s start off with the use case where you charge a customer different prices each month depending on how much they use a specific feature. Theoretically, the way to implement that is to track how much the customer uses that particular feature and change them accordingly. Another way is to let customers pay upfront for a specific number of credit points Each time they use a specific feature, one credit point is used up. When they reach 0, they would have to buy more credits.

You can also combine these use cases with other pricing models. One way is to have a standard subscription fee and charge them using a usage-based method for a particular feature. In the first use case, you can simply add the feature usage cost to the normal subscription fee. For the second use case with credits, you can instead give different pricing plans different amounts of credits. The basic plan can come with 10 credits. If they want more, they have to buy them individually!

The use-based approach in the Cryptolens dashboard

Creating and managing usage-based licenses is easy in the Cryptolens dashboard. After you have signed in, go to the product page. Click on a license key to bring up the menu. Scroll down to the section called “Data Objects”. At the bottom of that section, click the text that says “add/edit data objects”.

A data object is a custom variable that you can add to your license in Cryptolens. Data objects can store a string value and an integer value. This is how you track the feature usage!

To get started with the usage-based approach, please create a new data object by entering a name of your choice, for example, “usage of feature 1”. Click on the “Create” button.

Go back to the product page and bring up the license key menu by clicking on a license key. Head back to the section called “Data Objects”. This time, click on the text that says “manage credit usage”.

This page is perfect when you implement usage-based pricing. You can see the usage history, remaining credits, and where you can manually add or remove credit points for that particular license key.

In the “Current credits” cell, you will see the name you have given to the data object responsible for tracking the feature usage. You can see the current remaining credit points in the “Current value” cell. The last cell named “operations” is where you can manually add or remove credit points for that particular license key.

Simulating feature usage

To add 10 credit points, simply give the “Operations” field the value 10 and click on the green plus icon. You will now see that the “Current credits” cell has a value of 10. In the section below called “History”, you can also see a new entry saying that you added 10 credit points to that license key.

You can also simulate actual feature usage. Set the “Operations” field to the value of 1 and click instead on the red minus icon. That removed a credit and added the reduction to the history section.

Please note that all licenses that are using the usage-based approach need to include this data object. We suggest using feature templates to automatically create licenses that include this data object. You can find that tutorial here.

Usage-based pricing model in code

To implement usage-based pricing into your application’s code, we suggest you check out our full documentation page for the usage-based licensing model. You can find that here.

You can also watch the YouTube video we mentioned earlier where we cover code examples in Python.


Get Started with Cryptolens Today!

Should You Develop A SaaS Application?

Should you develop a SaaS application? That question is very valid, because today, SaaS products are everywhere, and they are very profitable too. Just look at Microsoft, Oracle, and Adobe. Some of the world’s leading companies have adopted the SaaS business model, so should you?

Today’s blog is all about the SaaS business model. The advantages, disadvantages, and some tips on how to develop them. We have already made the following video covering this topic:

First of all, let’s make sure that we are all on the same page here. What is a SaaS application? Software as a Service, or SaaS, is a type of cloud-based software where customers are able to rent the use of an app and connect to it, usually using a web browser. A SaaS product does not have to be downloaded or installed because the underlying infrastructure and app data are stored in the service provider’s data center. GitHub, Slack, and Trello are some examples you might be familiar with.

Advantages for customers

With that in mind, a customer doesn’t necessarily buy a SaaS product, they rather buy the right to use it for a limited period of time. The subscription pricing model is commonly used, and we have already made a blog post covering that pricing model. One benefit that I mentioned in that video is that subscriptions lower the entry barriers for customers, and that is also one of the benefits of SaaS products, as seen from a customer’s point of view. It’s just cheaper to get started with subscriptions than a one-time payment!

Another benefit lies within the cloud itself. Since you do not download a SaaS product, customers can use it anywhere, with any device that is connected to the Internet. There are no download or setup time delays, just log in and start!

Advantages when developing a SaaS application

Great, but what about the developer’s point of view? When you begin to code a SaaS app, you can have a lower initial cost because you can leverage cloud services from Amazon, Microsoft, or Google to host your product so you don’t have to invest in hardware.

These providers also make the application very scalable and flexible, you can simply tell them to increase your computing power as you face a higher demand for growth or seasonality reasons. This does not come with any unnecessary overhead costs and can be done pretty quickly. You can then fully capitalize on the high demand!

Disadvantages and solutions when developing a SaaS application

Now, there are also some important disadvantages and challenges we need to consider. If you really want to develop a SaaS application, I also have some solutions to share. One issue is that you have to code a lot of functionalities to facilitate all kinds of users. That can easily take a lot of time and effort. The solution to that problem could be to integrate with third-party products instead of coding everything yourself. For example, some products might benefit from having a sophisticated map function. Why code such a feature yourself, when you can simply integrate your product with Google Maps?

Another third-party solution you can use to save significant time and money is a special type of SaaS product called LaaS, Licensing as a Service. Cryptolens offers such a service! Instead of coding your own software licensing system that controls who has access to your application, you can use Cryptolens.

A final remark on continuous improvements

My last remark will be a bit broader than both the developer and customer perspective. The process of continuous improvement is a commonly used term within business management that refers to the ongoing improvement cycle focusing on employee involvement and customer enjoyment.

The SaaS business model makes continuous improvements easier since you have greater access to usage analytics data. You will then know exactly what features your customers are using in real time, and you can focus on enhancing the features your customers love the most.

Thank you for reading, stay smart!

Subscription Pricing Model For Software Products

Today, subscriptions are everywhere. If you want to watch a movie, you need a subscription. What do you need to listen to music? A subscription! And what about a car? You guessed it, you can actually get a car with a subscription with some brands. But why is that? What made companies switch from perpetual, try-and-buy pricing models to the subscription pricing model for software products?

In this blog, we will answer that question and show you how a subscription pricing model can take your software business to the next level. We have also made a video covering this topic:

Advantages of the subscription pricing model

Firstly, subscriptions are oftentimes preferred over a one-time payment since they significantly lower the upfront cost for your customers. Most people do not have $50.000 in liquid cash to spend on a car, but they might be able to afford $500/month. And although software products are usually a bit cheaper than cars, the logic is still the same.

You can also create different pricing plans to attract different kinds of customers. A basic pricing plan can be sold for a small subscription fee of $50/month for users who will only use the basic functionality of your application. It is then possible to charge extra for an unlimited pricing plan with all features at a higher price, let’s say $350/month. Both newcomers and advanced users can buy your product!

But that’s not all. You can also get more predictability from the cash flow of your business. Instead of having them buy your product and then you never see them again, subscriptions will give your business an MRR – a Monthly Recurring Revenue.

For example, let’s say that you have 10 customers, 8 of them are on the basic plan, and 2 of them are on the unlimited plan. That would give you, in this example, a monthly recurring revenue of $1.000. This is a game-changer for budget planning, you know exactly how much money you can spend on ads each month, for example!

Unless a customer cancels their subscription…

Disadvantages of subscriptions

That gives me a perfect opportunity to cover some disadvantages. The churn rate can indeed be a problem. If you charge customers on a monthly basis, you give them a lot of opportunities to churn. In the previous example, we can see that it would be especially bad for the MRR if one of the 2 customers on the unlimited plan churns since they actually bring in most of the money each month. This highlights a dependence on a few customers that you don’t have if you let customers pay the entire price at once.

You can incentivize people to pay upfront even with subscriptions. A popular way is to offer a slightly cheaper price if customers pay once a year instead of once per month, but that is not always ideal. The churn rate is definitely something to consider before choosing to implement a subscription pricing model.

Implementing subscriptions with Cryptolens

If you sell a software application as a subscription, you need a system that can automatically restrict access to your application from customers who stop paying. The system you seek is a software licensing system, but coding such a system will take significant time and money.

Using Cryptolens and our easy-to-use software licensing system is a lot more effortless! Since Cryptolens is also completely free during the development phase of your application, there is no risk of trying it out. We are trusted by hundreds of innovative and world-leading companies worldwide.

With comprehensive implementation guides in the programming languages you love, you can implement the subscription pricing model within minutes!