John D Wells

I build websites with HTML, CSS, jQuery, PHP, ExpressionEngine & CodeIgniter.

Proud co-founder of the kick-ass, London-based creative agency One Darnley Road.

© johndwells

Of The Social Contract, Or Principles of… Commercial Add-On Development

Thanks to the devot:ee Store, it has never been easier to turn a little pet add-on into a commercial profit-maker. And no doubt the prospect of earning dosh for brilliance has attracted strong talent to the EE community. But amidst this fevered gold rush, are we customers getting our money’s worth?

Published:
Feb 27, 2011
Filed under:
EECMS
Comments:
13 - add yours

This is a topic I've been chewing on for a while - biting my tongue at times - struggling to formulate my thoughts into something constructive. In the two years since becoming part of the amazing EE community, a lot has changed. One particularly significant change is a swift and steady move towards commercial add-on development - a move that is starting to feel more like a greed-fueled money-grab, than an indication of higher quality software.

Don't get me wrong: I am all for commercial add-ons. At our studio we lobby every day to convince clients that our time and expertise is worth the money we charge. Developers of quality software are equally deserving of fair compensation. So what I am not saying is that I will not pay for your add-on.

I will happily pay for your add-on. But as a paying customer, I will expect a certain level of product and service. I will expect to get my money's worth.

If you plan to develop commercial add-ons for ExpressionEngine, understand what you are agreeing to - understand that you are becoming part of the EE Community, and as such are expected to uphold the spirit of that community: generosity, transparency, responsibility, and professionalism. We are an incredibly eager group of talented professionals that wish to see each other succeed as much as ourselves.

In that spirit, here are 10 "DOs" and "DON'Ts" of commercial add-on development that I think we all should live by:

1. I will... Put my name on it

Take for example just a few pillars of greatness: Brandon Kelly, Leevi Graham, Ryan Masuga, Brian Litzinger (I could go on)... I inherently trust and am willing to invest in their add-ons, not simply because from experience I know them to be excellent, but because they put their name on it. They have placed their personal reputation on the line, alongside the reputation of the software they build, which demonstrates a long-term commitment to keeping their products up-to-date and feature-rich. It's also peace of mind that if something goes wrong, I will know who to turn to for help.


"I smile favorably upon you."

Marketing yourself under a clever name is totally fine, just be sure to let us know who's behind it.  Lobster War Machine is an excellent (and hilarious) example - it takes just a few seconds on the website to know that Jack McDade is the LWM developer - yes, the same Jack behind the indespensible Structure (also brought to you by Travis Schmeisser).

See how much you suddenly trust that gnarly-looking crustacean?

2. I will... Register my add-on with devot:ee

I shouldn't need to mention this one, but better safe than sorry. Even if you decide to sell your add-on elsewhere, it's immensely helpful to have your add-on registered on devot:ee. And when you do put your add-on up on devot:ee, give as much information as possible: compatibility with other add-ons, hooks used, documentation links, image previews, etc.

3. I will... Provide publically-accessible support

Prior to the launch of EE2, probably 99% of all EE Community activity took place in the forums, and for many of us this remains a natural format for seeking & offering help when things go wrong.  EllisLab no longer hosts 3rd party add-on support on their forums, but that's where devot:ee has once again stepped in - with every add-on submitted, a specific forum is instantly made available (whether you like it or not, which I think is brilliant).

If for some reason you don't want to use devot:ee's forums, then consider Get Satisfaction or Tender Support.  But please, offer more than an email address to send to. To me that either says:

  • You don't want to broadcast to the world when someone encounters a problem with your product, or
  • You will probably not respond in a timely manner to my support request, but do not want evidence of your slow response time, or
  • You're just lazy

4. I will... Maintain comprehensive and up-to-date documentation

This is critical, and if you do not take documentation seriously, then I will not take your product seriously. Document everything that relates to:

  • pre-sales questions, such as features, screenshots, video demos, software requirements, 3rd party compatibilities
  • installation, upgrades, release notes, general usage guidelines
  • FAQs, common pitfalls, what to do when something goes wrong

5. I will... Charge an appropriate pricetag

At times I've considered building open-source alternatives to commercial add-ons that I didn't think were worth paying for... Clearly I'm not the only one.

Yeah, this is a tough one. With every product there is a sweet spot for pricing, and the EE market is perhaps still too fresh to know exactly how to calculate this number.  And in theory yes, if your client wants the capability your add-on provides, then your client should be willing to pay for it.

Still I think it's only reasonable to be sure the pricing of your add-on fits appropriately alongside the baseline cost of EE - $300 USD. Second, consider that sometimes your add-on is as much for the person building the site, as it is for the client requesting a particular feature (Low Variables is a good example). In which case a lower price point might gain a higher sales volume, making you more money in the long run.

I can't help but feel some #eecms commercial addons are just taking the piss charging.

@leevigraham via twitter, about 30 seconds ago

If your add-on adds considerable capability to a site, such as e-commerce options BrilliantRetail and CartThrob, then you are more justified in charging a higher amount. Again, look to EE for a guide - the Discussion Module for EE is $100 USD.

However if your add-on simply scratches an itch or does something very specific, I'd price it very carefully - personally anything above $25 USD and I will start to seriously hold your feet to the fire on this entire list.

6. I will not... Build it once and never update it again

Strangely, when I see a commercial add-on staying at or near a "version 1.0" release for ages, it tells me the developer has checked out.  Either that, or it was such a simple add-on to begin with that there's nothing else to do to make it better. Perhaps then I can just build it myself in a day or two (or an hour or two).

7. I will not... Release something utterly broken

Sounds absurd, right? You'd be surprised - just last week I purchased an add-on that straight out-of-the-box didn't work. It was missing an important file, which is a simple mistake but potentially costly - and more importantly not professional. The developer behind the add-on was extremely swift in resolving the issue (and even went so far as to give me a free preview to another of their commercial add-ons), but it still stung.  It will take a lot to regain my trust in that developer.

8. I will not... Charge you for an add-on that I developed for a client

Update: community feedback has challenged this one quite a bit. The general consensus agrees that if the client is aware of your plans to release a commercial product off the back of a job, then fair is fair. Again, the overall message of this is about ensuring the spirit of the commercial venture is pure. Jump to the comments for more.

I realise this is possibly contentious, but it plain seems a bit cheeky to be paid by a client to develop a bespoke plugin, and then turn around and charge us as well. It reminds me of the Costanza's double dip fiasco:

You dipped the chip, you took a bite, and you dipped again... that's like putting your whole mouth in the dip!!

Here's the thing: when you were paid by your client to build that bespoke plugin, I'm 100% certain that at some point, you got help from the community at large - either by pulling apart someone else's add-on, sending out a tweet, or getting help in a forum.  With that help, you delivered a product to your client and were paid (handsomely I hope) for it. And as thanks to us, you turn around and charge us money to use it? Come on.

The possible exception to this is if you promise to obey the #6 I will not... rule and commit to making the add-on better and better over time.

9. I will not... Encrypt my software with IonCube or similar

Not everyone will agree with me on this one either, but encrypting PHP code that I paid for sucks. It seems to go completely against the spirit of PHP in general, but certainly against the spirit of the EE community. If nothing else, it ties my hands to investigate potential bugs or issues with the purchased software - I am out of luck to help myself, at the mercy of the developer to (hopefully) provide me with an update.

10. And if you won't...

Well, I don't think you should be selling your add-on. Look, I'm not trying to shut the door on anyone, but I worry about our collective future successes.  Change is afoot in the EE universe, and I think it's only prudent that we do what we can to ensure we are changing in the right direction, and for the right reasons.  Pure, unadulterated profit should not be one of them.  And in fairness, the above should apply to any commercial software product, and shouldn't be unique to ExpressionEngine.

Published:
Feb 27, 2011
Filed under:
EECMS
Comments:
13 - add yours
 

Have your say...

  • #1
  • On 01:44 PM, 27/02/11
  • From Savannah, GA USA
  • Erik Reagan said:

John,

These are some excellent points / observations. There’s no need at all to bite your tongue on such thoughts.

I often find myself not buying from people who have only 1 add-on unless the community voice is strongly in favor of the quality and support.

Number 6 particularly gets on my nerves. I typically wait and watch the evolution of an add-on before making a purchase. It’s annoying to see stuff go on sale only to be ignored or forgotten about later.

Good work!

Erik

I strongly disagree with #8. It’s not double dipping. Most developers take a hit by making the software in the first place before selling and hope to recoup the money in sales. The pricing pays for support and the continued updating of the software. If a private customer pays them to develop it, that’s an upfront bonus, not the worth of the add-on forever.

  • #3
  • On 02:50 PM, 27/02/11
  • From Savannah, GA USA
  • Erik Reagan said:

Greg,

I’m with you on that. When I read #8 I was thinking of people building add-ons for clients and “behind the scenes” deciding to flip it for more profit.

I know numerous devs who will offer the customized add-on at a discounted rate with the agreement that it will be sold at a later date. The customer is then paying for expedition & a license rather than a 1-off add-on build.

Ultimately, as long as you own the code, you’re upfront with your client and you support your product later, it’s all good.

Erik

  • #4
  • On 03:06 PM, 27/02/11
  • From {location}
  • Boyink said:

Thoughtful article John, and in spite of my apparent rep as an “add-on curmudgeon” I do use them, just with many of the same thoughts as you’ve posted here.

I don’t mind seeing devs selling add-ons that have been client-funded.  To the contrary, I’ve always thought that (as long as the client is OK with it) that was a perfect business model for add-on development, and one I was envious of with regard to development of training materials.

I may have a different position not being a PHP developer myself, but I don’t mind seeing add-ons priced from a value standpoint vs. a “time to support” standpoint.  If you save me as an EE implementor a bunch of time I’ll gladly (and preferably), without regard for how much time the add-on took you to develop or support it.

It is interesting watching this market unfold…

  • #5
  • On 03:12 PM, 27/02/11
  • brian said:

Erik, that is how I read #8 too. If the client is aware that you will resell it after the fact then I don’t see any problem with it. If no agreement is in place then it should be free if you choose to release it.

  • #6
  • On 03:22 PM, 27/02/11
  • From London, UK
  • John D Wells said:

I appreciate all of the feedback on #8, thanks guys.

And I totally agree that if a client can essentially offer “seed money” for the beginnings of a commercial add-on (and they are aware of this), then great.  But like Erik says, it’s the potential for the “property flip” that concerns me.  So that point is sort of on there to keep everybody “honest”. ;)

The other day, I was thinking about when I first started using EE, B.M. (before Matrix). I was young and idealistic. I remember feeling astonished at the power and flexibility of EE. If you were clever enough, EE would reward you with the capability to build anything you dreamed of. No, we didn’t have Matrix and Playa and Structure and Low Variables, but somehow, we managed. We built awesome sites and web apps and became evangelists for the platform.

Fast forward to today. Now we have the very same system, which is even more extensible and powerful than when we first started. And…for much of what we need, someone has ALREADY DONE THE WORK, for pennies on the dollar! We have forgotten where we came from.

When I hear someone say, “Why do I have to pay extra for X feature?!?!”, I pause, cringe, then think to myself: YOU DON’T HAVE TO. Pretend it’s 2008, or that you are Boyink, and build it yourself. You may learn something. You may become a better developer. You may learn that actually, the addon was worth the price.

I agree with you, the the market has enabled some shady nickel-and-dimers to set up shop. But I can almost guarantee you, no one outside of Brandon Kelly is getting rich from selling addons. It can take dozens of months or even years to recoup the cost of the hundreds of hours spent developing an addon. And if you are someone who chooses to provide hours and hours of excellent support, it makes it even harder to break even.

I think you hit the nail on the head in #10. We, the EE community, are in control of this market. We can exert this control with our buying decisions and our recommendations to our clients and industry colleagues. We should continue to prop up the greatest addons and their developers and not be afraid to call out the lowest denominators.

  • #8
  • On 07:36 AM, 28/02/11
  • From Los Angeles
  • Tony Jessup said:

I agree with Rob on the cost of dev and support make addon-funded private jets a pipe dream - but it’s not always about the money. Its about a community united to help devs and grow EE. Imagine if all addons were free with fee-based support? The flipping, nickel+dime opportunists should be shown the door but let’s keep it open and give new devs the benefit of the doubt.

  • #9
  • On 12:09 PM, 28/02/11
  • From Hove, UK
  • Rob Hodges said:

Great article, and one that resonates with us at the moment as we are about to dip our toes into the world of commercial EE addons.

I think the most important thing to remember is test, test, then go back when you’re happy with the release and test about 10 times more.

  • #10
  • On 05:17 PM, 07/03/11
  • From Hove, UK
  • Rob Hodges said:

John,

We’ve written a post arguably following on from yours, an attempt to see if we can try and get some real numbers on the commercial viability of EE add-on development.

You can find it here: http://labs.electricputty.co.uk/post/commerical_add_ons_worth_it_or_worthless_part_1/

Would love to hear your comments,

Cheers,

Rob

John thanks for posting this. I think it’s helpful every time I see a debate about the business principles operating within the EE community.

I wanted to comment on the conflict between points 1 and 6.

You indicate that you have more trust when you know that an individual has put their reputation on the line in connection with selling EE addons. Over the years, as I have built Solspace with my team, I have tried to avoid building my ego into the business. I have tried to remain in the background as an EE addon developer and put my company forward. I wanted to respect and represent the fact that serious EE addon development and support is a team effort. For an EE addon to be successful, as you note, it must be versioned, improved and supported over time—and this, consistently. One person cannot stay on top of this all the time, for years. A team is required. People get sick, have babies, go on vacations, burn out, lose inspiration, etc.

So I would argue that the EE community is better served by teams of developers and sometimes hurt by the cult of ego and personality that emerge around personally branded software.

Celebrity is an important marketing tool and it is used extensively and well by some in our community. But it also brings with it risks of ego inflation as well as the risks attendant to a small gene pool. If I get hit by a bus or run out of fecund business ideas, Solspace and its products and its fans can carry on virtually without a hiccup.

mk

  • #12
  • On 12:31 PM, 31/03/11
  • From Portsmouth, UK
  • Dom Stubbs said:

As a developer that’s currently making a real effort with EE addons this makes for a very interesting read. I’m inclined to agree with Mitchell and Greg’s comments.

On the subject of ‘putting your name on it’, I think you have a very good point as far as brand recognition/loyalty goes, but the distinction between developer names and company names seems unnecessary. A good reputation is a good reputation, as is evidenced by Solspace’s success.

Your comments re support are particularly interesting as, whilst I have done my best to be easily contactable and to respond to requests promptly, I’m currently only offering support privately. It’s not that I want to keep any issues hidden away, it’s just that I haven’t felt as though there’s an incentive to switch to a public support platform and there are cost/time implications in doing so. My view has been, if it doesn’t result in users getting better support, where’s the justification for that? Perceptions, evidently. If a lot of people feel the way you do about private support then I’m scoring an own goal here, even if those who do contact me are happy with the response (and I hope they usually are). Perhaps a Tender account is on the cards after all.

  • #13
  • On 08:09 PM, 06/05/11
  • From My Ocean Juggernaut
  • The Overlord said:

The Lobster War Machine smiles favorably upon this post. With my left claw, i shalt not smite thee, and with mine right, fair comrade, I will bestow blessings upon the community at large. Code well humans, code well.