de en
← Back to Articles

Tips for plugin developers by Josh Crawford

Josh Crawford at Dot One 2019
Verbb's Josh Crawford summed up the key points to keep in mind if you want to improve your skills as a plugin developer in his talk at Dot One 2019.

Coding

He says it's perfectly fine to make mistakes and work them out over time, and it's just important to start and do it.

That fear of not being able live up to the standards of other developers is definitely something that holds devs back from actually getting in there and giving it a go. We can often forget that they only got to their level with a loft of time and hard work. - Javan Griffiths

When a Craft CMS plugin is developed, it should look like it is part of Craft. The Craft UI should be used instead of imposing your own on the user, as this consistency builds trust in the platform.

Also, it would be advisable to use PHPStorm, as this IDE has some advantages over standard editors like VS Code or Sublime Text. For one, there is auto-complete for all things, inline documentation for functions, and inspections to improve your coding, debugging, and testing. In addition, Craft and Yii are supported, including their code guidelines.

Regardless of the editor, one should be consistent with functions, naming, and processes. If in doubt of any kind, do it the way Pixel & Tonic does.

Also, Josh pointed out the importance of comments. Of course, not every line of code should be commented on, but at least the essential parts. And you should be as detailed and explanatory as you need to be, even if that means your comments span several lines. It helps you write down your thoughts as comments and then type the code for complex problems.

Plugin ideas

To brainstorm new plugins, look at other content management systems like WordPress or Statamic. Do they have functionalities or plugins that Craft CMS could benefit from? But also existing Craft plugins should serve as an example. For example, talk to the Craft plugin developer to see their plan to include something like the desired feature. And if there is nothing there, maybe write your plugin.

Branding & Marketing

Actively building a brand helps create trust and solidify your reputation. Personal brands can be just as powerful as agency brands. Building the brand would be helpful to find something that connects your plugins. Be it the shape/color/style of the icons or else the name.

Of course, a website would also be important, which doesn't have to be huge, but should have good content and be optimized for search engines. SEOmatic would be, among other things, a plugin that can help in this regard. Also, an own blog should play a role in the considerations. On the one hand, a blog helps with SEO, but more importantly, it strengthens your brain. Just write about the next release or plugin recommendations.

Next, pretty GitHub pages should be created. These are required to publish a Craft plugin, and then you should make them appealing — own logo, link to the website, and most importantly, screenshots of the plugin.

Pricing

There is a guideline regarding the pricing of plugins in the Craft documentation. According to it, smaller plugins or relatively small utilities should cost between 10 and 29 US dollars and complex field types and integrations between 49 and 99 US dollars. Plugins with significant new system features about $149 to $249. And large or niche apps between $499 and $999.

For annual updates after the first year, 20% to 50% from the original price is recommended.

Verbb itself has established the anatomy of pricing for itself. On the one hand, this considers the development time and the expected subsequent support effort. Attention is also paid to future plans. Is the plugin relatively simple at the beginning and then becomes complex later? How much consideration does the plugin bring, and what competition is there?

Not only the individual points must be considered. Instead, the big picture is essential, the combination of all issues.

It is also vital that you do not sell yourself short, including free plugins.

Community & Social

Just be active in the community, be it Craft Slack or answer questions on Craft Stack Exchange. On Slack, it is possible to create notifications for your plugin keywords. Build followers on Twitter, such as constantly tweeting when there is a new plugin update. The most important thing with all these platforms is that you should be active and visible, not just the silent reader.

To increase your community presence, it might help to set your own goals like communicating in Slack for 30 minutes weekly or setting a certain number of Stack Exchange replies. Or write a blog article or share other articles on Twitter.

Documentation

To simplify the process of good documentation, make a structure or template.

A structure could look like the following:

  • Introduction (1-2 sentences)
  • Overview (1 paragraph and bullet points for characteristics).
  • How to install it?
  • Configuration (settings, if applicable)
  • Introduce individual features in more detail
  • Events (if applicable)
  • Documentation
  • License
  • Acknowledgments
  • Support/Contact

Good documentation is emphatic, and it is essential to separate yourself from your knowledge bubble and just put yourself in the user's shoes.

Instead of simply writing: "To install the plugin, run `composer require myplugin`" say something like, "There are several options to install the plugin. Use `composer require myplugin'from the command line, or search for 'My Plugin' on the plugin store in your Craft installation."

Vuepress could then host the documentation. Vuepress converts the Markdown into a static page, making the result speedy, and even an Algolia search would be available.

Support

Good support is challenging but crucial for your success - at least for paid plugins. Free plugins can waive support, but that should be communicated from the beginning.

With support, it is first vital that it is easy to get in touch with one. This can be a contact form on the website, email, Slack, Stack Exchange, social media, or Github Issues. It would be wise to limit support to one platform.

Josh still recommends the talk „How I Learned to Stop Worrying and Love Support“ by Brad Bell at the 2015 PEERS Conference.

Photo from  Thomas Sausen<

Self-employed web developer from Germany who started with WordPress websites in 2005, then moved to ExpressionEngine and lost his heart to Craft CMS in 2013. As the founder of Craftentries, he has been covering the Craft ecosystem since 2015.

Thomas Sausen Web Developer