Today is my birthday. The day after Christmas. As usually, a quiet day. It is also just a few days before the New Year, so some resolutions are due. I know that most of them end badly, but let the future tell.

Some six months ago, I started working on an open source project I called Django Music Publisher (DMP). I will not go into details again, I am very proud of the official documentation and of these articles. The short version is that it has reached a major milestone.

Bailed on

It has been just one of the projects I worked on during this period, but the one I cared most for. And the one that was not about making money. I actually hoped to launch a SaaS with a partner. Who bailed on me about a month ago. At that point, I was left with several subscription-based services that were making little money, enough to keep them running, but not enough to sustain my family. I needed to cut my losses. Quickly.

Cutting losses

One of the issues I was facing was that my services and solutions depended on each other. At the core of everything has been my metadata validation engine, then there are some services that have been using it directly and an API that wraps the engine. And then some tools that have been using the API, DMP being one of them. If you needed to read the last sentences more than once, you got the picture. It was complicated. It actually made sense at the time when I had big plans, but when cutting losses in software, one must literally cut.

I cut off the free part of the Visual CWR Validator and I turned off the API previews. Demos of Django Music Publishers are also gone. Several other things have also been turned off.

Rethinking Django Music Publisher

DMP has grown on me, though it was rarely even tested, and there are just several publishers using it. I did try to find sponsors to continue the project, but it seems that shopping frenzy is a bad time for it. However, I did have another reason to continue the project. It promotes me as a software architect and developer not just within the music industry.

And I realised there are several reasons why publishers are not using DMP, and none of them has anything to do with DMP itself:

  • Music publishers, and generally people working in music publishing, don’t like to work in music publishing. Sorry, but for the vast majority, it is true. Very few of them dreamed about becoming music publishers. They wanted to create or perform music or had some other, mostly artistic dreams. Some of them have given up, some live their dreams, but when it comes to publishing, it is a nuisance, at best. And those who actually like music publishing need more than DMP.
  • The English word “free” is confusing. It had two different meanings, one related to liberty and the other related to price. While both meanings could apply to DMP, in both cases there were some caveats. They had to go.
  • Some key features were missing, but some were simply not obvious. The interface is optimised for people used to it, not the first-time users, and particularly not for users used to legacy software solutions.

But whenever I actually talked to any of them, most said it was what they needed, but would prefer it as a service.

Cutting and rebuilding

I decided to cut it off from my API and replace the data validation and CWR generation with the open source code. I ditched the CWR syntax highlighter and CWR 3.0 part, as it would be too much work in vain for the time being. I also added two new features:

  • DMP now handles original works and modifications,
  • Writers can have multiple original publishers.

I just got tired of writing “original publishers of original works”, instead of plain “original publishers”. Both features must be explicitly turned on in the settings, to retain backwards-compatibility.

And I added some royalty distribution processing. I actually think that most of it should be done in Excel or in the accounting software, not in publishing software. I am sure I will make this a subject of at least one article very soon. Let me just state that the part I really believe belongs in the publishing software is present in DMP.

With all these changes, DMP has become truly free, much more has become obvious or at least simpler to explain. Still, it was not a service. Yet.


I did state earlier that I was looking for sponsors in vain. Well, I did put myself in the shoes of a potential sponsor. It felt really well. It felt well as a society who needed to cut support costs and offer more to the affiliates. It felt well as a major who is looking to get more sub-publishing deals. But, most of all, it felt well as me. If I was to turn this into a service, I would have several demands and feature requests. Exactly the ones described above and already added to the code.

Before I put myself in those shoes, I was thinking that the service should be a software-as-a-service. But I realised I was not really interested in that. I wanted an application platform-as-a-service. The difference may not be clear at once, so let me explain.

Software-as-a-service is charging for the use of software. Application platform-as-a-service charges for the platform on top of which the clients run their applications. Sure, most of them are general, but there was no reason not to have one that is specialised for a single software.

And then I started coding. In about two weeks, right around Epiphany, I will be officially releasing an aPaaS called DMP Guru. It will offer you the service of installing, configuring, hosting, maintaining and backing up your DMP instance. With absolutely no lock-in. If you want to move away from the service to a different hosting arrangement for your DMP instance, you will just download the database backup and move.

Maybe you will even go a step further and have a competing service. And take my clients. And have a lock-in thing if you are so inclined. I may even end up selling you a white-label solution for it.