There are many factors that come into play when deciding where to host your open source WordPress plugin or theme. Who is your target audience? How much support do you want to offer? Is the project open for collaboration? For many developers this choice often comes down to WordPress.org vs. GitHub.
In the past, hosting with WordPress.org was the only option that would allow developers to push out updates to their plugin or theme via the WordPress admin. The GitHub Updater plugin, created by Andy Fragen and added to GitHub in July of 2013, makes it possible to ship updates to Github-hosted plugins and themes. This makes it convenient for developers who prefer GitHub to stay within their preferred workflow while continuing to provide updates. Incidentally, this plugin is banned from the WordPress.org repository.
Of course there are a number of other places that you can host your project, i.e. your own website or another code sharing site. We’re looking at GitHub vs. WordPress.org for the purposes of this comparison, since the two are among the most popular.
Advantages of Hosting Your Project on WordPress.org
By far, one of the best reasons to host a plugin or theme on WordPress.org is the increased exposure that it will offer for your work. Your extension is just a couple clicks away when a user performs a search within the WordPress admin, giving you an audience of millions of potential users.
A summary of the advantages includes:
- Maximum exposure: Your extension can be searched for within the WP admin
- Built-in trac and support forums
- Easily push out updates to users
- Ratings, reviews and download stats
- Extensions are more trusted due to the WordPress.org review process and guidelines
Of course, some of these same “advantages” could also be considered disadvantages. For example, if you’re not willing to offer free support, having your plugin or theme on WordPress.org with such a wide audience may send you a flood of support requests. If you don’t have the time to provide updates or support, the resulting star ratings and reviews may hurt your extension’s reputation.
Disadvantages:
One of the primary disadvantages of hosting a project on WordPress.org alone is that it can severely limit collaboration. Themes and plugins on WordPress.org are simply not geared for collaborative development. Most developers find it easier to collaborate via Git. Hosting on WordPress.org also requires a basic knowledge of SVN, which is not very popular these days. In summary, the disadvantages include:
- SVN
- Does not encourage collaboration
- Possible massive influx of support requests
Advantages of Hosting Your Project on GitHub
Where a lack of collaboration is probably the strongest disadvantage of hosting on WordPress.org, it’s also the biggest advantage to hosting your extension on GitHub. The barrier of entry for participation on GitHub is much higher, which significantly lessens the likelihood of you becoming inundated with support requests.
Other advantages include:
- Easy for others to contribute to your project
- Built-in wiki and issues queue available
- Fewer support requests
- Can easily push out updates w/ use of GitHub Updater
- Fewer restrictions – No code review process or extra guidelines for compliance
- Traffic analytics – GitHub recently introduced analytics data for repositories
Disadvantages:
- Likely a smaller audience
- Will need to bundle the Git Updater with your extension or ask users to install it in order to ship updates
- Does not include the same level of user trust as projects hosed on WordPress.org
If you don’t want to have to mess with SVN and don’t mind losing out on the audience you get hosting on WordPress.org, then hosting your project on GitHub might be a strong option for you.
The Best of Both Worlds
There’s no clear winner in the comparison between hosting on WordPress.org vs. Github. It depends entirely on your workflow and your goals for the extension. Of course, many projects do a mixture of both, either through maintaining git mirrors or synchronizing via a script. Since every GitHub repository is also a Subversion repository, you can use SVN tools to checkout, branch, and commit to GitHub repositories if you are so inclined.
Brent Shepherd has a script that will deploy a WordPress plugin from within Git to WordPress.org’s SVN repository. “Since running the script for my plugins, I’ve not suffered the frustrations of minor errors – like having version numbers in the readme.txt & plugin file differ,” Shepherd said. “I’ve lost less time deploying, so I’ve released more frequently, which means fewer bugs in the wild.”
Here are some other resources you might want to check out for learning more about working between Git and SVN for WordPress extensions.
- Creating a Synchronized Github Fork of a WordPress.org Subversion Plugin Repository – Ben Lobaugh
- Revisiting Git, Github, and the WordPress.org Plugin Repository – Boone Gorges
- Git in my Subversion – Daniel Bachhuber
- Syncing Git Repo with WordPress.org – Daniel Bachhuber
- Git to SVN: Automated WordPress Plugin Deployment – Brent Shepherd
- Developing WordPress Plugins in Github – Sudar Muthu
Every developer has a different workflow, but there’s a good option for however you choose to develop and maintain your WordPress plugin or theme. After reviewing the advantages and disadvantages of each, which of these factors is the most important for you when making a decision about where to host an extension?
I personally prefer using WordPress.org for anything public-facing due to the amount of exposure, as well as the simple search from within WordPress to install it. Github is the better option for something that isn’t quite polished though.