1. Code
  2. General

Guide to Managing Premium WP Projects – Part 4: Maintaining

This post is part of a series called Guide to Managing Premium WordPress Projects.
Guide to Managing Premium WP Projects – Part 3: Marketing

There are a number of important considerations to make when working on premium WordPress-based projects. Up to this point, we've taken a look at some strategies for planning, building, and marketing projects but we've yet to look at what it takes to actually maintain one.

After all, no software project is free of defects. Assuming that you generate a sizable user base, customers will also have ideas for features or changes they'd like to see in a project. To that end, it's important to have systems in place for tracking issues, planning features, and communicating with your users.

In this final post in this series, we'll take a look at how to best position your project for long term management that works well for both you and your customers.

Source Control

Source Control

If you're a professional developer, then you're already aware of (and likely accomplished with) at least one source control system. If that's the case, then this section may be of little worth, but if you're relatively new to development and/or source control, this may end up being one of the most useful utilities you add to your toolbox not just for this project, but future work, too.

Simply put, source control (sometimes referred to as version control) is a way to keep a historical record of every change that's ever made to any file in your project.

Specifically, it grants you the ability to take snapshots of your code for release, rollback to previous versions of the project, and provide notes on what each update accomplishes. If you're working with a team, it allows you to see what each person has contributed to the application, resolve conflicts, and merge differences.

Ultimately, source control provides a way for you to maintain a history of your project, manage iterations of your work during which you patch bugs and introduce new features, and tag specific versions for release.

There are a number of different source control systems available, too. Though detailing each system or how to use them is beyond the scope of this series, it's important to note that there are a number of free options available:

Each platform offers its own share of advantages and disadvantages. Rather than spend too much time deliberating on which system to choose, you're in a much better position to pick one and begin using it. Having something in place is better than having nothing in place.

Bug Tracking

Bug Tracking

As previously mentioned, your project is going to be released with bugs. No matter how much time you spend testing and evaluating your work, it's near impossible to catch every single issue.

Since you're not going to find them, your users will and you need to be prepared for tracking what they find. Searching for a bug tracking solution can be daunting - the market is rich with options.

Early in your project, there's no reason to drop coin on a major solution. You can always scale up as your project grows. Effective bug tracking requires only a few features:

  • Description simply states what the problem is and any cursory information about how the feature is misbehaving.
  • Steps To Reproduce provides instructions on how to replicate the issue in your local environment.
  • State of Resolution provides the steps of how to resolve it in the current version (or how this was resolved in the latest build).

There are a number of free ways to track bugs - some old fashioned, some modern web applications:

  • Spreadsheets can be especially useful especially using tools such as Google Docs. Each row represents a feature, each column maps to the note above.
  • Email. This is a very simple way of tracking bugs, but by setting up a label in the subject line and a custom filter in your email application, you can manage each issue as a separate email note and delete them from your mailbox once they've been resolved.
  • Notes. Sometimes a plain text document is all it takes, right?
  • Bugzilla is a free web application designed specifically for tracking bugs in your software.
  • Trac is another free web application for tracking bugs. It's also used by the WordPress core team to track WordPress issues.

Again, it's more important that you area tracking issues rather than how you're tracking issues and that you're using those issues to make your product even better.

Support Offering

Support Forums

If you have bugs to track (and you will!) then it only makes sense that you'd be offering some type of support for your project. On top of that, offering support also provides users an incentive to purchase the product (or purchase a higher level license) for the piece of mind that they will have someone "on call" to answer their questions.

For what it's worth, I see this as mutually beneficial: users have someone available to help them with your product, you have customers providing feedback to help you grow your work.

Just as with bug tracking, there are dozens of support platforms ranging anywhere from tried and true bulletin board systems to more advanced ticketing solutions. Remember though, our goal is to do this on the cheap.

  • BBPress is a free bulletin board system developed and managed by the WordPress team. It's a free, easy-to-install solution.
  • Blog Comments. If you maintain a blog, invite users to voice their concerns in the comments of some of your posts. This will provide an easy for for them to follow your project and share their issues.
  • Email is the old standby. Simply provide an address for users to contact you and manage all of the incoming issues in your mailbox.

As your project grows, you can look into more advanced support applications that scale with your work.

For what it's worth, I do find that using public systems such as forums or comments serve the customer base well because once you can answer once and have it available, you have documentation for how to achieve (or resolve) an issue with your work, and you have a way to track bugs and feature requests from your users.


Although this section is a bit more subjective, I find that it's worth noting: Customers love communication. They want to know the product they've purchased is worth the money spent. Because the WordPress Community is so active, they are used to updates which means that your product will need to stay up to date with the platform.

One of the best things that you can do for your customers is to let them know that you're working on the project - that it's in development and that you're listening to what they are saying.

Of course, you don't want to over communicate. Here are a couple of ways to give your users heads up on the status of the project without flooding them with information:

  • Blog. Maintaining a blog is a great way to keep readers updated on development. Invite them to comment on posts and engage with them there.
  • Email Newsletter is yet one more way to allow users to opt-in to communication. Collect addresses using a tool such as MailChimp and send regular emails out.
  • Forum Updates. If you opt to provide a support forum for your users, open a thread dedicated to updates and provide regular notes for all of the members.

Note that all of the above are ways in which users can opt-in to hear from you - you're not forcing any information on them that they don't want to hear. That's yet another way that you can continue to provide communication to your users without inundate them with information to the point of being annoying.

We've completed covered all stages of planning, building, marketing, and managing a premium WordPress project on the cheap. Hopefully the series has provided some guardrails that will help you with your next (or current) project.

Of course, these posts aren't exhaustive. There's always more to discuss and more to add so feel free to add your own thoughts in the comments!

Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.