2016 FTW


At last year’s WordCamp Miami, I split an Airbnb with Vova from Freemius. We took an Uber to the speaker sponsor party together and one of the things we discussed on that ride was Caldera’s revenue from plugin sales. I was worried it wasn’t very good. But, I told him it was 3 or 4 times what it was last time I was at WordCamp Miami, so I felt good about it.

I know the time difference between WordCamp Miami 2016 and Miami 2017 or 2015 and 2014 isn’t exactly one year, but time isn’t linear. Nor is progress.

When I go to a WordCamp, I tend to think about where my career and my company where last time I was at that WordCamp. Since I often lack the ability to evaluate things relative to the proper time frame, this can be really helpful for me to see my growth.

By WordCamp Miami 2017  we should be at 4x the revenue from plugin sales as we were at last time I was in town for that event. We’ve also more than quadrupled the active installs for Caldera Forms. Because a new year is a great opportunity to talk about growth and goals, I want to share some of mine for 2016 and 2017.

But before I move on from Miami, I should mention I was also in Miami twice last year because my wife Alicia was performing at Miami Opera Festival last summer. I’m very happy and very proud that her career is also going well, and she will be an apprentice at Des Moines Opera this summer. What I do is hard, but nowhere near as challenging as what she does. I am so lucky to have her as an inspiration. Also, lucky to have her in general.

TL;DR (And This Is A Long One)

Here is this article in short bullet points for those of you who don’t have time to read the whole thing, and it’s real long:

  • Caldera Forms is growing – 4x user growth in 2016 and a lot of love.
  • Caldera matured a ton as a company. Asking Christie Chirinos to run the company was clearly the right decision.
  • I feel a lot better. Stress is way down, hopefulness is up.
  • A lot of fun stuff coming in 2017 from Caldera.
  • I wish I had written more, taught more and contributed to WordPress core more in 2016.
  • Team Caldera is growing. Maybe including you?

I can’t overstate how much happier I was by the end of the year then I was in the early parts of it. I spent a lot of time in early 2016 looking at job postings, considering taking my marketable skills to work for someone else. But, now I feel like powering through has gotten me what I wanted from doing my own thing — constant challenges, lots of fun and less stress. I’m honestly super happy with where I am now.

The Tasty Recurring Revenue

Photo by: Saul CuellarI’m the kind of person who quits a video game because I know I can win and moves on with life. Or I start over on a higher difficulty setting. I like playing, not winning.

The combined Josh + Caldera revenue is in the same order of magnitude for 2015 and 2016, but it has grown by decent amount. What’s more important is that the percentage of the revenue that has come from one off jobs has fallen significantly.

Numbers-minded people like recurring revenue beacuse it is an easier way to project revenue and therefore budget. Also, it tends to be more profitable.

But, I don’t do budgets — we’ll get to that shortly. What I don’t like about one-off jobs is the lack of personal investment. I don’t care for games with final boss battles.

What’s fun about software is it never ends, what’s fun for me, about working on projects I love or with clients I enjoy working with is that it never ends.

When we complete a Caldera Forms release, I don’t get a ton of joy out of that milestone. But my favorite part about the release process is the last step — I fork the master branch into the develop branch and set the version number ahead.

In addition to increased plugin revenue, we also added recurring revenue from maintenance agreements.  The normal play with that type of business is to sell a bunch of low priced maintenance plans that come with scalable and predictable work.

We did the opposite. High price, lots of work. It’s fun and I’m learning a lot form it. It’s not something we advertise, because we don’t have the resources to scale this part of the business, but we’d consider adding another if the client had interesting enough problems — preferably needing help with improving eCommerce performance and  conversions.

Changing The Team: Part 1 🙁

I didn’t create Caldera Forms, I started out as a user.

I originally tried out Caldera Forms, because I was impressed with work David Cramer, who was the original developer of Caldera Forms had done on Pods. I was immediately impressed and wanted my plugins to have that kind of user interface. This was before WordPress people got all excited about JavaScript driven-interfaces and David had basically built his own reactive JavaScript framework on top of jQuery before reactive frameworks were really a thing.

When I said I wanted to start my own WordPress plugin company and started recruiting those I knew, I was super excited David was on board.

The last time I wrote about the progress in our business, was in June. That article was canablized from a 2015 year in review article I never finished. I didn’t finish it in January of 2016, as I was really unsure at the time where we were going and if the company was going to survive as a team, which at the time was me and David.

In that article I wrote about struggles I had been having with David Cramer, who was the original developer of Caldera Forms, but how I felt we had patched those up and things were going better.

Unfortunately, that didn’t last. David is super-talented and he’s working on some really exciting new stuff right now, but he’s no longer working with us. In the end, we had a different vision for how to develop and manage Caldera Forms. David wanted to build new things, and so did I, but Caldera Forms has taken of to the point that it has to be priority number one.

I look forward to helping promote his new business when it launches. Please check out his new plugin DB Post Types. It’s a tool for organizing WordPress data into useful, and editable reports. A super useful tool that I’ve been excited to try out since I saw the first prototype for it.

When CalderaWP started, I had David keep control of the CalderaForms.com domain name and the WordPress.org repository so he had leverage over me, since I owned the company. When he left, we bought those assets from him. Seriously, I wish him the best and with that it hadn’t ended this way, but it was the right call.

Changing The Team Part 2 🙂

Photo by: Marcin CzerwinskiAt a dinner after WordCamp Pittsburgh I asked Devin Walker, lead developer for WordImpress of Give fame, if he could imagine doing his job as lead developer and doing the math on their budget and physically making sure the bills were paid. He laughed politely at me when I told him that’s what I was doing until recently.

It’s well known that I do too much and I enjoy working on a lot of things. But I also know that too many decisions in a day is mentally fatiguing and it is essential to stick to what you’re good at and find someone who can handle what you’re not good at.

In that post, I also announced that we had merged all of our operations under one umbrella, called Caldera Labs, and that it would be managed by Christie Chirinos. This has gone incredibly well.

Until May of this year, I never received a regular paycheck. Previously, I was living month to month and so was the business. Neither had a reasonable idea of what next month had. This had a pretty strong affect on my stress level.

Now I get a paycheck, the business’ books are in order and we have a budget. These things lead to not just less stress, but the ability to effectively manage the ups and downs in month to month revenue.

At WordCamp US when Christie and I sat down to discuss goals for early 2016, she made me start with not just what I wanted to do, but why I couldn’t do it. She’s been working since on removing the barriers that are surmountable and reminding me to be patient with what can’t be changed yet.

At that point I began to suspect that Christie is doing, on a higher level, is going through the business and identifying inefficiencies and systemic problems and addressing them when solutions are possible.

That goes hand in hand with being strategic about what we do and what we plan to do next. My biggest goal for this year was to stop running a business based on putting out fires and building shit just beacuse it would be fun.

Look, I think that being crazy is in my job description. “Let’s build a WordPress form builder, there are tons of well-loved competitors that are established and years ahead of us” is a crazy pitch for a business. What we’re doing is hard AF, but that’s what makes it fun for me. Also, it’s what sets us up for where we are going.

My strength is seeing how to put things together and what’s wrong with how systems are assembled. It’s a great skill set for a programmer and a product designer. Not a great skill set for running a business.

This part of me is why I’m good at what I do, but it can create bad feedback loops if I’m not patient. My personal growth this year, has been about getting better at focusing on changing the things I can change, accept the things I can not, and find the wisdom to know the difference between the two.

Becoming more strategic and intentional about the business has taught me, as a developer about dealing with technical debt. You don’t just start with the problems that are easiest to fix or those that have the biggest ROI in terms of getting them fixed. You have to evaluate what systems that are badly in debt touch which systems and what their technical debt it. That’s where you start. I learned this from watching Christie add prioritization and structure to our business, which in of itself was independently useful.

I know have a strategic partner who believes in this plan, and sees many ways to get to some version of the goal. That’s super important. I’m lucky to have so many people to call on for help, and to talk things through with, but having someone focused on co-developing that strategy and executing it is huge for me.

When I read Pippin’s year in reviews and he talks about how much better AffilateWP is doing, in less time, than anything else he did, I’m not just happy for Pippin and looking to see what lessons he learned can apply to us. I’m also reminding myself that he couldn’t have had that success without years of developing his team and his process.

So I’m learning to be patient, but I also have a ton more time to work on things. It’s seriously amazing to me that contracts can get negotiated, signed and invoices sent with little involvement from me.

These changes have taken longer than I wanted, and took a lot more work then I can imagine.  But, the percentage of time I spend doing what I want to do (and having that align with the company’s goals) vs doing what I don’t want to do, but have to do, because it’s necessary for the company has also improved dramatically.

Growing The Team In 2017 Part 3: Maybe You

When Christie started, Jason from Postmatic told me to be patient. He reminded me that I was better at running our business than her, by virtue of experience. But, my belief was that by nature of her skills, she could get better at it then me if I was patient and supportive.

Jason was right, and it was an important reminder, because patience isn’t one of my virtues. I’m trying to keep this in mind, as a major goal for 2017 is to grow the team even more. Right now that doesn’t mean partner-level or even leadership-type positions, though we will probably be looking for a lead UI developer and a marketing director later on in the year.

Bringing Christie on was like getting a new developer as it greatly increased the amount of time I could spend writing code. We got through last year with me handling almost all support and development and contracting out development work.

We specifically contracted out development work that required skills I don’t have. This was great as it reduced my stress-level and increased the quality of the work.

But, we’ve been relying on short-term agreements per project from friends who are talented, but busy. We’re currently working through the interview, trial and hire process for a few jobs. It’s not an easy process.

Training and evaluating new people is way harder then just doing their jobs myself. But that’s a long term investment, as I can’t keep doing everything and the more other people handle support and bug fixes, the more I can work on Caldera Forms and the larger Caldera/ Ingot road-map (spoiler alert, its the same roadmap.)

If you’re interested in working with us, we’re going to be very interested in talking with people who are interested in starting with us as a junior developer and support person. That’s where I started at Pods, and it was the most amazing learning experience. And I literally wouldn’t be here today with out that.

If helping our users out, while improving our product and learning from me sounds fun — get in touch.

Growing Beyond My Brain

Photo by: petradrAt WordCamp US we had a running joke about being a “grown up company.” The fact of the matter is this year we really did grow up. Even if part of that was acting sillier than we ever did.

On one hand we know have our books in order, a formal budget as well as an accountant and lawyer. On the other hand, DMing my friend Michal and asking him to put our logo on a taco was a real business man thing I did this year.

After WCUS Taco Club and the WordCamp US, I was waiting for an Uber to take me and my friend Steve to the airport, Christie and I talked about car accidents we’d been in. On the plane ride home I started thinking about what happens to my grown up company if I get hit by a truck again. Because, that’s a thing that happened to me at time, I couldn’t use a computer for 2 months while my shattered collarbone healed.

The point here isn’t that you need emergency plans for your business. But that is a thing we have now. The point is that by necessity our business started out as being mainly run by me, and me alone. As a result so much of the knowledge necessary to work for Caldera is in my head.

For 2017, we’re growing the team and the product and that’s going to require getting more of that knowledge into documentation and other people’s minds. That’s hard AF. This is an incredible challenge that I only recently realized the scope of.

Whenever someone asks us a question, it’s faster for me to answer it then train someone to answer those kinds of questions. It’s faster for me to keep using some hack to fix a problem then to fix it for real in away anyone can use.

I see Marc Benzakein from ServerPress a few times a year at WordCamps and we talk a lot about growing my business. One thing that always comes up is getting more people to associate Josh with Caldera. This goal goes hand in had with getting people to see Caldera as more than just Josh. While that second part is true, to make it efficient, we need to work on documenting our processes better, and better team member onboarding.

In July I presented at WPCampus, the same weekend that Christie presented at WordCamp NYC. Caldera had never been in two places at the same time like that and it was something I was intensely excited about and proud of. Also a little jealous beacuse she got to speak at the UN…

No one should be as obsessed with this business as I am. It’s an intense level of obsession, and I hope that passion shows in everything we do. Not to say Christie isn’t obsessed with this too, but she didn’t build it and people we hire to help out with development and support sure didn’t.

Our next challenge is making sure that the passion for the product shows in every other team member and is backed by knowledge of the product.


CalderaWP WapuuWhen Caldera started, I didn’t think of Caldera Forms as a big part of our plans. I felt like it was a part of what we would create. For example, one of our launch products Easy Pods, uses Caldera Forms to create search forms for Pods content.

We’ve made a lot of different things, but nothing has taken off like Caldera Forms. We started the year at 10,000+ active installs of Caldera Forms and ended it  at 40,000+.

Passing 40,000 installs in late November was huge milestone and it happened right before we pulled the trigger on a site relaunch. The old site was at CalderaWP dot com and tried to present multiple product lines equally. That site was built for a different company than we ended up having. The more I hacked on it to make Caldera Forms more prevelant the weirder it got.

So, last fall I through it out and started over from scratch. In December, we relaunched the site as Caldera Forms dot com. It’s now way more focused. We also added a new build your own bundle feature at the end of the year to respond to concerns from users that they wanted to choose which add-ons went into our lowest priced bundle, instead of the 5 we chose form them.

Building the new site was super time consuming, and we saw a short term drop in sales as we ironed out bugs, and dealt with some problems in search results. But it seems to have picked back up and complaints about the usability of the site or problems finding add-ons or documentation have dropped significantly.

Adding that bundle builder, is the first step of moving towards a Caldera Forms driven eCommerce interface on the site. The content management for products and software licensing will still be managed by Easy Digital Downloads, but the interface will more and more be Caldera Forms.

In addition, we will be making use new tools built on top of Caldera Forms, Ingot and Easy Digital Downloads that I are being developed first for site and then will be externalized as products. I’m really excited about what we’re budiling to improve selling digital products and look forward to showing them off soon.

This kind of dog fooding has been great. I’m trying to take an Amazon-like approach to building everything as a service that can be turned into a product as needed. It’s a bit of a tough balancing act as when I build stuff for our site, I don’t need a UI, and I don’t have a ton of time.

But this forces me to build software with proper architecture from the start. If I can write code that can take its configuration as a dependency, it doesn’t matter if that configuration starts hard-coded. If and when the internal tools I’m building now become products, I can easily add Caldera Forms processors, REST API endpoints, and/ or a CLI for end-users to configure them.

Missed Goal: Teach More

I love to teach. Caldera has from day one, had a goal of providing WordPress plugins and WordPress. One of my huge goals for 2016 was to write more, teach more and contribute to WordPress core more. I wanted to release several new courses.

I released a REST API course in January and thought it would be the first of many I’d do in the year. We held some workshops in September, which were recorded. I loved teaching those and want to do more. BTW fun fact — for a reasonable fee I will come to your city and teach WordPress development workshops to your company or meetup group. For an extra fee, I’ll bring Carl.

The workshop video is edited and I’m going to do some re-recording this month to fill some gaps. I’m really excited to get this course out there and to really make Caldera Learn a great resource for those looking to level up their WordPress development and satisfy my need to teach others. Also, it should be another good revenue source, that will help us grow our team further.

I want to say a special thanks to Ryan Sullivan. He made the workshops possible by sponsoring them in the name of his company WPSiteCare and the conference he organizes LoopConf. We needed sponsorship money and Ryan is super generous and I’m sure he sees a good ROI in having me say nice things about WPSiteCare, which I don’t mind doing as they have an awesome product, that we recommend all the time.

I was a contributor to all three major releases of WordPress in 2016, which felt good. I didn’t do a ton of work on core. I wish I had done more. A patch or two per release is not particularly time consuming. I hope to do more in 2017, and I think that as we work to create more margin in the business that will be great.

Caldera Forms

Caldera Forms Globe LogoThe website project I discussed earlier was long-overdue, our old site was terrible. I was OK with that for awhile, as I was actually trying to slow down our growth in early 2016. In later 2015 people started to really use Caldera Forms. In 2016 we had 180,000 downloads. We have slightly over 230,000 downloads total as of now. That gives you an idea of how big 2016 was for us.

That’s awesome, but going from 1,000 to 10,000 active installs exposed a lot of problems with Caldera Forms. We spent a ton of time in late 2015 and early 2016 fixing the kind of problems you don’t find until you get a real user base. We stopped adding new features and just focused on making what we had be more reliable.

Getting through that wasn’t easy, but I grew a ton as a developer, and the product was well postioned for the rest of 2016 as we went from 10,000 to 40,000 installs while decreasing the number of support tickets and solved most email related issues.

Serious pro tip: setup DKIM and SPF records for your domain and use a transactional email service. If your contact form submissions are going to spam, your DNS is probably not setup right. You can fix it in 10 minutes.

I got into WordPress while I was in grad school at Goddard College, a small hippie college in Plainfield, Vermont. Plainfield, Vermont also happens to be — until recently — the home of Jason from Postmatic. This is purely coincidental, Chris Lema introduced us.

In May of this year, I spent part of a week working out of Jason’s offices in Plainfield, which was a great time. We talked a lot about Caldera Forms.  At the time I was really excited that we had a solid plugin that worked. But Jason opened up a WordPress site and showed me what my next “what’s wrong” was: new user experience.

We call Caldera Forms “A Different Kind Of WordPress Form Builder.” Many of our users are new to WordPress, but others are trying us out after using other form builders. Last time I checked the stats, Contact Form 7 was the 3th most common plugin to be installed on a site using Caldera Forms — that’s behind Aksimet and Yoast SEO. Getting people passed their existing expectations of what a form builder can do is not easy.

Caldera Forms 1.4 started with that talk with Jason and running his feedback by other developers and users. In that release, we emphasized form templates over creating forms from scratch, changed a lot of our verbiage, and added a lot of context clues to the form layout builder.

Getting users to start from a template helped the form builder teach itself to users. No amount of documentation, which we also improved, including a new getting started guide, can beat that. Still some, users will start with a blan

In his Caldera Forms webinar for iThemes Training, Benjamin Bradley said he appreciated that the Add Field button was blinking when the form had no fields. This was pretty great vindication for me, as making that button “pulsate in order to draw the user in” was one of my wackier ideas I had, but like Taco Club, it worked out pretty well I think.

It was very liberating to refine things that worked, but could be better instead of just putting out fires.

While Caldera Forms 1.4 was our only major release in 2016, we did add a lot of new incremental improvements to Caldera Forms, and some new features. These include magic sync for fields, SendGrid integration, improvements to conditional logic as well as hidden fields, better file upload fields, field duplication, and a ton of new features as well as better infrastructure for add-ons.

Most exciting new features came in add-ons. We released recurring payments via BrainTree and Authorize.net. We added ConvertKit and Aweber add-ons for email marketing. We also added a form translations add-on and several other cool new add-ons.

Our Form to PDF service is our first SaaS product, and my first time launching a customer-facing app in Laravel, which I’m loving working with. In 2016 look for Caldera Space — we’re too cool for the cloud, we went to space — to grow even more cool new features to make Caldera Forms better.

After 1.4 came out, we split our Git development between a 1.4.x branch and 1.5.x branch. The idea was new features went in the 1.5.x branch and bug fixes went into 1.4.x. On one hand this has been great as we put out a minor update for Caldera Forms roughly once a month with small bug fixes and occasional small new features.

On the other hand, version 1.5 is full of big, exciting new features. Some of them are interdependent on others and it makes sense to work on them in isolation without worrying about breaking the branch we count on for bug fixes.

But, there are some really cool new features that were relatively simple, that could have already been in user’s hands like conditional recipients and scroll to top after submit. I think I’ll revamp this approach once 1.5 is done, and it is almost done. I like having a safe space to break stuff and rebuild it while developing internal APIs for multiple features, but I also with I had finished 1.5 already.

More importantly Caldera Forms 1.5 is going to be hella awesome. It’s got a 9 new field types, a new front-end entry viewer powered by the WordPress REST API, new default processors and more. I also removed all the inline JavaScript rendered in post content. This will reduce bugs with themes that do strange things to post content, and also allowed me to improve the efficiency of our front-end JavaScript a bit. We’re also loading less front-end JavaScript and CSS, so performance will be better.

Last time I searched the source  for “@since 1.5.0” I got over 220 results. For everyone of these new features I approached the work with a “no new technical debt perspective.” This meant new internal APIs and formalizing conventions into programmatic rules. As result the time spent developing new features was also time spent improving the quality of the code and therefore stability of the system.

Pricing Changes

strawberriesAt WordCamp San Diego I sat down with Pippin to talk about our growth and what we could do to improve it. He asked me what our average cost per sale was. I didn’t know, but he told me it was a safe guess that it wasn’t great.

I wrote a quick plugin to do the math and he was totally right. Increasing our average cost per sale has been a huge focus. BTW I later found Scott Bollinger’s EDD Metrics plugin which is great for tracking these types of numbers.

Soon after we launched bundles, which has gone well, but we’re still seeing too many single add-on purchases. When we launched bundles, the single add-on pages on our old site were made to highlight single site licenses or bundles.

That didn’t go well as it hid multi-site licenses making our add-ons seem way more expensive. For example, it wasn’t obvious that you could get a $89 five site licnese for our MailChimp license, it seemed like you would need $250 worth of single site licenses, which if true wouldn’t be fair.

In December we launched our 3 add-ons for $79, 5 add-ons for $139 bundle builder. This required building a cool new Caldera Forms integration for Easy Digital Downloads. I also modified the site to make the options more clear. It’s too early to say if this is working, but early numbers for January look good.

Taco Club

WordCamp US Taco Club Caldera Forms LogoOK, this is getting really long, but I have to mention WordCamp US Taco Club, beacuse that’s a very real thing that happened this year the night before WordCamp US. We had more than 30 people over to our AirBnB for a taco party.

This event was great, we got to meet Caldera Forms users, make new friends, see old friends and enjoy a taco bar together. It was great fun, and on a suggestion from our friend Kyle, we made an epic WordCamp Mannequin Challenge.

I look forward to having more fun, and non-exclusive events around WordCamps this year. They might not all be Taco-flavored, but I hope their corresponding limited edition stickers are as cool.

Personal Life

One thing I strived for this year was to get out of bed earlier and limit my work hours a bit. Working 100 hour weeks definitely took a bit of a toll on my health and ability to relate to other human beings.

That said, I’ve also come to peace with the fact that my work is my life, beacuse I love what I do. I know I’m supposed to strive for better work/ life balance. I definitely spent more time reading and otherwise indulging in my passion for science-fiction. But, I’m OK with the long hours and I’ve never found anything more fulfilling than what I’m doing now.

In sadder news, my cat Shy died in 2016. She had been with my wife and I since we moved in together in 2001. When we moved to Florida she claimed my office in our new office as her own. I spent most of those long work hours with her sleeping on my lap, on my desk or on the futon behind me.

It was definitely her time, but I miss her.

On a happier note, our other cat Gus has really thrived as an only cat. He’s closer with us and he’s actually made friends with our dog Josie. They cuddle together sometimes, which is super cute.

Josie is doing great and was even selected as our vet’s pet of the month for December. I’ve never been prouder of her. She’s a great doggo.

As I said earlier, this was the first year that I got a regular paycheck for an extended period of time. I also turned 34 this year, so it shouldn’t come as shock that my personal finances are not great. Nothing too terrible, but my wife and I spent a lot of money this year on paying down debts, which is annoying, but important.

At the end of last year my wife bought me a Chemex for Christmas. Coffee optimization has become a big passion of mine. Thanks to having a great way to brew coffee — you’re not still using a machine are you? — and the fine work that the people of Lucky Goat Coffee do, I’m drinking better coffee and coffee has become a shared experience — this thing takes awhile, but it’s worth it — we do most days together.

2017 Goals

Photo by: Ales KrivecOK, so now I need to stop before this turns into a book, though I do wish I could tell some more stories. I have so many great stories, like the time Rich Robinkoff talked me into going to WordCamp NEO to talk about the importance of stories.

I haven’t talked about everything. I’ve barely touched the 10 or so WordCamps (I’m counting WPCampus) that I attended. Nor have I talked about some of the cool projects I’ve been a part of — for example I got to work on Cookbook a very cool new recipe plugin from WPSiteCare. I’ve glossed over Ingot, beacuse I’m annoyed I didn’t get to work on the core plugin this year, but I’m excited for the evolution of that product line, which is underway.

But it’s time to go, so here’s what I want to do in 2017:

  • Triple user base and revenue from Caldera Forms
  • Convert all checkout and license management forms on our wsbsite to Caldera Forms and externalize that as products.
  • Improve the analytics and marketing automation tools we use for Caldera Forms and externalize those as products. I gave a preview of some of that at WordCamp US and am pretty excited about what come next.
  • Release the course we’re working on now, create shorter content to use for lead generation to help sell the course and test new tools discussed above.
  • Grow the team.

wordpress-logo-simplified-rgbOk, that was a lot, but it was a huge year. If you’re reading to the end — or just skipped here — the shortest version is I’m a lot happier with my professional life now then this time last year. That’s awesome. A ton of people have had a lot to do with that and I hope that everyone of them and everyone in the WordPress community knows how much I appreciate them for being so awesome.

The Caldera Journey So Far and What Is Next

CalderaWP WapuuI started 2015 stranded by a freak storm in a small town in West Texas. I ended it wondering if I had what it took to make it as an entrepreneur. In between I launched a new company or two, traveled to ten WordCamps and the one constant that held was community.

Those two days in Balmorhea, TX population 500, were actually pretty inspiring. After a scary night trying to get off the road and stay warm sleeping on a blocked highway off ramp, my wife and I made it to the one little inn, which was sold out and sent us to the community center turned shelter.

This tiny community, which clearly was not very well off came together to organize food, cots and more to keep over 100 people fed and safe until the roads were relatively safe to travel. Being stuck in an overcrowded community center is not the best experience. But being a part of a spontaneous and self-organizing community that arose to help out strangers made a bad situation into a great experience.

It reminded me of the value of community. You know like WordPress always does.

Back In The Sun

Who knew it snowed in Texas?

Photo by: veeterzySix weeks later, back in sunny Florida, David Cramer and I launched a new company to monetize his plugin Caldera Forms and make other plugins. It was exciting, even if the sales didn’t exactly pour in.

By the end of our first month — gross revenue: about $350 — I knew I was in way over my head as a business person and online marketer. But that was OK. Im someone who went from sort of knowing HTML, to being a pretty badass PHP and JavaScript developer.

I figured I could just hack business until I got good at it. This almost destroyed my business. After about 6 months we had increased our sales to about $1500 a month, which was good, but not enough. Client work was robbing our time and straining our relationship.

More than that, I had essentially demoted myself to junior developer and support representative. I spent my time fixing bugs, helping users and hardly ever writing any fun code.

Knowing I had to try something different, but not knowing what, I started another company as an A/B test on my business. Yah, I’m that guy, who starts another business to test the theories of what is wrong with his business. In the meantime I created a pretty cool new product: Ingot, an automated A/B testing tool for WordPress. Meta right?

All the while, I worked to figure out how to escape or fix the problems in CalderaWP. Over time the business and developer to developer relationship between David and I really improved.

Not shockingly, as our communication improved and we paid off our technical debt, our revenue rose. It’s still not great, but we’re finally in a good place, product-wise where we are ready to grow and grow properly.

If there is one thing I learned it’s that going slow can be a good thing. if Caldera Forms had blown up in a year to the kind of user base we are now focused on building it probably would have destroyed us.

I’m being patient with Ingot. It’s too early to say what Ingot will become and it’s slow growth is a good thing. The support demands are low, and we have plenty of time to figure out how to refine its feature set and really nail how to explain this product’s value properly.

Maybe it’s different with established brands and big marketing budgets, but in my experience, you have to spend a year running your mouth about something before it goes anywhere.

I Am A Developer

I can’t stop thinking like a developer, and that’s OK.

Photo by: NASAThe other thing I figured out is there are a lot of parts of running a business I don’t like. When I’m stressed out it’s normally about the business or money and one of my best coping mechanisms is to learn more about JavaScript.

That last paragraph is the words of a developer, not someone who should be running a business. A short audit of my financials and the number of loose ends in my business is a testament to that.

I embrace that. I’m a developer, and I can’t stop thinking that way. That’s good, and I love the strategic parts of designing products and marketing plans. But I’m done running the parts of the business I lack a passion for, am quantifiably bad at and take time away from the things I am passionate about and love doing.

I love being a developer, I love teaching — writing, speaking and creating course — and I love going to WordCamps to meet new people and connect with the growing group of friends I’ve found in this awesome community of ours.

The Ingot project had a lot of objectives, including trying new approaches to development. The other was to try out to new people I had met in Tallahassee that I believed in and wanted to work with. One of them, I still believe in, but he wasn’t the right fit, nor were we the right fit for him

Growing Toghether

The theme of 2015 was team work

Photo by: Stefan KunzeAs Ingot and CalderaWP grew, it became more and more clear how silly it was that the more mature company was being mismanaged by me, while the less mature company I had was being run incredibly well by Christie Chirinos.

Having two teams and two companies was a good way to start as we tested out what worked and didn’t work. But, moving forward as we have seen everyone’s strengths and weaknesses, we will move forward as one company.

For the last month I have been transitioning Christie into running both companies together and we will soon merge them into own company known as Caldera Labs.

In addition, my freelance practice and educational site will be folded in. It’s a lot of stuff, but I believe with better organization, focus, some tweeks to the business model, we are now ready to grow quickly and have badass products to back this up.

For the last few months I have been more active in Caldera Forms development than I had been in the past. David is going to remain the lead developer of Caldera Forms and I’m going to balance my time between that and leading the Ingot project. But I’m going to take my time with Ingot and let it develop naturally.

Moving Forward

The theme of 2016 is growth 

Josh Pollock speaks on Do WordPress Better With The WordPress REST API, at WordCamp San Diego 2016 #WCSD
I’m happy to represent my company, but I don’t want to be the only one. Photo by Kari Leigh Marucchi.

Of course, because Josh Pollock and David Cramer, we will keep making prototypes of fun new stuff. That’s something that used to drive me nuts about both of us. There is a ton of stuff that we have both built because that’s how we learn, with no plan to evaluate which of these plugins or services are worth pursuing and which were just fun.

You can expect to see a few of these reach the light of day as we evaluate the stack for good products. We never had a process of keeping track of early ideas, and evaluating them to see if they solve real problems that people will pay for or not.

That’s what’s next? I’ve been spending less time being freaked out and more time writing. My REST API video course was fun to make and pretty well received. Look to see more courses and some online or in-person workshops soon.

Also, we have some exciting updates for Caldera Forms and Ingot, as well as new add-ons about to launch. If you ask me real nicely at a WordCamp — I’ll be at WordCamp NEO and WPCampus this summer — I may tell you about some secret projects.

Have Fun

Seriously, that is the point of all of this, right?

This is me, at WordCamp San Diego using the force to summon an object to me in the middle of my talk. Photo by Joe McDonald.
This is me, at WordCamp San Diego using the force to summon an object to me in the middle of my talk.
Photo by Joe McDonald.

Sometimes I worry that when I tell people “have fun” or “sounds like fun” they think I am being sarcastic. I say things like that a lot and I am generally very serious.

I find what I do to be really fun. Not always, parts of it are not fun, but overall it’s a blast, and that’s what I want and why I do it.

So yep, I’m excited for Caldera Labs, it’s a new approach to organizing and growing our company and our team. It sounds like a lot of fun to me.

So You Want to Make a Commercial WordPress Plugin?

In the end of 2014 I decided to start a commercial WordPress plugin company. In March 2015 David Cramer and I launched CalderaWP. We went to market with an add-on for Pods and add-ons for Caldera Forms.

David and I met when he started contributing to Pods, where I worked at the time, and I was super-impressed by the UI in Caldera Forms. It worked the way I wanted my plugins to work.

A little over a year later I’ve started to look back at how it’s gone and how we could have done better. I want to share this in hopes you can learn something from my experience. This article is based on a tweet storm I sent recently.

To be honest, I was hesitant to write this post beacuse we’re doing OK, but we’re not having the kind of success that I see in the transparency reports from plugin companies that are killing it. But, I want to offer an honest and realistic vision of what it’s like to be a year out, and well positioned for success.

Speaking Of Imposer Syndrome

I just shared a bit of my self-doubt about sharing business advice. As a developer, it has been at time hard for many to get past “I’m not good enough for this.”

Do you know what? Fuck that. One of the best things about WordPress is it empowers us to try new things and learn as we go. That’s been the best part for me.

There are plenty of WordPress developers that are less skilled than me whose plugins sell better than mine, and plenty of developers who are better than me who I do better than business-wise.

Just make stuff and learn. Your version one is going to embarrass you later no matter what. Just don’t skip out on basic security and think you will fix it later. Sanitize and validate every user input and make sure every action has a nonce and authorization check.

If you don’t know what the last sentence means, start with the WordPress plugin developer’s handbook and Chris Wiegman’s presentation on application security for WordPress developers. If you have questions, its the kind of question advanced developers love to answer. Open a thread in the AdvancedWP Facebook and tag me if you need to.

Choosing The Right Product

caldera-forms-bannerLike the developers we are, we chose to work with the plugins we knew the best. On one hand this makes sense: you have to take advantage of your expertise. That said, Pods isn’t the most popular custom fields and content types plugin and Caldera Forms was virtually unknown when we started.

I don’t think that is a fatal mistake, and I believe very strongly in Caldera Forms. But, it did set us up for an uphill battle that should have been obvious to me, but wasn’t.

It’s hard, as a developer, to get passed what you think is cool and evaluate a project as a business.

More importantly, I’ve realized that I can’t prevent myself from thinking like a developer, and that’s OK. This is why we build teams with diverse sets of skills. When I started Ingot, I didn’t partner with any developers.

So You Want To Make Commercial Plugin?Photo by: Kamesh Vedula

Is It A Good Idea?

So do you want to make a commercial WordPress plugin? I think that is awesome, it’s a fun thing to do. But, if you want it to be a business you need to know if it a good business move?

What’s your timeframe to evaluate success? If it’s a year. Then the answer is almost always a big “NO” It takes a lot of time to grow. Think about it, if you only spend 500 hours coding version one, at $100/hr, that’s $50k in lost productivity. That’s a low estimate.

The point is that’s your investment in just getting the product built. You might think it’s free to build since you don’t have to pay yourself, but you still need to survive while you build it and get started and while you’re working on your product you’re probably not getting paid

You don’t have a website, logo, docs or two t-shirts for WordCamps yet. You or any marketting. You need all that. Seriously two shirts of different colors, that way you can wear a branded shirt both days and not have people think you didn’t change your shirt.

Do you have a plan to offset your lost productivity while you develop the product? How long can that last? Hopefully it’s as long as it takes to get the product to be self-sustaining.

How Are You Going To Support It?

So you released your product and some people started buying it. Congrats. Also, welcome to your new job in tech support!

Support is only one of the many costs that having a product.

When you read all of those transparency reports from successful plugin business you need to ask yourself: How long did it take? What are their expenses? How did they get there?

Can You Scale It?

Photo by: Andrew CoelhoIf all goes well you’ll get a bunch of users in your first year who can tell you what’s wrong with your plugin. Then it gets interesting. No matter how careful you are, at every stage of growth, your going to find new problems.

Technical debt is unavoidable and it is painful to pay back.

Now you need to support your users, fix the bugs, figure out what features to add, which feature requests to ignore. You need to find time to actually add those new features and keep doing whatever you’re doing to pay the bills without losing your mind.

While you’re adding those new features and fixing those bugs, you can’t break the stuff that works. Also, your competitors are going to add shiny new features you want and your users want.

At some point someone will tell you that you have to add a feature that your competitors has or they will use your competitor. If its a feature you want to add and can add, do it, but don’t feel like you have to do everything your competitor does.

It is better to let a customer who you can’t make happy go than to make promises you can’t keep to land the sale.

So, Should You?

So should you do it? If you’re passionate about your idea & 💖 building plugins & 💗 building a business, fuck yah. Have fun!

Just don’t think it’s quick money or fall into the “if you code it, they will come” trap. Price it high & fuck those who say lower the price.

If you’re in and need help with development, my company CalderaWP can help.

Just don’t forget that development is only part of what it takes to be successful. Right now we’re at the “Ok going well, but we need to scale it” stage. I have some theories on how to accelerate my growth, I’ll let you know which ones worked & which ones failed.

One thing I know for certain, you must invest in an awesome team and work hard on making that team work together well.

In fact stay tuned soon for a big announcements soon on how we are changing our team and how we do business in order to take our business to the next level.

But to the original question “So you want to make a commercial WordPress plugin?” I can’t really answer that for you, overall but I 💝 it 🙂

I Can Do Anything! So What?

chemexFor Christmas this year, my wife got me a Chemex coffee maker. It’s an amazing gift. This simple tool, when used right makes the best coffee I’ve ever made. Getting the ratios, water temperature — she also got me an infrared thermometer — and pour technique correct is tricky. I’m still getting the hang of it, but when I do it right:)   

It’s a new skill to learn. It will take time to get consistency with it. It’s always going to take more time and effort to make coffee with the Chemex then with my FrenchPress. But, I enjoy the end results, and the process is fun. I don’t have a lot of hobbies, making coffee and doing it right is one of them.

I’ve been thinking a lot recently about optimization, Josh optimization, coffee making optimization and conversion rate optimization.

As many of you know, I’ve been working on a new conversion rate optimization plugin called Ingot. If you don’t know that, don’t worry, I’ll fix that:) By the way, we got a new logo, thanks to Michelle Schulp and a new website thanks to Jason Lemieux.


It’s A Moonage Daydream

I wrote last week about what I learned as a developer working on Ingot. I wanted this piece to be purely about business. Nothing about development. The first time I tried to write this it turned into something about David Bowie, which is fine. The send time it didn’t work.

That’s awesome failure, because it is leading me to understand that I can not separate the two. I am not a business person and a developer. I am a developer entrepreneur.

Being a developer entrepreneur is awesome because I can code up my own ideas. It’s terrible because I can code up my own ideas.

There was a time, let’s call it the last few years of my life, when I rushed from “great idea” to prototype. I’ve spent a lot of time coding an idea before even considering the business’ unique value proposition, or whether such a thing exists.

I actually don’t think this was a bad thing at first. I used it as a way to learn a lot of things about WordPress, PHP, JavaScript, etc. I once wrote most of the MVP for a productivity app just to learn Firebase and it led to my first experience with Angular.

Whether or not that business idea was any good is sort of irrelevant. Having stumbled through Angular once before I had to learn it for Ingot, was valuable. Getting my head around three way bindings with Firebase plus Angular helped me understand how live-updating applications should work, and what’s wrong with how we try and fake them in most WordPress-based apps and plugins.

Not to say that I’m done learning. But I’ve gotten pretty good at what I do and I’ve created a situation where the things I need to do are sufficiently challenging, that choosing what to do and not to do, can not alone be about trying fun new shit. I’ve programmed myself to assume I can do anything, because with sufficient googling, I probably can.

It Works If You Work It

cropped-image-1441085665.jpgBeing a developer doesn’t exactly mean that you can do whatever you want. It just encourages you to think that anything is possible with the right amount of looking stuff up online and experimentation.

This is what is so exciting and fun about what I do. I get to constantly find new and exciting puzzles to solve.


Ingot does two types of testing: content testing, testing any type of change in content and measuring clicks to a destination, and price testing, which tests changes in pricing and measures changes in sales and revenue.

Right now, content testing works, and is in the plugin and price testing is still “coming soon.”

Recently, while waist deep in working on implementing Ingot price testing, I asked one of my Ingot business partners to do some testing on Ingot content testing. He found some issues. I told him I’d get to them when I finished price testing.

Then I heard from a few people about how the UI flow could be improved for content testing. I told them I’d get to it when I finished price testing.

Then I heard from a friend about a new type of content testing we should do. You can guess what I told them…

I knew content testing wasn’t perfect. I put it out there so I could feedback. Ship fast, iterate and repeat is a smart way to work.

But it doesn’t work if you don’t iterate based on feedback. It’s not a magic system. As we alcoholics say, the system works if you work it.

Josh Version 12,146

Josh Pollock at WordCamp US
Photo by Kari Leigh Marucchi — Found Art Photography

Startup entrepreneurship is, by definition — IE according to Paul Graham — about businesses with the potential for exponential growth. But, I’ve always felt that nothing big is worth doing if it doesn’t make me a better person. It’s a constant struggle, but I try.

Startups convert pain points into products that alleviate pain points. If the pain point is sufficiently painful and widespread then the business has potential for exponential growth. That is, if the solution, sales process, customer experience, and customer retention can be sufficiently optimized.

I think a lot about this stuff. I built Ingot because I didn’t have a good way of integrating A/B testing into my sites. The existing solutions underwhelmed me and none of them were powered by WordPress. Having the basis of Ingot in place will empower me to using a data driven approach to improving my businesses in 2016.

There is a ton of cool stuff that I intend to do with Ingot that should be useful to others. That’s awesome. But staying focused on improving what we have so far, and building the right features, not just the fun features. That’s going to be the difference, from a developer stand-point between having a product that could be successful and can not be successful.

Notice that I didn’t say adding the right features would make Ingot successful. I said it would make it possible for it to be successful. 

It’s so tempting to think you just need one more featured and then you’re product will be killing it. If only my plugin could do X, then everyone will want it. This is a kind of magical thinking that my ability to add features, and really enjoy doing so, has led me to.

That’s the lesson I’ve learned about business, by thinking as a developer about Ingot, as a business.


The Typical WordPress User

Over the last few years, I’ve provided a lot of support for WordPress users, so the low opinion many in our community have about the “typical WordPress user” is not shocking.  Having the privilege of attending WordCamp US and the WordPress community summit was a highlight of my year, and I had a great time but a few things about the experience were very disappointing.

The biggest disappointment was hearing so many people put down the intelligence of WordPress users.

There is a lot of disagreement on what a typical WordPress user is and what they can do. I witnessed and participated in some really serious disagreements about what a typical WordPress user can and can’t do. Whether they can use FTP, click 3 inputs in cPanel to update PHP, are a total moron, etc.

Too often this discussion becomes condescending towards the regular folks who make up the huge adoption numbers we see, and buy the products and services that make it possible for all of us to make a living.

This dismissive view of users is worse than the coffee was at WordCamp US. It’s fine to be a coffee snob, it’s not OK to look down at other for knowing less about WordPress and the related technologies than we do.

I’m OK with not budgeting for enough high-end coffee to keep 1800 of us awake. Remembering to bring my travel french press, which I did not, was my responsibility.

Coffee is a personal responsibility, but learning how to better know and empower our users — that is community responsibility. It’s worth the time, money and effort to do it right.

It’s an important discussion to have, but at the same time the argument has a logical flaw — the “typical WordPress user” is an undefinably large number of people. Even if we could define the total number of users, and calculate the mean technical ability set, the number of users within a reasonable range of that impossible to calculate value would be huge. The number who fall outside of it, but can’t be ignored, is also huge.

As much as I believe in the importance of good coffee, I believe that trying to define or design towards the typical user is the wrong approach.

Beyond Assumptions

I assume, based on the taste, that WordCamp Tampa Bay spent way more on coffee than most WordCamps do.

The life giving Kahwa Coffee at WordCamp Tampa was
The life giving Kahwa Coffee at WordCamp Tampa was excellent. 5 stars, strongly recommended.

It’s probably fair, though I haven’t done the research to prove it, that most “typical” WordPress users are unaware of the web browser console or how to use it to diagnose issues. As we move to more and more AJAX-driven processes, learning to use the console and network inspector to diagnose problems or at least give useful information in support requests is essential.

I am probably right that most users don’t know this skill. I’m only going based on my years of experience supporting WordPress users, not any data, when I make this assertion. My experience also shows that it is not a skill users can’t learn.

To argue that the typical WordPress user can’t learn this, or to upgrade PHP, or install a plugin is insulting.

WordPress is the single most empowering, and educational community, software, and experience of my life. I want that experience for everyone.

Not everyone will learn all of these skills. But trying to define the typical user, not the many user profiles, leads to an all or nothing approach. We end up with nothing useful.

It’s as wrong as drip coffee machines.

Moving Forward

Starting with better questions

Thinking that we can define a single user is insane. A better first question is how many user profiles should we be designing this software for? That question leads to a lot of other questions:

  1. How many profiles should be defined?
  2. What are those profiles?
  3. What relevant skills do typical users in those profiles know and not know?
  4. What relevant skills do users in each profile not know, but could be easily trained in?

Many people reading this hopefully have some thought on these questions. I’d love to hear them in the comments or on Twitter. But, I’d also like to hear how you would gather data to test these assumptions. Is it surveys, user testing, or something else?

I don’t know. It’s something I’m thinking a lot about. I’ll share more of my thoughts in the future, but right now, I think the first step is to rethink the problem. I lack the data to have an intelligent opinion. But helping to gather that data and put it to use is a very valuable thing that I want to work on and would encourage others to do.

Empathy and Empowerment Before Dismissiveness

We can’t help those we think are morons

Support Team Wapuu by Michelle Schulp
Support Team Wapuu by Michelle Schulp

The reality is a lot of people asking for help with WordPress do not know what they hell they are talking about. We could dismiss them as morons, or realize that the failing is our failing, not their failing.

We told them WordPress was easy. We told them our plugins, themes, services, etc. were intuitive to use. But clearly that wasn’t true for them. If that was true they wouldn’t be asking for help. They wouldn’t be frustrated. They wouldn’t be scared that they might not be able to complete the project they are working on. A project they might be getting paid for, or that their job may be riding on.

It’s easy to dismiss less experience users as noobs who are out of their element. It’s harder to empathize with when we ourselves didn’t know what the fuck we were doing with WordPress, or how bad we are at other things.

Some of us may feel good about tangible evidence of our superior technical knowledge.

In order to move WordPress forward, we must push past our assumptions, rely on data not anecdotal evidence, and stop ourselves from being dismissive. Once we do that, we can empower the many different types typical users.

Doing so will open us up to discovering the multitude of other solutions to the problems that scaling to 25% have brought us. Challenges that must be face before scaling past that.

It’s a wicked challenge and it sounds like a lot of fun to solve.

I Just Wandered Into This

There are a lot of reasons why my wife is awesome. Sharing my life with someone who is so driven and focused on her ambition inspires me. One of the many positive qualities she has is how well she takes a compliment.

It’s something I’m working on to learning to emulate. I’m getting a lot better at not replying to a denial or compliment with a self-deprecating joke, which used to be my default.

While I still have work to do, I think the way I worded the last paragraph, compared to how I express the thought it in my “mental draft” of this article — “it’s something I fucking suck at.” shows my progress.

WordCamp US and Community Summit BadgesAt WordCamp US I met a lot of people who I had helped through support, an article or one of my plugins. I had to work hard to take these compliments well.

When we deny compliments we are not only being rude to a person who is being incredibly kind to us, we are tearing ourselves down. Negating compliments is detrimental to self-confidence, self-respect and self-optimization.

It’s lying to yourself.

#realtalk I’m Awesome

See, I can do this!

I know I’m awesome and I don’t need other people to tell me that. But, it is great when they do:) While I have historically let the lack of self-confidence that compliment sabotaging grows out hold me back. It’s stopped me from asking for high enough pay, its stopped me from asking for help from others, it’s stopped me from finding the right financing for my business.

But, it hasn’t stopped me. Like the River Tam sticker on my computer says “No Power In The Verse Can Stop Me.”

Stickers on my laptopMy computer is also covered in stickers representing a small portion of what I helped build this year and a collection of Wapuus representing a small sample of the many WordCamps I’ve attended.

While I still have a few weeks left, I wanted to share some of the amazing things I’ve been lucky enough to be a part of this year by highlighting some of the publicly available work I have done.

But first let me tell you the thing I’m most proud of: every single item on this list is a collaborative effort. For those who keep asking me how I do so much, the simple answer is: David Cramer. I get to work with many other talented people, but I’m very lucky that I get to call one of the best plugin developers out there, someone whose form builder plugin blew me away with its awesomeness, my partner.

CalderaWP LogoThe CalderaWP sticker is at the top and it’s a pretty one that I’m very proud of. Our logo was designed by Lindsay Jo Crenshaw. It’s a fun logo and we strive to make plugins that are fun to use for the site manager and end user alike.

Since launching in February, we released 17 updates to Caldera Forms, and increased active installs from 1000 to over 10,000. We also released literally more Caldera Forms add-ons then I know about. Seriously, I need to check David’s GitHub for new ones I haven’t found yet. Some of my favorites are:

Caldera Connected Forms – Combines multiple forms into one big multi-page form. This allows you to create complex sequences of forms, with conditional logic on which parts to show based on user submission. It also tracks partial submissions and puts the results into one email and one database email.

Dwolla for Caldera Forms – This add-on was part of a GPL-powered partnership with GiveWP. It was also the project where I learned how Caldera Forms processors work.

Easy Pods, Easy Queries & Clarity for FacetWP. These three related plugins are really fun tools for creating custom search interfaces, as well as making working with complex WordPress as a  CMS projects easier. Expect to see more iteration and possibly integration of these tools in the future.

URL Builder — I think this was one of my better ideas, and was definitely one of the hardest challenges I through at David. It’s a great plugin I really believe in that is missing a few key features and should be marketed very differently. This is one I will probably be looking for a new partner or home for soon.

Ingot — The automated A/B testing system for WordPress. This is the plugin that is my current obsession right now. We’re currently in beta and hope to be launched within the next month or so. It’s the first of what I hope is many projects that are executed by CalderaWP and a separate group of partners. In this case, Christie Chrinos and Andy Larreategui are handling the business and marketing while I focus on development with help from Roy Sivan.

I met Christie and Andy at a startup weekend in Tallahassee. Since then I’ve had a great time working with these talented people, and been able to introduce them to the wonderful world of WordPress. It was very cool to see the community welcome these two newcomers at WordCamps Orlando, New York and US. It was also great to see Christie start contributing to the Spanish translation of WordPress during WordCamp US contributor day.

Someone else will have to count all of the articles I’ve written for Torque this year. The fact that I get paid to help myself learn while helping others is so incredibly special to me. I am super grateful to Marie Dodson for being a great editor for and everyone at WPEngine who makes what I do for Torque possible.

Torque’s Ultimate Guide to the WordPress REST APISpeaking of Torque and WPEngine I totally wrote a book! The book, on the WordPress REST API was a really special milestone for me. It’s been downloaded way more than a thousand times and I’ve gotten such great feedback on it. Major highlight of the year, I hope everyone who reads it makes something cool with the REST API and shares what they learned by doing so.

Speaking of the REST API, it’s so much fun to work with. I’m using it in Ingot to power our admin — a single page web app written in AngularJS — and in the front end to track the testing. I’ve also released REST API add-ons for SearchWP and WordPress SEO by Yoast.

In addition I worked on REST API integrations for GravityView and several clients including CGCookie.com.

I also made 16 commits to the REST API itself and contributed quite a bit to the docs. The REST API earned me one of my three “props” in WordPress 4.4.

Some of my favorite plugins I worked on for clients earlier in the year used custom APIs. These were fun to build, but REST API all the things moving forward.

The first of those plugins is Editus (formerly Lasso) by Aesop Interactive. I wrote a custom front-end AJAX API, and implemented. I also refactored their PHP to be more efficient and added new features. I can’t explain how much I love the process of architecting or re-factoring a WordPress plugin — #thatkindofnerd

I wrote a very similar API to handle live commenting in Epoch by Postmatic. This plugin was Jason from Postmatic’s vision, which I lead the development of and executed along with David, Jason and his developer Dylan Kuhn. Everytime I comment on WPTavern, it makes me smile to watch Epoch work.

Speaking of Postmatic, David and I also added three new features to Postmatic, MailChimp import, Subscribe2 comments reloaded import and the subscription optins. Also I got to know Jason, learn from watching him build Postmatic and from all of his advice he gives us on Caldera Forms.

On the topic of awesome clients that are more than just clients, Matt Cromwell and Devin Walker from WordImpress are just great people. They are encouraging, full of great business advice, give great feedback on our plugins, as well as being vocal supporters and users of Caldera Forms. We also worked on two plugins for them this year.

While I moved away from Pods this year, I still contributed to the project. We launched Friends of Pods, a program to help support Pods financially and I just wrapped up a really cool REST API integration for Pods 2.6.

Even though Pods is no longer my main thing, I always want to be a part of it. Pods was my first WordPress team and I would not be where I am today without support, encouragement, mentorship and friendship I have received from Scott Kingsley Clark, Phil Lewis and Jim True. The Pods sticker on my computer is one of the fanciest stickers on my computer and one of the ones closest to my heart.

WordCamps and Community

I’ve been everywhere…

I have an article coming up on Torque about my thought on attending 8 WordCamps in a year. I just want to say how much I love these events and how special it is to be able to speak at so many of them.

WordCamps are an affirmation and celebration of this community. It’s an unimaginably supportive community. This was my first year selling WordPress products. Getting advice and encouragement from Ben Fox, Nick Haskins, Matt Cromwell, Jason Lemieux , Daniel Espinoza, Vova Feldman, Asif Rahman, Naomi Bush, James Laws, Corey Miller has been invaluable. Reviving these gifts of knowledge is humbling and its. a challenge to me to pay it forward as much as I can go help this community grow together.

Enough About Me

Y’all are awesome.

wordpress-logo-simplified-rgbI’ve been talking about myself way more in this article than I’m used to. Not going to lie, it makes me uncomfortable. But, I know none of it would be possible without everyone who reads my articles, uses my plugins, gives me great advice and encouragement.

This year was also my first time attending the WordPress community summit, which was a special experience. It’s a true honor to be invited to the event. Community Summit is a private, confidential event so I can’t share too much about it. But, to be with 150 leaders of my industry passionately debating how to best move it forward is an unparalleled privileged.

Honestly, this whole thing that I get to do is a privilege. I’m so excited to build on the groundwork that we — David, Christie, Andy, Roy and everyone else I work with and I have built. It’s what’s going to make it possible for all of us, everyone I’ve mentioned here and more grow together in 2016.

It sounds like so much fun.


Introducing Ingot: Convert More, Do Less

Recently I was setting up a MailChimp campaign and the MailChimp interface asked me if I wanted to run an A/B test. Of course I do, MailChimp. You’ve got to A/B test everything. I’ve been on the internet, I know that to be the truth.

So, I started setting up an A/B test for subject line, but then it occurred to me that I already did that. I wasn’t sure so I looked through my campaigns and found I was right. So then I set up another test of course, because thou shalt A/B test all the things. Then it came time to enter my from line, so I had to look up what had one last time.

This is why I never A/B test and I hardly ever read my Google Analytics — I don’t have time for that. Read it, analyze it, apply what I’ve learned on my site and then start the testing over again. I’m already doing too many things, I want to set up all of the different options and let my site figure out over time what converts best and use that.

So, speaking of doing too many things at once, I wrote that plugin.

Meet Ingot


Ingot LogoIngot is the “do less, convert more” tool that anyone who wants to make more sales, get more downloads, increase their email list subscribers needs without becoming an A/B testing expert, needs. It gives you a simple UI to set up a series of tests, and works to find the one that converts best, overall, based on browser type (mobile, desktop, etc) and refer.

For example, enter 7 options for a call to action button and Ingot will find the best one over time. On the other hand, if you are running an eCommerce site and want to find out what gives you the most revenue; lowering your prices 5%, raising them 10%, or maybe you raise only your highest price variant. It’s never been easier with Ingot.

We’re starting off with a WordPress plugin. Don’t worry, I’ve been paying attention at WordCamps and we’re already planning the WordPress-powered SASS service so you can Ingot on any website. Thank you WordPress REST API.

By the way notice the “we” in the above paragraph? My new year’s resolution for 2015 was to stop working alone. It’s the only new year’s resolution I ever took seriously, and it’s been the most fun. From CalderaWP to this new team, not working alone is a great thing.

Meet Team Ingot

These are new friends.

Earlier this year, in a wonderful spell of “Josh get out of the house, network, meet people!” I attended Tallahassee Startup Weekend. I ended up on a ten person team that proposed an social network for entrepreneurs. I know, silly idea, though maybe there is some room for innovation. But it was a good experience.

Afterwards, a few of us refined it, made an MVP, tested it a bit and confirmed the suspicion that it wasn’t a great. That’s OK. We were learning to work together and building a team. Ideas are cheap, teams are hard.

We’re down to three of us including me. The two partners I have for Ingot are awesome. If you’re reading this you’re likely one of the “WordPress people” in my life. So you probably don’t know my new friends, but I hope to introduce them to you at an upcoming WordCamp.

Andy Larreategui is doing our marketing and sales. He is a senior in Political Science at Florida State University. He’s the kind of guy you call when you need 1000 twitter followers real quick.

Christie Chirinos is driving the bus as our CEO. She has a B.S. & M.B.A. in Management from Florida State University. She currently works at the Community Animator at the Centre for Social Innovation in New York City.

Josh, What About All Your Other Things?

What about them?

CalderaWP isn’t going anywhere. Part of why Ingot is a thing is so I could get this idea out of my head without having to sell another product without being the operations, sales, marketing, etc. person for the company. That’s what I do in CalderaWP, David is the lead developer. It’s nice to be doing both in different contexts

And yes, I do a lot of stuff. Too much stuff? I don’t know, but I’m having fun finding out, and working on all these challenging new projects along the way.

Where Is Ingot Now?

It’s about to be on the sites of our beta testers.

Ingot is in beta mode. We’d love to show it to you and learn what else you think it should do.

If you are at WordCamp New York City this weekend, find me. I’ll introduce you to Christie and we’ll give you a demo. If you are headed to WordCamp Orlando in two weeks, find me. I’ll introduce you to Andy and we’ll give you a demo.

You can also go to our website IngotHQ.com to learn more and schedule a demo.



On Confidence

Cliff over water

I once told a therapist that I felt like my lack of confidence in my own abilities was holding me back. He told me that I couldn’t have confidence in my abilities until I achieved something. Despite the fact that I thought that therapist was full of it, I still bought into that BS he fed me that day for years.

Everything I’ve been able to accomplish, from going back to school and getting two degrees and everything I’ve done in WordPress has come from me suspending my disbelief in my self.

Over time I found the strength to go out on a limb and trust myself that if I tried new things and believed in myself  I could get good at new things. If I hadn’t done that, I’d still be stuck in the same trap.

What my therapist told me, that I needed to accomplish something before I could have confidence was a catch-22. Thing is there is a grain of truth to what he said.

You can only get so far on “I think I can.” You have to build on success.

Pods Frontier Auto Template BannerThis week, we merged a plugin I wrote for Pods — Pods Frontier Auto Templates — into Pods itself. That plugin was not my first WordPress plugin, but it was the first WordPress plugin that worked and people actually used.

When I presented the idea as a feature for Pods, I’m not sure if Scott had me make it as a plugin because he didn’t see the need for it in Pods, or if he didn’t think I was ready to be doing development in Pods itself. The latter would have been a very fair assessment at the time.

Either way, I was determined so I made it as an add-on plugin and source material for tutorials. And it worked. It stopped people from asking for what they saw as a missing feature in Pods, and we had almost no bugs with it.

When I started working on merging it into Pods itself, I was so overcome with emotion I actually had to stop and come back to it. Everything I’m doing now with CalderaWP, with client work, etc. — when I say “yah I can do that” whether I currently know how or not, that’s building off of the confidence I got from that plugin. What I got from getting positive feedback on it, from it not needing a lot of improvements or bug fixes past the first version, from seeing it pass 1000 downloads, etc.

This is one of the reasons I tell everyone who is getting into WordPress development or any type of programing that they have to find an open source project to get involved in. When you’re starting out, you need support and guidance from more experienced developers. I got that and more from Scott and Phil. You also need to be able to find a small thing you can do, inside of the larger thing, to carve out, improve and feel awesome about doing it.

Tell People They Are Awesome

You are awesome.

The WordPress ecosystem is full of people who are trying something for the first time, or the forty-second time and have no idea if anyone appreciates what they are doing, finds it useful, or is using it. When you try out a new plugin, theme or service and you like it: say it. Call the author out on Twitter, leave a review, write a blog post… whatever — just say “you’re awesome.”

You never know what telling someone you appreciate what they created will do for them or who will see what you said and try it out.

And yes, this applies way beyond our little WordPress world. The internet can be a cold, impersonal and cynical little place. A simple “you made something awesome” goes a long way to change that for someone, so don’t forget to say it.



Inspiration Is Either Awesome or A Trap

The other night I was at the gym struggling to complete my sets on one of the leg machines that kicks my ass especially hard when I noticed two people doing “super sets.”  Super sets, if you don’t know, are exercises that people do in between weight lifting sets — push ups, jumping jacks, etc.

That’s right, people are doing exercises between their exercises.

That night as I was struggling to reach my goals on the weight lifting machines, these two people were not just lifting more weight on the same machines as I was. They were also doing aerobic exercises in between — time I reserve for panting and cursing under my breath.

Luckily I didn’t let myself compare myself to these way more fit people, who have clearly been working out for more than a few weeks.

See I often go to the gym with my friend Andy. He shows me what to do, and then does it with way more weight. I’m just getting back into exercising, so I’m learning from him, and doing what I can.

Focusing on how much more he can lift than me is stupid. Focusing on how he does it, taking his feedback on how I’m doing it wrong and how to improving my breathing is how I’m going to get my ass in shape.

Inspiration or Comparison?

Or why Josh woke up in a shit mood today and how he turned his day around…

The WordPress community is gifted by people who have had success and then share the lessons they learned along the way. It’s pretty amazing that when I’m starting a business that is in many ways similar to iThemes, I can hear their founder Corey Miller speak at WordCamps, get really awesome advice from him, read their awesome WPProsper newsletter…

Corey isn’t the only example. I had the pleasure of meeting James Laws from Ninja Forms, a business even more similar to my own at WordCamp Atlanta. I spoke with several members of his team then and have  talked to him a few times online about running a business in the add-on model since then.

This is awesome, if you want to be in the WordPress ecosystem, and you’re not taking advantage of this, then you are doing it wrong.

But that’s the easy part. The tricky part is not looking at their success, trying to emulate and then beating yourself up for not being where they are.

I started a WordPress product business of my own about six months ago that is going pretty well so far. Are we as big as iThemes or Ninja Forms? Nope. Are we years behind them in experience, building a brand, and nurturing our user base? Yep.

The support the WordPress ecosystem provides is awesome, but it does not make it easy. You can and should emulate those who are more successful than you. But it takes time and lots of hard work.

The real doing it wrong, a trap I find myself in, is comparing my self to people who are years ahead of me in terms of their revenue numbers, active install counts on WordPress.org, how mature their products are and how much everyone loves their products.

I believe in what we are doing at CalderaWP, the products are awesome, and the response from people who have used them is very positive. We will not be an overnight success, and neither were any of those I look up to.

So yes, it’s a trap. But it is an easy trap to get out off.

Those who are more successful then you, are great inspiration and when they share how they got there, that’s awesome. When you get out of the comparison trap, you can not only move forward. When you learn from them, instead of comparing yourself to them, instead of getting dragged down by jealously, you find your own unique path.

That unique path, in time is either going to work, or not. I have no idea. But only by moving forward on it, am I ever going to find out. I hope y’all will keep watching and find out.

Y’all Are Awesome

I should put that on a t-shirt 🙂

Thank you to everyone single one of you in this wonderful community for inspiring me to keep at it. It means the world to me, and I look forward to seeing y’all at upcoming WordCamps — I’m speaking at Las Vegas, Tampa and New York and planning on getting to Orlando and US as well — to say thanks in person.

In the meantime, we’re going to keep making Caldera Forms more awesome and spinning up other cool plugins. I hope you will try them and let us know what you think.




The GPL, Partnerships & Paying It In All Directions

Awhile back I was working on the the Authorize.net add-on for Caldera Forms. Let’s just say it wasn’t going well. I sent Matt Cromwell from WordImpress, the makers of GiveWP — an awesome way to accept donations on your WordPress site — if I could take a look at their Authorize.net add-on.

I know Matt through the AdvancedWP Facebook group that he moderates, and had the pleasure of meeting him and WordImpress/GiveWP lead developer Devin Walker at WordCamp Miami.

Matt sent it over and I found it very useful. So useful, that I started making the Caldera Forms Authorize.net integration based on it. Now, because Give and all its Addons are GPL, that’s something I have every right to do. It’s something that they explicitly gave each and every one of us permission to do under the GPL.

This led to a new partnership between their company and mine, CalderaWP. I wanted to share more about why I approach this relationship the way we did.

Helping Your Neighbors

Personally, I learn by reading source code, and often adapt other people’s code into my own. I could have just bought all of their add-ons as reference and source material for Caldera Forms add-ons. In fact, when I started talking to Matt about doing this he suggested I do just that.

Instead I suggested something that is probably going to cost us more money than the total cost of the 5 or 6 add-ons I wanted to look at. But it’s important for developing a relationship between our companies.

We are sharing a small percentage of the revenue from whatever GiveWP add-ons we adapt to Caldera Forms in exchange for read access to their Git repos, and the occasional “hey Devin, what’s going on in the code here?” In addition, we have open communication going between our team via dedicated Slack channels.

What’s so beautiful about the WordPress ecosystem is that those who share the most get the farthest and we rise together when we lift each other up.

The second freedom of the GPL is “The freedom to redistribute copies so you can help your neighbor.” Sometimes that means finding useful code online and learning from it, copying parts of it or copying it wholesale. What we’ve done with the GiveWP add-ons is not a complete copy, just like GiveWP is not a complete copy of Easy Digital Downloads.

I am learning from what Matt and Devin shared with me. For that I’m grateful and wish to repay them in any way I can. So far our relationship is working out well in both directions and can only grow in time.

This Doesn’t Apply In Most Cases

Please don’t get me wrong, I don’t think I was obligated to create a financial relationship, and neither are you if you do the same. If you have a copy of a CalderaWP plugin you want to use in whole or in part to make something new, go ahead. You have every right.

The plugins I work with a lot, Pods, Easy Digital Downloads, the WordPress REST API are my teachers, and I borrow heavily from them at times. I can’t even track how many times I’ve copied a line, or a whole function out of them.

The GPL is awesome, like that.

We learn from each other, we contribute to each other’s work — and yes I have contributed to every one of those plugins I listed above. And borrowing from each other is just what we do.

Relationships, which grow overtime need to go both ways and need to make you feel OK about them and know they will help in the long-term. That’s why for us, this path made sense to us.

When I like something someone creates, I talk about it, a lot. Anyone who asks me for a simple way to accept donations on WordPress, I tell them to use GiveWP.

What we are permitted to do is the baseline for behavior, but we can go beyond. I’m also a heavy tipper. I guess I like to make my gratitude clear in as many ways. But, as a vegan in a small town, there are only so many restaurants I can go to and like. The ones I go to a lot, I want to make sure their waitstaff knows I appreciate them, and support them.

We’re All In This Together

The WordPress ecosystem is comprised of thousands of independent companies. We, as community members know that. But most other people, and many of our family members even think that “we work for WordPress.” While that is not technically true, it sort of it. We all work to make WordPress.

Whatever way we can work together to lift each other up, through sharing whatever we can, teaching each other, supporting each other, the better we all will do.

I chose what is now CalderaWP, over other business I was working on, because I had a partner in it that was passionate about it, was a better developer than I was and I have fun working with. That’s all I want to do, is to keep having fun, making cool stuff with people I like. My goal and hope is to grow that circle more, anyway I can.
The GPL fosters community. It does not make community. Our community is based on how we use those freedoms and nurture our relationships.