Planning Your Plugin

You’ve written the next Hello Dolly and you want the world to use it. What should you do?

1. Test once and test again 1. Test once and test again

With any luck, your plugin will be used by lots of people in many different situations and hosting environments. You’ll want to make sure you’ve tested your plugin to make sure it works in any situation and doesn’t frustrate your users.

Top ↑

2. Pick a good name 2. Pick a good name

A plugin name should reflect the uniqueness of you and your work. When you pick a name, make sure you’re not violating trademarks or stomping on someone else’s product names. If you’re not working for Facebook, you shouldn’t name your plugin ‘Facebook’s Dancing Squirrels’ after all. A much better name would be ‘Dancing Squirrels for Facebook’ for example. It can be hard to come up with a good name, so take your time. Your plugin URL cannot be changed after you submit it, but the display name can change a thousand times.

Top ↑

3. Write great documentation 3. Write great documentation

A README.txt file is the best place to start, as it’s a standard reference point for all plugins. You’ll want to make sure you include:

  • A concise description of what your plugin actually does. If it does a lot, it might be better as two plugins.
  • Installation instructions, especially if there’s special configuration to be done. If a user needs to register with your service, make sure you link to it.
  • Directions on how to get support, and what you do and do not support.

Top ↑

4. Push out a first version to WordPress.org 4. Push out a first version to WordPress.org

The WordPress.org plugins directory is the easiest way for potential users to download and install your plugin. WordPress’ integration with the plugin directory means your plugin can be updated by the user in a couple of clicks.

When you’re ready to release your first version, you’ll want to sign up. After a review process is completed successfully, you’ll be granted a Subversion Repository for your code. The WordPress.org site has good documentation for making your first Subversion commits and the overall process.

Top ↑

5. Embrace open source 5. Embrace open source

Open source is one of the most powerful ideas of our time because it empowers collaboration across borders. By encouraging contributions, you’re allowing others to love your code as much as you do. There are several options to open source your code:

  • Github makes it simple to get others involved with your project. Other developers and users can submit bug fixes or reports, feature requests, or brand new contributions easily. Github has a great documentation portal and even an interactive demo if you’ve never used Git before.
  • Bitbucket is an alternative to Github with similar features.
  • The WordPress.org Plugin Directory provides and requires you to use a Subversion repository.

Top ↑

6. Listen to your users 6. Listen to your users

You’ll often find that your users put your code through many more test cases than you could’ve imagined. This can be tremendously valuable feedback.

Releasing your code through WordPress.org means your plugin automatically has a support forum. Use it! You can subscribe to receive new posts by email and respond to your users in a timely manner. They just want to love your plugin as much as you do.

Andrew Spittle, a Happiness Engineer at Automattic, has a couple good posts on providing support: “Avoiding Easy” and “The Speed of Support.” Jetpack also has a post you can point to about writing great bug reports.

Top ↑

7. Regularly push new versions 7. Regularly push new versions

The best plugins are the ones that keep iterating over time, pushing small changes along the way. Don’t let your hard work go stale by waiting too long to update. Keep in mind, constant upgrades can cause ‘Update Fatigue’ and users will stop upgrading. Keeping a balance between too few updates and too many updates is important.

Top ↑

8. Rinse and repeat 8. Rinse and repeat

Like in other parts of life, the best things come from patience and hard work.