Cafe Convo: WordPress Plugin creation Q&A with Alex Sirota

code-coder-codes-34600
Alex Sirota of NewPath Consulting

Alex Sirota of NewPath Consulting

I recently learned that cafe member Alex Sirota was working on a plugin. I’ve never built a plugin myself and sent him a few questions to answer.

Please share your name:

Alex Sirota

Tell us a bit about yourself:

I live in Toronto, Ontario, Canada and I have a family of 4, my wife Alla and my children Aaron who is 18 and my daughter Liana who is just about to turn 8 years old. My son wants to become a commercial airline pilot and has his sights set on that career and he wants to start his education this fall. I am originally from Odessa, Ukraine and immigrated with my family in 1979 to Detroit Michigan. I play trumpet in a local community band and have been playing since 5th grade.

My family sort of lives all over the world — my parents in a suburb of Detroit where I grew up, my brother in New Jersey with his family and me here in Toronto. I came here for a job in 1997 and stayed.

What’s your business name?

NewPath Consulting

How many years have you been in business?

4+ years full time, but have been running it part-time since 2010.

Describe your services and clientele:

We provide support and implementation services for several cloud-based software as a service product. We help small businesses automate their operational and marketing.

NewPath Consulting was established to work with small businesses and not for profit organizations who need an integrated “one-stop shop” approach to selecting and implementing appropriate cloud-based solutions, providing the most value to them and their customers. As a pioneer in orchestrating cloud-based systems to meet the needs of small and medium-sized business (SMBs), we provide business relevant technology advice and education to prepare you for optimizing your business activities through the cloud.

I understand you built a WordPress plugin. Explain what it’s for and why you decided to build it:

This is an interesting origin story which is really still in the nascent stages. We had a WordPress client that approached us due to our experience with both WordPress and Wild Apricot — 2 systems we support and install. Wild Apricot is a membership management platform that can be seen as a competitor in some ways to WordPress. A digital agency reached out to us due to our history with both WordPress and Wild Apricot. They built a WordPress site accessed the Wild Apricot database via REST APIs, but the implementation that they had built was running very slowly — way too slowly for acceptable use.

We optimized the code and improved the speed between the two systems so it was acceptable. Doing that work made us realize that there may be a market to use WordPress as a “front end” to Wild Apricot, a system that has its own very simple, but not very attractive content management system. To do that we needed to build on this work and create a proper plugin for WordPress.

That plugin is called Wild Apricot for WordPress (WA4WP) and is available for beta testing at wa4wp.newpath.consulting

Is it done or still in development?

It is most definitely in development and in active beta-testing. We had another prospect do a proof of concept that enabled the plugin to communicate with multiple Wild Apricot websites. This could be useful when an organization has multiple chapters and WordPress is used to “consolidate” the data and access to multiple databases from potentially multiple geographic organizational chapters on one integrated website.

Right now the plugin supports the ability to query the membership database and retrieve a “directory” of contacts. This directory can be used to feature members of one or more chapters of an organization. You can click on a profile and get a “membership” profile. For now, it is a read-only profile. The look and feel of the directory can be styled with CSS. 2 shortcodes are currently available in the plugin, one for the directory and one for the profile.

Do you have a team working on this, or is it just you?

I am a product manager getting a set of requirements and the documentation for the website, and we have a local WordPress expert in Toronto, Phil Oxrud, who is doing the development. I am also gathering a group of beta testers and looking for customers for the plugin, which is very niche but could prove very useful for future implementations.

Phil and I meet on a fairly regular basis to scope out future changes. Currently, we are working on a way to log in and “update” your profile. Our plan is to fold in another plugin called Wild Apricot Login under the GPL license to support a full front end in WordPress for members who wish to interact with one or more organizations.

Have you built other plugins?

I have had a little experience building a plugin to connect GoDaddy Email Marketing to WordPress websites. I didn’t release that plugin and just used it for one other client. I was shocked and surprised to see how easy you could take some PHP code and wrap it into a WordPress plugin. But I am sure that actually making it useful to a wider audience is much more work.

What skills are needed to build a plugin?

There are 2 major skills required, I think:

1. Business – understanding the pain that the plugin addresses, and one that hopefully is not addressed by other plugins which makes it unique. In this case, this is the only plugin that connects WordPress to a membership management system used by 17,000+ paying customers. Our hope is that they have a pain of building websites that are not only more appealing but easier to maintain. The use of WordPress as an alternative CMS may solve a lot of problems faced by a group of Wild Apricot customers. The part of the plugin that allows updating of data or financial transactions will be commercial, but there will be a free version of the plugin as well. Modeling a successful business model of a plugin is crucial to support ongoing development and support costs.

2. Technical – in this case, the plugin uses a remote REST API for Wild Apricot so there are 2 major technical skill sets

a) understanding the framework of WordPress and how plugins are coded

b) understanding how to get a plugin to authenticate and call a remote REST API and retrieve data quickly and efficiently

I believe that both are really important, but without 1, a plugin really is just untested, unused code. Valuable plugins like Ninja Forms or Restrict Content Pro come from a lot of customer insight and smart marketing. And of course lots of love in the repo.

Do you need to commit to updating your plugin on a regular basis?

Updating the code of the plugin is done usually based on beta user feedback as well as real-world implementation. It is our sincere hope that there will be a project where we will be able to test the functionality of the plugin and expand its capability through a paying project. Plugins that are built out of end-user demand solve a very real need that hopefully will solve others needs. This constant reflection of user pain addressed through functionality leads to a “fly wheel” effect of more feedback that leads to direct value building for future customers.

Currently, it is not our plan to write code simply for the sake of an experiment as we want this plugin used as much as possible in the real world.

Is your plugin on the WordPress repository?

Currently, it is not and has not been yet submitted to the repository. We will most likely submit it when we hit a version 1.0 state of at least 4-5 shortcodes and have enough functionality to make it appealing to use for free, and introduce a small commercial feature for allowing updates. Free plugins are nice, but I am afraid our support load for a free plugin will be higher than we’d like it to be, although that’s a nice problem to have as long as the support can be monetized in some way.

How do you submit your plugin to the WordPress repository?

There is a documented submission and review process. I have not followed it although my partner Phil Oxrud has a plugin in the repo already so he has some experience. Always good to lever experience than reinventing the wheel.

https://wordpress.org/plugins/business-schema-json-ld/

What advice would you give someone interested in building plugins for their own website or others?

Find a niche customer need before you go ahead and solve a pain. It may be your own pain and plugins are regularly built that don’t end up in the repo. A plugin should have a decent potential audience so it’s either super simple and elegant and solves a very specific pain that hasn’t been solved before or it’s really niche and solves a very vertical problem. Ours is definitely the latter. We hope customers of Wild Apricot choose WordPress as a website builder and use our plugin in the future.

Is there anything else you’d like to share about this plugin?

WordPress can be itself a membership management system and do what Wild Apricot does. But to simulate such functionality one needs to install at least 5-6 major plugins. We believe WordPress is best at managing content whereas systems like Wild Apricot are best at managing complex CRM features. Some will disagree and say that all should be built in WordPress, but we think 17,000+ customers of Wild Apricot know something that WordPress customers don’t — and that is that peace of mind is more important than putting everything in one system and maintaining a custom code base. We hope to give Wild Apricot users the flexibility of WordPress with 1 simple to use a plugin that exposes shortcodes. Eventually, we hope to support Gutenberg so that layout of Wild Apricot functionality is as easy as drag and drop!

Thanks again to Alex for sharing his experience working on a WordPress plugin! 

Resources:  Follow NewPath Consulting on Facebook and Twitter

Cami MacNamara

Cami MacNamara has 20+ years of experience running a small, profitable, one-person web design business, so she can walk her dog whenever she likes. WebCami.com / Twitter / Instagram