New year, new site and a lot of great things to come!
Old site retirement, update in the pricing model and new pgModeler versioning

A bit of history...

Many might not know but I was officially working on a new site version since the beginning of the last year, when I pushed my first commit to a GitHub repository on February 1st. It was starting there a new part of my dream: create a web site that my project really deserves. Not that the old one helped me out to spread pgModeler throughout the community since 2012, but if you are a developer like me should know that a software (in that case, a site) stays 4 years without any update is a death sentence! Why I did take so long to create a new one? The answer is quite simple: pgModeler was too unstable and not mature enough to stay in standby while I could create something new that would not involve C++, Qt and PostgreSQL. So I decided to create a very simple page just to publish my project and see what would happen then.

But that simple page started to be a problem when I decided to charge for binaries as a trial to gather some financial resources for the project. So I came with THAT monetization model: bronze, silver, gold, platinum and diamond. Different prices, different platforms, different versions and many problems! The first one was that I fully relied in PayPal transaction infrastructure. Once done a payment change its information was impossible. In cases when the user would bought the wrong package it was needed to refund his/her payment and ask him/her to do a new purchase by selecting the correct package. Pretty annoying, I know! The second problem was related to the pricing model itself (see below). There were too many options that were leading users to confusion and anger sometimes. The main issue was with the most basic and cheapest packages: bronze and silver. These packages don't granted version upgrades for the user and that was causing a lot of complaints. So I started to rethink if that model was correct or even fair.

This way I started to think in update the pricing model but implement the new one in the current infrastructure would be a disaster due to the mess in the code and the lack of some features I needed to make things more dynamic. Thus, in the end of 2015, I started to study and test some web development frameworks. I finally decided which one to use only in the end of January, 2016. In the following month I put my hands in my new project: the site. Things were running well until the mid July when I was diagnosed with a shoulder tendon rupture, specifically in the rotator cuff. My doctor would not wait for too long and in August made the correction surgery. The only recommendation he gave me during the recovering: at least two months away from a computer. That was really bad for my plans, but my health was involved so I suspended my work in pgModeler and in the site for 2 months. In October, almost recovered, I released pgModeler 0.9.0-alpha and resumed my work in the site until December when I finally could finish it. Now here we are retiring that old buddy and putting this rookie to work hard!

The new pricing model

After carefully analyze the monetization model I was intending to use I achieved one that I found to be at the same time fair to the user as well to the project. In short, forget precious metal labels or gemstone names and think only in platform and time. Before I start to describe the new pricing system let me clarify one thing that may be causing additional confusing to the users: pgModeler is not sold in form of licenses instead what is commercialized here is the access to the binary packages by means of subscriptions. This is so true that in no moment when the access to packages expires the software usage is automatically blocked. If you have the software installed on your machine you can keep using it without any restriction. Only updates will be denied to you, of course, if you don't want to compile pgModeler for yourself, as this is an open source software.

Okay, back to the new model. Here in the new site when purchasing the access to binary packages you just need to select for what platform you desire to download the files and for how many time the access will last until expires, see the following image. Quite simple, huh? As a bonus, the bigger the subscription validity time and the amount of selected packages the bigger is the discount given to the final price. One may ask: what happens to updates? The answer: no matter the packages you have selected or the duration of the access, you will have full access to all updates released within the period of your subscription, without a single addition to the price you paid. Details about the new monetization system can be found in the Terms of Purchase & Download (en_US or pt_BR).

The site still relies in PayPal as the payment gateway but the tecnology used to build it allows the introduction of new payment systems and I'm already studying new options to introduce in future updates. What matters right now is that the purchasing and access to the packages was simplified but that doesn't means less security because payments still occurr in PayPal's secure environment and the access to the packages is done via an unique access key which greatly diminishes the chances of unauthorized access. The next image gives a comparative on how the download form have changed substantially.

With the introduction of the new payment model turns the old one incompatible. Thus, download packages with an older subscription is not possible. In order to workaround this issue I've created a payment conversion tool available in the Download pane. If you still have a valid subscription you need to convert it to the new model and receive an access key in order to get your files.

Changes in pgModeler versioning

Until the series 0.8.x, with a few exceptions, all minor versions ended up in 2 (0.6.2, 0.7.2, 0.8.2). Actually, there is no real explanation for that, I simply decided to move to the next major version when I thought that series was ready. But now, with pgModeler 1.0 in mind, I want to put some order in the releases numbering. Not for a mere lack of continuity but because extending the releases from 0.9.0 to 0.9.9, for instance, I have enough time to mature the code with new features and bug fixes prior to all advances I want to make specifically in the release 1.0.0.

I won't to reveal them right now but when the time comes I'll describe in details what I want for the most improved release I ever planned. Also, it's not a good move to give an exact date when pgModeler 1.0 will arrive but I want to start to work on it in less than one and a half year. Only time will tell, because it is not an easy task to conciliate my work with pgModeler and my "real" jobs as systems analyst, husband and father, but I have faith that pgModeler has a shiny future ahead and as long as I have health and energy I'll bring lots of improvements for all users because they are the main reason of this project's existance.

Other plans from now

Now that we have a better site, I feel comfortable in get back to my main activity in this project: code, code and more code. I have a good set of issues to solve and new features to include in the next development release (0.9.0-alpha1). Also, I really need to update the user's guide which is does not receive any update since the release of pgModeler 0.8.2.

An important note to give to all users is that I'll use this new web site as my main channel for release announcements and abuse the blog section to bring you lots of tips and tricks for pgModeler as well general thoughts. The social networks profiles will be used as secondary places to publish contents. So, if you want updated information about pgModeler's development the first place to look is here!

Also, with this new platform online there are a wide range of ideas I want to put in practice gradually. One I would like to create is a video library (screencasts) which goal is to instruct the users on how to handle the majority of the software's features. But before I start to create these videos I really need to work on my not-so-good English. Yeah, I know, you have noticed that! Sorry, I do my best. A Portuguese speaking guy writing or talking in another language without a bit of practice is at least funny, not to say disastrous. But someday I'll achieve the fluency in English!

Okay, that's it! I hope that I can have enough time to write a few blog posts per week. Stay tuned and don't forget to leave your thoughts in the comments section! Back to code now... pgModeler, here I go!

Comments (2) Add a comment

Shane
June 3, 2017 at 23:17:01

When you get to version 1.0.0 consider using Semantic Versioning or "semver" for future releases.

It may not be as important for your project since it probably doesn't act as a dependency for other projects, but it can be a logical methodology to think about how changes impact the application internally.

Raphael Araújo e Silva
June 5, 2017 at 17:41:56

Thanks for the hint, Shane! I think I'm on the right way but l'll study it carefully and try to include it when pgModeler 1.0.0 is under development! ;)

Add new comment

  • 0/1024