The Emergence of Sueetie Licensing

In developing the Addon Pack coming in Sueetie v3.1 I realized it was time to put a licensing model in place.  "Wha’? Ya mean besides GNU?" you ask.  The Sueetie Framework and all apps on Sueetie like YetAnotherForum.NET, ScrewTurn Wiki, etc. are released under GNU GPLv2.  The licensing I’m talking about is for packages like the Addon Pack which is not part of the Sueetie Framework.  Other licensed packages you’ll see in the Sueetie v3-v4 timeline are Sueetie Analytics and Sueetie Marketplace.  I have ideas for other Sueetie packages, but the Addon Pack, Analytics and Marketplace are the top three in the pipeline.

You wouldn’t think putting together a licensing model sounds like much fun, but it was really interesting.  In a licensing system you have the license, the client acquisition of that license, a client license entry component, license detection logic in the licensed application, and a license entry and management system for both client and vendor.

Let’s start with the license itself.  Here is a sample Sueetie License.  It’s not a REAL license.  It only looks like one, so no need to try using it at home.


It looks very much like a simple Guid, but within the characters is logic which provides the following information:

  1. Sueetie Package Type (Addon, Analytics, etc.)
  2. License Type (Free, Sueetie Insider, Small Business, Corporate)
  3. Major Release Version (v3, v4, which must match the release version of the framework installed)

So that’s the license component.  Next up is the Client Acquisition component.  Simply put, that ain’t done, or even started. I’ll tell you more about that before 3.1 is released.  In the meantime we have in place what we need for the Addon Pack to move forward and be a great addition to v3.1.  The only thing I can tell you for sure about the license is that there will be both free and commercial offerings, with some functional limitations in the free version.

The Client License Entry component is next on the list.  A screenshot of the Sueetie Administration License Management page is below.  The license is acquired and entered in the "Add New License" where the built-in logic I described above enters it on the site license list with package, version and license type identification.  Licenses can also be removed and upgraded (from free to commercial.)

License Detection in the licensed application is next.  Here’s an excerpt from the Addon Pack’s IpBlocker HttpModule.  Before executing we check for a valid license.  The Sueetie Licensing logic also supports testing for type of license.

I always admired Roger Martin’s approach to licensing in Gallery Server Pro.  He supports a 30-day trial period with full functionality which is displayed on the GSP Admin Home Page.  The notice contains a link back to Roger’s site where you have the opportunity to give Roger a PayPal donation.  Whether a donation is given or not, you get a license to use Gallery Server Pro.  Donations over $50 give you the option of turning off the Gallery Server Pro footer logo.

I took a similar approach to licensing Sueetie packages.  A 30-day trial period is supported with full functionality, after which a license is required.  I’ve never been a donations kind of guy, so we’ll be going with a free vs. commercial license approach with the free license incurring some functional limitations based on the package.  Details will be coming when v3.1 Release Day approaches.

Here’s the 30-Day Trail Period notice which is displayed on the Addon Pack Main Menu in Sueetie Administration.

While developing license support was fun, it’s time to get back to filling out the Addon Pack, along with some new features to the Sueetie Framework coming in v3.1 that I think you’ll like a lot.

Article written by

A long time developer, I was an early adopter of Linux in the mid-90's for a few years until I entered corporate environments and worked with Microsoft technologies like ASP, then .NET. In 2008 I released Sueetie, an Online Community Platform built in .NET. In late 2012 I returned to my Linux roots and locked in on Java development. Much of my work is available on GitHub.