Writing a Freely Distributable Script

Posted August 19th, 2008 by Mike Cherim

This article is about the pros and cons of writing a script, then freely sharing it with others via distribution on the web. Specifically I’m focusing on a script, but believe me when I tell you the points raised in this article are equally applicable to open source templates, themes, widgets, and more. I’m writing this so that you, as a script author to be, will be better informed and prepared for what’s involved if you want to do it right. The information herein is based on my own experiences as a script writer, both good and bad.

Rationale

Before running off and writing a script to share with the world, realize that there’s a lot to it if it’s going to be done right. It’s not necessarily easy. Like most things in life their are dues to be paid as well as rewards to be reaped. Are traditional rewards like money your only reason to do it? If so, I’ll tell you right now it’s rarely enough to justify the hours you’ll spend. You need more. In addition to the traditional rewards I, for example, do it to give back to the community — people shared with me so I, too, should share. From this I enjoy that warm, fuzzy feeling. Whatever your rationale, the point here is don’t do it because you’re bored, you think it’ll be a neat and temporary diversion, or you’re doing it to get rich.

Responsibility

Will you be managing the script or will you let the open source community get involved? If you choose the latter the potential of the script is limitless, but the responsibility of building the infrastructure is yours whether it be setting up a support structure, wiki or forum, or even building a Subversion (SVN) with which everyone can work collaboratively. In my case, I have chosen to keep a tight reign on my scripts as I want better distribution control. This limits their adoption, but offers more simplicity. But… yes, there’s more to consider.

Moral Obligation

This is a different kind of responsibility, and you might wonder what moral obligation has to do with this subject, but it does play an important role, if you want to do this right. The obligation is to consider the needs of people who will use your creation. Not just those putting the script to use, but the end users as well. In other words, web accessibility and usability needs to be considered. I’ve complained about this before, considering some of the horrible code out there, and I argue that the person writing the script must get it right. After all, one script writer’s poor performance carries the consequence of creating hundreds, thousands, even millions of copies of that performance. Writing valid code, semantically, hurts no one.

Support

This is a biggie. Wait, let me rephrase: support is the biggie. Based on my experiences, you’ll spend more time giving away free support than you will counting your donations, fielding compliments, and doing script revisions, combined. It comes with the territory, though, and is yet another kind of responsibility. Yes, a responsibility. If you build it they will come, and when they ask for support you better be there to give it. Setting it and forgetting it does not wash. Scripts are never, if ever, perfect so you will always find there are people with questions and support to be given. People ask me for support for my scripts all the time and I always write back. I don’t support everything such as styling, but I will send people to a forum so they can be helped. I also don’t support script modifications figuring if they broke it they can fix it. And I definitely don’t support other people’s scripts. I added that because I am asked a lot. Once one gets a reputation for returning support emails quickly it can offer a downside. What annoys is not those doing the asking (though I think it is a bit presumptuous), it’s because they can’t raise the developer of the script they’re using so they try me as a last resort. I also send them away as I cannot help those folks, but I do write back. If you’re going to offer a script, support it as you would like to be supported if the tables were turned, within reason of course. Don’t be a pushover, but stand by your product.

Support Forums

Are you crazy?! Don’t do this unless you want one of two things to happen. First, and the most likely of the two, you will go through a lot of trouble setting up some forums to which you’ll end up with 15 members and twice that number of threads. It’s just not worth it most of the time. Second, you’ll go big time on us. If that happens unintentionally — congratulations since you must have written a kick ass script — you may quickly find yourself in over your head just managing the community. You’ll have to quit your day job… for a free script. Be careful. If it happens intentionally, then some forums will be awesome. Let the community solve its own support issues.

Mailing List

I don’t do this, I instead invite people to subscribe to my blog’s feed, but it’s not a bad idea to offer an email mailing list. This is especially true for scripts that could be vulnerable in important ways — you may have to issue an alert of sorts. A mailing list would also be useful to notify users of regular updates, regardless of their importance. Don’t abuse the list, though. Keep it ad-free, don’t pester your subscribers with your spam, and make sure you offer a plain text email header and content if you opt for HTML formatting in your notifications.

Donations

Rule one: Don’t expect to get rich or even cover your costs through donations! That said, the third version (v3) of my contact form is a success I think. First of all, I don’t get nearly as many requests for support as I do for my version two (v2) form for WordPress, even though it is a much more complex script. Second, I have gotten more total donations during v3’s short life than I have the whole time v2 has been available. My time hasn’t been properly compensated or anything like that, but I did note a marked increase. Donations do tend to run hot and cold and the amounts can vary. I have gotten a low of a two dollar donation from a developing country and a high of a one hundred dollar donation from the United States — I always write back with a thank you. I appreciate them both equally, perhaps even more so the former when considering that two dollars is a day’s wages. I also get donations from other web developers who use my form for their customers’ web sites, usually $20-$30 a pop. I really appreciate these as well. Not all give them, I’m sure, but the feeling of satisfaction resulting from the acknowledgment is priceless.

Linkbacks

Speaking of acknowledgment, one benefit, especially if it’s provided with the script, are linkbacks. I provide a linkback with my scripts. It’s voluntary; I don’t force it down anyone’s throat. I allow people to not display it if they choose (it is displayed by default). But lots of people do. It’s a courtesy, and one a I really appreciate. I display a link to WordPress because I didn’t create it and I didn’t have to pay for it. It’s the least I can do. Lots of people kindly extend me the same respect. The benefit to this show of appreciation is an increased popularity demonstrated by way of elevated page rank and the resultant search listings, solid traffic, and a high Alexa.com score. If for nothing else, I enjoy the benefit of using Google.com to search my own blog. My articles are so well indexed Google it works better than my own search facility. It blows my mind.

Security

Scripts, themes, templates, it doesn’t matter, security must be a concern. This is not something that can be overlooked. I hate to say it, but this is another responsibility. In the case of my forms, they are security driven (necessity is the mother of invention), but other scripts also need to be hardened to the best of your ability. Not doing so is akin to shirking your moral obligation as previously described, but instead of widely distributing a barrier to accessibility, this oversight’s consequences can be even more problematic.

Revisions

I have two words about this: Archive them. You don’t have to allow people to download them on demand, but you should keep them in case support needs require an older version for host support reasons, or worse, in case you screw up the current version you can temporarily revert back to the previous version until you isolate and correct the problem.

Contributors

People may want to help you with your script by adding improvements or refinements. If you use these revisions you should acknowledge these folks (and at least say thanks if you don’t). Check out the contributor’s list for my version 3 form as a good example of doing it well. These folks really helped so this is a good way for me to show my appreciation.

Abusers

If you make it, people will try to break it. It’s okay. That’s the environment we web in. That’s one reason why revisions are necessary. Of course there are always other updates that make revisions a necessity, but Internet miscreants can be an important factor. If abusers do manage to abuse your stuff, you need to fix it right away, then communicate the problem, and make a patch or whatever you need to do. If you announce the issue before you have a fix, close down the download until it’s been dealt with. This should also be the case if you cannot rectify the problem right away. If there’s a security issue, don’t distribute it further.

Thieves

One day you may find your script with someone else’s name on it. I know, you’ll say “well I’ll be darned.” How’s the saying go? “Imitation is the sincerest form of flattery.” You can see it that way while you’re darning, it all depends on how serious you are about your copyright, or whatever open source license you deferred to with what amounts to a some rights reserved copyright. If you are serious about protecting your script — which I should add is impossible — document this effectively, openly, and of course legally. Also, do secure a documented copyright by registering a claim at the Library of Congress, US Copyright Office. You have copyright protection by default, without the paper, but the paper validates inception; it’s useful in a court of law.

Complainers

Screw ‘em. I’ve been told off a couple of times, typically by frustrated newbies who refuse to do nothing but complain. My take: Look Dude/Dudette, it’s a free script. If you don’t like it, don’t use it. If you want help, stop chewing the lifeline. This sort of thing blows me away, the audacity of the complainer defies logic. If I charged them for the script, then being a jerk would be slightly more comprehensible. But free?! Move along… next.

Love

This article ended up being longer than I had anticipated. It’s perhaps more involved than I have come to realize all this time. I do want to end it on a positive note, especially after my harsh words about complainers. Some people contact me, will contact you, oozing with gratitude. “You’ve saved me.” Or “you’re my hero.” Or “best script ever.” This show of love sometimes pays by feel good impact more than donations ever could. Your hard work makes someone’s life on the web a little safer, easier, or better. The love is deserved. Hours and hours, and blood, sweat, and tears go into some of these things, but the confirmation of knowing and being thanked feels really good. It sort of makes the rest all worthwhile.


5 Responses to: “Writing a Freely Distributable Script”

  1. Ahmad Alfy responds:
    Posted: August 19th, 2008 at 6:19 am

    I felt every word you wrote on this article

    2 years ago I released a free tempate for a Joomla! based forums called ( Fireboard ) The template was a success cause it was directed to people with dark themes. at the time of release there was no other dark templates so people loved it.

    After release and download count passed 3000, I started to get complains from newbies who cannot install it on their sites. I tried to respond to every question at the begining but later I got overwhelmed with questions like “how do I unzip the file” and “can you teach me how to use ftp”!!!!

    Later on, the Firboard developers came up with a new version of the forums where they changed the core classes and ids! I got zillions of requests to update my template in a time I was preparing for the final exams of surgery (I am a surgeon too!) I thought its gonna be easy and quickly I’ll be be able to update my original theme… 2 hours later I decided to stop cause its going to take alot of time. People then did nothing but complaining… now I am the bad person…

    Complainers… Screw ‘em yeah!!

  2. Web Designer Mike responds:
    Posted: August 21st, 2008 at 8:59 pm

    One donation idea that I think works well is the idea of donating a cup of tea or cup of coffee. Have you seen those graphics? It’s a great tool since it makes it seem like you’re gifting something tangible as a present. And it only costs $2.

  3. George responds:
    Posted: September 5th, 2008 at 11:05 am

    Your work has been Great, Keep it up man. Even though I have not really written any scripts for any website, I know how it’s like. Being a Webmaster myself, it feels really not well-treated sometimes, while still helping many others who still need your help. So, I now only pay attention to the Users who are genuinely asking for help by judging their way of understanding a code or problem relating to computer…

    Bottom line, like you said, still I’m reaching out in a way that help them sincerely, beyond just money, that includes some who just saw me at the lobby and I’d then ask them to email me the file (even though I have a forum, what a nuts I am)..

    Thanks for your nice Information you keep sharing,..

    George

  4. Ferienwohnung Sizilien responds:
    Posted: October 6th, 2008 at 12:11 pm

    That is pretty cool, the set amount and ease of use makes it enticing. But then again, it locks in a low donation so I’m not sure how it’d balance out in the long term.

Sorry. Comments are closed.




Note: This is the end of the usable page. The image(s) below are preloaded for performance only.