Why we stopped reselling GoHighLevel and built our own platform
We resold GoHighLevel to hundreds of clients. Here is the pattern that made us stop and build StoryPages instead — told with respect for GHL.
The last GoHighLevel support call I remember clearly was about a button.
A client — an author, genuinely successful, sharp about her own business — needed the button on her book landing page to point at a new pre-order link instead of the old one. She had been logged into her own account for twenty minutes before she gave up and messaged us. We changed it in about forty seconds.
She apologised. That is the part that stayed with me. She apologised to us for not being able to change a link on her own website.
We did not start out as a software company
James Cook Media was a storytelling agency. That is still the sentence I would use to describe what we are good at: finding the actual story inside a business and making people care about it.
For years that was the whole engagement. We would do the positioning work, the narrative, the messaging — and then the client would say, reasonably, “so where does this live?”
They needed a website. Then a funnel. Then somewhere for the leads to land, and emails to follow up with. We started doing that work because the alternative was handing beautiful strategy documents to people who had nowhere to put them.
Why we became a GoHighLevel reseller
We tried the obvious combinations first. A site on one platform, a CRM on another, email somewhere else, a funnel tool bolted on. Every client became a small integration project, and every integration project became something we maintained forever.
Then we found GoHighLevel, and it solved a real problem for us. One login. CRM, email, funnels, pipelines, automations, phone. Sub-accounts so we could run many clients from one place. Snapshots so we could take a setup that worked for one coach and deploy it for the next one in an afternoon.
I want to be precise about this: GoHighLevel was the right decision at the time, and it was good software. It is mature, it is deep, and it earned its market position honestly. We made real money with it and we served clients well with it. Anyone who tells you GHL is bad software is either selling you something or has not used it seriously.
We became a substantial reseller. Over the years we built more than 300 client websites and funnels — most of them on GHL.
Three hundred is enough to see patterns.
The pattern we could not unsee
Here it is, and once you see it in one account you see it in all of them.
Every single client account needed us to operate it.
Not to build it — building it was our job, fair enough. To operate it. To change a headline. To add a page. To fix a broken link in a workflow. To duplicate a funnel for a new offer. To explain why an email had not sent.
The software was entirely capable of all of it. The owner was locked out — not by permissions, by comprehension. Sub-accounts, snapshots, triggers, workflows, pipelines, custom values: every one of those concepts is legitimate and well-designed, and together they are a platform you administer rather than a tool you use.
So the owner did not administer it. We did. Forever.
We had built three hundred businesses a website they could not touch. And we were charging them a retainer for the privilege of being the only people who could.
That was the turning point, and it did not feel like a business insight. It felt like a problem with our character.
The support call that ended it
Back to the button.
After that call I went through our support queue for the previous quarter and sorted the tickets by what was actually being asked. The result was uncomfortable: the overwhelming majority were changes the owner wanted to make, knew exactly what they wanted, could describe in one plain sentence, and could not execute.
“Change the button to this link.” “Swap the testimonial on the homepage.” “Add a page for the new workshop.” “Make the header say Founder instead of CEO.”
Every one of those is a sentence. Every one of those became a ticket, a context switch for us, and a small humiliation for a capable adult.
We had an entire revenue line built on the gap between a sentence and a platform.
You can respond to that in two ways. You can build a better snapshot library and a better onboarding video — we tried, for a couple of years, and it helped at the margins and changed nothing structurally. Or you can decide the gap itself is the product problem.
What we decided to build instead
The design constraint we started from: the owner has to be able to stay in control, without learning a platform.
That ruled out the obvious approach of “an AI that builds you a website while you watch”. Fully automatic is not control — it is a different kind of black box, and when it gets your positioning wrong you are back to asking somebody for help.
So the build is a conversation with approval gates. You describe the business. You approve the visual style. You approve the sitemap. You approve the wireframes. Then it goes live. Four decisions, each one yours, each one revisable by saying what is wrong with it.
And critically, the assistant does not leave when the site launches. It stays in the rail. Month four is the month that decides whether a website is an asset or a liability, and month four is exactly when an agency-operated site starts to rot.
Underneath it we built the things our clients actually needed anyway — a CRM, email marketing, a funnel builder, hosting, domains, SSL — because the integration-project era taught us that lesson expensively. Webinars and calendar booking are on the roadmap and I am not going to pretend they exist yet.
We also added something GHL did not have to worry about when it was designed. Our
clients’ buyers increasingly ask ChatGPT and Claude for recommendations instead
of typing into Google. So every site we build ships structured data, llms.txt,
semantic HTML, and static pages by default — AI visibility
is on, not an option. Doing that work manually per client was one more thing only
we could do.
What we deliberately did not copy
This is the section that tells you whether to believe the rest.
Phone, SMS, and the dialer. GoHighLevel’s communications stack is genuinely good and we do not have one. That is a decision, not an oversight. Carrier relationships, deliverability, and compliance are a whole company’s worth of work, and a mediocre version would be worse than none. If your business runs on outbound calling, GHL is the better tool and I would rather you knew that now.
White-label SaaS reselling. GHL is architected so an agency can sell it as their own product. That is a real business model and GHL serves it well. But it pulls the product towards the agency as the primary user, and every decision downstream inherits that assumption. We pointed the other way on purpose. It costs us a revenue line we understand well — we lived it — and it is the only way the owner ends up in the chair.
The snapshot marketplace. Snapshots are efficient and they were good to us. They also encode the idea that your setup is a copy of somebody else’s, adjusted. We would rather generate from your actual story, which is the thing we were originally hired for.
A thousand configuration surfaces. Every setting we add is a setting a non-technical owner might have to understand. That trade-off used to be free for us because we were the ones configuring it. It is not free anymore.
Who StoryPages is and is not for
Being clear about this saves everyone money.
It is for the person whose name is on the business: authors, coaches, consultants and experts, local operators. People who need a professional site with the CRM and email underneath, who will be the one logging in most weeks, and who do not want to become an administrator of a marketing platform.
It is not for agencies whose product is a resold platform, businesses whose engine is outbound phone and SMS, teams that depend on a specific GHL snapshot ecosystem, or designers who want pixel control and will not accept an AI proposing a layout first.
If you are in the second group, GoHighLevel is probably still your answer, and we wrote a longer side-by-side comparison that tries to be fair about exactly where it wins. There is also a broader comparison overview if you are still shortlisting.
What this was really about
We spent years being paid to be the bottleneck. It was a decent business. Most agency businesses are, and I am not going to pretend we noticed the problem quickly or nobly — it took three hundred builds and a woman apologising to us for not being able to edit her own website.
The product is the correction. Describe your business, approve the plan, own the result. We would rather sell software than sell dependency, even though dependency has better margins.
If you want the longer version of who we are, it is on the about page. If you want to see whether this works for your business, the free plan exists precisely so you can find out without a call with anyone — including us.