This is a summary of the learnings that I've made as co-founder of Thrivethemes.com over the last 10 years. A chapter that's recently come to a close following its acquisition for multiple 7 figures in January, 2023.
Where it all Started
At 28, after a year of living frugally at home saving as much money as possible, I packed my bags. With $12k in my bank account and student loan debt of at least twice that much, I moved from the UK to Romania to share an apartment with a guy I'd never met to start a WordPress software business.
I had 6 months runway to make things work. After that I'd run out of money and have to return back to the UK, tail between my legs, to find a job.
10 years later, that particular journey has to come to an end.
Last month we announced that our company was acquired, bringing to close a decade of grinding it out. During that time we managed to do around $40m in sales, built a company with truly great people that, together, created some of the best web site and marketing software for small to medium sized businesses.
I could never have dreamt that things were going to end up like this. On board that flight to Romania I was full of fear and doubt - we had no experience, money and no history of success to derive confidence from. In fact, it was quite the opposite, everything I'd tried up until that point had failed.
I feel incredibly grateful and fortunate for these past 10 years. We really had no right to succeed, but somehow managed to brute force it. What a ride it's been.
Why I'm writing this post...
I'd like to share some of the key lessons that I've learned over this 10 year period for anyone that's looking to take a similar journey and create a software startup (or any kind of bootstrapped startup) themselves. It also serves as a point of reflection for me, a performance review so to speak, in preparation for my next venture (which I've just embarked on).
What these last 10 Years have Taught Me
1. Begin with the end in Mind
- Are you building the company to sell within 5 years or do you plan to build the company to a decent level of revenue and profit and hold the company indefinitely?
- Do you want to work in the company or do you ever want to step out and replace yourself while taking passive income?
- Are you going for maximum growth with aggressive reinvestment or do you want to solidify a certain amount of profit each year and optimize for that?
These are the kind of questions that are hard to ask in your first venture, when you're not even sure if you can even make a sale or two and put food on the table. But once it's become clear that you're onto something, I've come to realize that it's really important to have the end goal clarified relatively early on.
Your strategy and decision-making ultimately cascades from the end vision.
Knowing that you're aiming to build a company to $1m in yearly profit and never sell often requires a completely different strategy than optimizing for growth for an acquisition.
If the goal is to stay relatively small and optimize for profit you think twice about things like:-
- hiring that extra person
- expanding horizontally to bigger markets as opposed to strengthening and protecting your position in your existing market
- aggressive marketing for rapid growth and expansion
When the end vision is lacking, the tendency is to default to an obsession with growth. Each year, you just try to get bigger, investing more, expanding more. But growth often introduces a lot of risk, chaos and complexity. When it comes to companies, bigger is not always better.
With a software business especially, the constant drive for growth especially through horizontal expansion can lead to dangerous territory; being spread too thinly such that you build "average" solutions in many markets as opposed to "leading" solutions in a few. In such a predicament, you must decide between spending valuable time and energy on products that aren't "winners" and retiring them at the risk of alienating existing customers to focus on the few that really matter. It's far from an ideal situation to be in and the only good way of handling it is to avoid it altogether.
It's not that chasing growth is bad in and of itself. But mindless growth without knowing where you're headed often backs you into a corner and builds a debt that eventually needs paying with interest.
Ultimately, this lack of end vision clarity was our most expensive mistake.
If we had known three years ago that the end goal was an acquisition, our strategy would have been different. We didn't spend the necessary time optimizing the company and our numbers suffered because of it. This came at the cost of a lower multiple than we could otherwise have attained.
In any future endeavor, I want to be very clear on what the end game looks like. What are we aiming for? Are we optimizing for passive income or acquisition? Are we shooting for massive growth or market leader in a tight niche that's just big enough for our goals? What does our success story look like? Once that's clear and agreed upon, every strategic decision should be in alignment with it.
2. Protect your Winners
Towards the end of 2013, WordPress "visual editors" were built in the back-end of WordPress, were very cumbersome and slow to use, relied on lots of back and forth with the server (and thus lots of loading spinners!) and had high levels of abstraction. What you built in the visual editors back in those days had little resemblance to what was actually displayed on the front end of your site.
Enter Thrive Content Builder - we did a pre-launch of the first true visual editor for WordPress and the market loved it. At the time, only my business partner and I were working on the company: I coded the product and he did all the sales and marketing. We weren't expecting much of a splash. So nobody was more surprised than us when we made something like 2,000 sales and $250k in 7 days during that initial launch. We were onto something.
We had achieved significant first mover advantage. A home run in the bootstrapped world. There was nothing out there that came close to our visual editor for WordPress. We hired team members to help with the influx of customer support, bug reports and feature requests and we were truly flying.
Customers were sending us all manner of feature requests from animated galleries to carousels to gradient colored text and we were constantly improving the product and taking increased market share by the month. Some feature requests were coming up so often that we could tell that there was a significant market opportunity. Once such feature request: the ability to visually build lead generation forms.
In retrospect, here's where we started to make less than optimal strategic decisions.
Blinded by the opportunity, we used the same dev team that had been building and developing the visual editor to build a new product from scratch called Thrive Leads - a product that would be the first fully visually editable lead capture form builder for WordPress.
Building the product wasn't the crux of the problem rather the manner in which we did it. We did what I now call "reckless scaling": diverting resources away from a winner to chase growth. It seemed to be the right decision at the time with Thrive Leads being another market leader that generated a lot of revenue for the company. However, as with most strategic decisions, the cost of diversifying only really revealed its head further down the line.
By taking our eyes off of our main breadwinner we lost time and gave competitors the chance to innovate and compete. The most successful competitor, Elementor, was aggressively funded and took the WP world by storm with their competing editor, eating a large part of our lunch, the visual editor for WordPress market.
It's hard to say whether we could have more successfully fended off this attack if we had not diverted resources away from our flagship product, but I suspect we would have been in a better position.
If I had the chance to turn back time and have another go, I'd advocate for a different scaling strategy. Instead of splitting the entire team across two products, I'd have tried the following:-
- take one of the most experienced and motivated developers in the team (someone that isn't already a team lead) and create a new team with them (which at the beginning would be just them)
- have them construct an MVP of the product as quickly as possible
- upon the advice of this team lead, hire new talent as and when required to scale up development, design and QA.
- when ready, launch in beta (either to insiders or as a special introductory price) to a closed group to iron out as many teething issues as possible before full launch
- essentially build a new "mini company" around this new product silo'ing it off from our breadwinning product.
This scaling strategy allows you to protect your winners while still growing horizontally into other markets.
That brings me onto learning point 3...
3. Deepen Market Share - The Value of Being the Best
Two primary ways of growing the company and market share is to:-
- Deepen - capture market share in your existing niche
- Broaden - grow the company by entering new markets
I've already described how we took the "broaden" strategy in our early years and (in my opinion) executed it in a bit of a reckless way.
Broadening is always tempting because it has a number of advantages in the short term. It's often easy to enter a new market with an offer, do a cash grab, and make a decent amount of money (especially through cross-selling to your existing customers). It's easy to forget about the longer term ramifications of juggling multiple offers.
To be clear:- I'm not against growing horizontally. When executed correctly and in the right situation it's absolutely the right thing to do.
However, I think there's a lot of value in being the best at what you do. Being first in the market for the specific thing doesn't give double the results of the second best competitor, but more like 10 times the results.
Being best at what you do establishes:-
- Security - it's difficult for competitors to take you out because you're recycling the value captured from your winning offer back into improvement and innovation
- Higher profit value per customer because you're receiving greater brand recognition from cost-free channels of advertising as people realize you're the best at what you do (word of mouth)
- A tighter product market fit - simpler and more precise products that more accurately match what your customers want. Marketing that speaks clearly and directly to what your customer needs.
As an example, let's take two agencies:- agency A provides outsourcing for all types of company across all industries and agency B provides outsourcing for just a specific type of company (let's say e-commerce support). They both have the same number of people and they both do the same revenue and profit. Which company is more valuable?
I'd much rather own Agency B.
While the numbers are the same across both agencies, Agency B has a clearly defined and tight product market fit that allows for simpler processes, more streamlined execution, a better product and more focused marketing. It has a far more secure position in the market.
All other things equal:- owning a company that is market leader in a clearly defined and tight niche is more attractive than having a company that's broad, unfocused and spread thinly across multiple markets. If you end up trying to cater to everyone, you end up catering to no one.
In future endeavors, the question I want to ask my self is:- can we hit the growth targets needed to reach our end goal by deepening and growing market share in our existing niche? If so, why broaden? It adds unnecessary risk, complexity and uncertainty. If not, then horizontal expansion is necessary, and must be carefully planned and executed to avoid wrecking your most valuable assets.
4. Begin with a Proven Business Operating System from the Start
When we started Thrive we really had no idea what we were doing. We went from a 2 person team to 80 within a few years with no prior management or leadership experience. Neither of us had ever run a software company, either. Those early years just seemed like a baptism of fire as we tried to put in procedures and systems for the most important areas of the company without really knowing or understanding what those systems should look like.
Little did we know at the time that 90% of everything we were trying to implement had already been solved and documented thousands of times over many decades by other businesses. Rather than trying to re-invent the wheel and figure out these systems ourselves, we could have simply read something like EOS, hired an implementer (essentially an EOS consultant), and have a well-structured and systemized data-driven business within a few months. This would have allowed us to focus more time on our value prop that set us apart from our competitors rather than getting dragged into problems that we weren't really qualified to solve.
Not saying that EOS is the be all and end all for a well-structured and organized business, but it's definitely a very good starting point. Moving forward, implementing a system like EOS will be the first step I take in any future endeavor.
The meta lesson here is that even if you don't know the answer to the problem you're facing, it's likely the answer exists in someone's head, a book or course somewhere. Your job isn't necessarily to come up with the answer yourself, but find it and get it implemented.
5. Business Partners are like Spouses
Having a solid, reliable and skilled business partner is like gold dust. It's hard to overstate how important my partnership with Shane was to the success of the company. We really needed each other to make things work, especially in the early years.
We lucked out - not only did we have complementary skillsets but we were pretty much on the same page with everything. It was an extremely fruitful partnership and one that we continue to this day (and plan to for many years to come).
Beyond complementary skillsets (I got stuff built and he sold it) - attitudes towards money, culture, ethics and strategy were all on a similar page. Even when the company started to do very well, for example, we naturally both agreed towards capital accumulation and re-investment as opposed to paying ourselves larger salaries and becoming over exuberant.
Above all, we just get on well and have a strong connection - the journey would have been much less enjoyable and successful if we had a frictious relationship.
It's clear that Thrive Themes would not have existed in its current form if we hadn't partnered up. The sum of the whole became far greater than the sum of each individual part would have been.
On the flip side, I have had one experience working with a business partner that didn't work out favorably. It was extremely stressful for both parties. And once the partnership was agreed, it was a difficult situation to get out of. The net result was a lot of emotional labor, disagreements and ultimately a poor financial result for the company. To be avoided at all costs.
Just like marriage - choosing the right partner is seriously important. It's like a make or break decision from the start.
Knowing how massively important it is to work with the right people, I have some things that I look for before partnering with someone:-
- Skillset - do they bring to skills to the table that's crucial to the success of the company and that complements the skillsets of all other partners in the business?
In Thrive Themes, I was the tech co-founder and he was the marketing co-founder. Shane understood the market and what people wanted, I could take his visions and get it built quickly with the dev team, and he could sell it. Between us we had the core business covered.
- Work ethic and staying power - companies often take years before they become anything like what's originally envisioned (especially when bootstrapped). Do they have the necessary mental resilience and toughness required to see this through the inevitable tough first few years where they're not not necessarily getting rewarded for all the hard work that they're putting in?
The best way I've found of identifying if someone has these qualities is to see what they've already been working on. When I first met Shane, for example, he had already done years of personal development, had something like 200 videos on his channel, had written a few mini books and launched an information product successfully. He'd also successfully built an e-commerce store for computer equipment. His character and ability to see things through was evident for all to see.
- Personal connection - do they get on well with you? Are they happy to work through problems and disagreements objectively? Can they change their stance based on new information? Are they driven by ego or the success of the business? Are they always right?
Even if someone meets all these qualities, it can still be hard to figure out if it's going to work out. That's why I like to set up some kind of mini-project as a trial run before any kind of long term commitment.
Shane and I did this from day one - we came up with a week long project to build and sell a small information product for $7. We split the roles and agreed on the product, the marketing strategy and so forth. Things went well and we actually sold a few thousand dollars worth of the product starting from nothing. It stood as confirmation for both of us that the partnership would likely be successful.
Going forward, I'd like to continue looking for awesome and skilled partners to team up with. Not only do great partnerships multiply results but they also make the journey more exciting and enjoyable.
5. Don't Use PayPal
PayPal is great for a mom and dad type business where you want a quick way to accept payments for a few products here and there. But, it's absolutely terrible for a serious subscription model business, such as the one we built. Having dealt with PayPal for the past 10 years, I'm totally fed up with them.
Why did we go with them in the first place?
When we first started Thrive Themes in 2013, PayPal was pretty much the only game in town. We were also so focused on actually making sales and getting the business off the ground that we didn't spend enough time on things that would only become important if the business became successful. We had a... "we'll worry about that when we get to it" attitude. Finally it's difficult to identify in advance some of the issues I'm about to describe without actually using the service extensively, by which time it's too late.
This decision to use PayPal bit us in the ass big time. It cost us hundreds of thousands of dollars in unnecessary fees and our valuation suffered because of it.
Here's why serious businesses should not use PayPal:-
- Extortionate currency conversion fees - our company is a Swiss GmbH, so our PayPal account also had to be registered in Switzerland. Yet, all our sales were in USD. In order to withdraw money from PayPal to our bank account, it had to be converted using PayPal's absolutely terrible currency conversion rate into CHF.
You're probably thinking that we could simply set up a USD account in Switzerland and simply withdraw to that. Nope, PayPal doesn't allow you to withdraw USD from a Swiss PayPal account, even if the end bank account is denominated in USD. We tried everything to get out of this predicament but we never found a way.
This currency loss alone cost us over 6 figures a year.
- Unable to transfer subscriptions from one account to another - once a subscription is tied to an email address (and thus a company), that's it. You're unable to transfer subscriptions to another email address. So, if you're ever doing an asset sale to a company based in another country instead of a stock sale, you're pretty much screwed. Note:- I've read that there are certain situations where the company attached to a PayPal account can be changed but only if both businesses are in the same country. Unfortunately this wasn't the case in our situation.
This also cost us a small fortune because the buyer refused to pay the full valuation up front (and instead over a 3 year deal) due to the risk of having old subscriptions continue to run through our accounts.
- Continued Technical issues and poor UX - above all else, a payment processor needs to be reliable. Our experience is that PayPal isn't. Here are some of the technical issues we've experienced:-
- IPNs randomly not working for periods of time - Often this meant that PayPal didn't communicate to us that a payment was made and so customers didn't get access to the product
- Transaction reporting broken - we're currently in touch with their customer support because the transaction report that's produced (the one that our accountants use to balance the books) is missing line items(!). Our financial processes and reporting rely on this data being accurate - we're currently stuck until this is fixed.
- Unable to download and export a full list of active subscriptions - we had something like 24k active subscriptions in PayPal but we couldn't ever download and export a full report. Why? Who knows. If you want a full list of all your subscriptions, you have to contact your account manager to arrange and, if you're lucky, you'll get it within a few weeks.
- Misinformation on important matters from account manager - a number of years ago we were told that if we moved the company from Switzerland to Gibraltar, we could move all the existing subscriptions over to the new entity.
Based on this information we went through the whole process of business registration, set up the new entity and created a migration plan. On the day of migration, we moved everything over to this new entity only to realize that subscriptions continue to be processed through the old account (as described above). It cost us months of wasted time, energy and expense. This was met with an admission of mistake and apology from our account manager at the time.
Do yourself a favor and use Stripe or another similar payment processor that allows you to own and move subscriptions if needed and stay far away from PayPal.
6. Separate Assets and Products into Different Entities
A common mistake is to have multiple business ventures under the same corporate entity. At the start, it can feel like the easiest way to do it, but going forward it definitely complicates matters and can be difficult to separate.
In our situation, our Swiss entity contained Thrive Themes but also other assets that we weren't willing to dispose at the time. This meant it was not feasible to do a stock sale (where the buyers take over ownership of the existing corporation). Having separate entities would have made this a non-issue.
Furthermore, businesses are commonly valued using EBITDA. Multiple ventures under one entity that all contribute to a single EBITDA can make the buying process far more complicated than it needs to be. Even if the end goal is not to get acquired, having a clean and clear separation makes for fully transparent financial reporting, accountability and a separation of risk should something go belly up for whatever reason.
A structure we'll use going forward is to have a parent holding company with fully and partially owned subsidiaries (depending on equity and stakeholder setup) underneath. This kind of setup allows us to fund new ventures with loans from the parent company without initiating a taxable event while allowing for a very clear and distinct separation.
7. Don't Design Complex Software by Committee
During our 10 years developing software, the two projects that took the longest and caused the most grief for both the company and our customers were Thrive Theme Builder and Thrive Apprentice. Both projects were train wrecks in terms of execution - they took three times as long to build as necessary.
For both these projects we tried a lean design approach where decisions were agreed by committee. A team of us routinely gathered around a table, agreed the next steps, and it got implemented. Rinse and repeat. Specs were sparse and decisions were quick - it felt like we were making good progress at the start.
But, it turns out that building the right thing and building the thing right are quite different! Lean design got us to an MVP quicker but introduced a boatload of tech debt that meant rewriting large portions of the code and in some cases starting entirely from scratch. Most of these issues could have been avoided by taking the proper time to think things through and create detailed specifications in advance.
On the other hand, we had some impressively quick and efficient builds - Thrive Automator was especially well executed given the challenge. For this build, the developers had a full and complete interactive and clickable prototype detailing exactly how the app should behave along with a full set of specifications. Everything was discussed at length by product owners and BA's in advance and the result was a clearer end goal that we knew wasn't going to back us into a corner.
I can see how design by committee might work for less complex pieces of software, but it can be extremely dangerous for larger projects.
8. Get Close to and Learn from your Most Valuable Customers
One of the smartest decisions we did was to set up a beta group and invite our most loyal and passionate customers to the group. From this beta group we ended up with some of the most invaluable insights at the product design stage. It helped us to focus on what mattered and to eradicate false assumptions.
Sometimes we'd agonize over how to build a feature only for someone in the beat group to tell us that we were building something that really wasn't required or that we were simply over-complicating things (happened often!). Without doubt, our products were better for it.
In future endeavors, I'd like to take this even further by introducing more systematic ways of engaging customers. Things like regular one on one customer development calls and onboarding webinars to really get inside the heads of our users. These kind of data points are the difference between really "getting it" and not quite hitting the mark.
9. Sustainable Pricing and Focus on Subscription Revenue
When we started out, you could buy our first product (Thrive Content Builder) for $67 with unlimited installations and updates and one year of support. Looking back, this was a ridiculous pricing model that severely undervalued the product and ultimately cost us a lot of subscription money. I can hardly believe how dangerous our pricing model was. It just goes to show how clueless we were when starting out.
In retrospect we should have had a subscription model from the start:-
- $67 per year for 1 year of updates and support
- A limited site model (1 license, 5 licenses, 15 licenses, agency)
- The subscription renews automatically
- If the customer fails to renew then updates and support are stopped for all sites
On the surface, it may seem that we're just charging customers more money for the sake of it, but companies have put themselves in danger with up-front-only pricing models. When front end sales are no longer enough to support ongoing software maintenance, updates, fixes and support then serious problems arise.
The fact that we survived is mainly testament to the fact that we had such a dominant market position to last long enough until we saw sense and change our pricing model early enough. If we hadn't deviated away from one time pricing then we likely would have faced existential financial issues.
Other Things that deserve a mention:-
- Open and API driven - We should have more heavily networked and integrated our tools with the WordPress ecosystem by making everything developer friendly and API driven from the start. I believe this lack of collaboration cost us as customers perceived Thrive as being a "closed" ecosystem that trapped them. Towards the end of our tenure we made lot of steps to address this problem with our apps library, Automator and API docs.
- Backwards compatibility - One of our biggest mistakes was to try and relaunch Thrive Architect as being backwards compatible with Thrive Content Builder. The task was too large, complex and contained far too many edge cases to be executed to quality. We tried to accomplish the impossible anyway and, apart from taking ages to build, the resulting chaos caused a huge hit to our reputation and led us to upset a few "influential" fans who then turned to our competitors. We should have been brave enough to just draw a line under TCB and launch a new non-backwards compatible editor.
- Financially cautious - some years the company was making nearly a few million USD in profit per year yet we didn't pay ourselves a salary in line with that. We accumulated, reinvested and continued to be financially reserved. This ultimately helped the company to survive through some difficult economic periods and led us to a strong financial position now, after the sale, that we wouldn't have been in otherwise.
- Brand and customer loyalty - In the early days, Shane was very visible and the "face" of Thrive Themes, so to speak. His communication style on video, valuable insights and trustworthy approach to business built a very loyal fanbase that exists to this day. This was a major factor in our early success.
- Start small and take one step at a time - not many people know this, but Shane and I had already built a number of smaller WordPress software products together before the idea of building Thrive Themes was even mentioned. These products were built in a month or two, limited in scope, and allowed us to learn our chops and gather quick feedback. If we had jumped straight into Thrive Themes from the start, it would have never worked - our skills wouldn't have been up to the challenge.
Onwards and Upwards
So there it is, 10 years of learnings in one blog post. I'm sure there's things I've missed so I might come back and edit at a later date.
Thanks for reading.
If you have any questions about any of the above then leave a comment. Also if I can help you with your business in any way then get in touch and I'd be happy to help where I can.
Here's to the next 10 years 🙂