[ Software · Mirola.io ]
A production CRM, built and run by one person
I was paying to rent a CRM and reselling it to clients. Now they pay for one I built. Mirola is a multi-tenant platform with billing, email, workflows and an AI integration layer, running in production for paying businesses — and it's the reason I can say I build software rather than websites.
- 15
- paying businesseson the platform
- 100+
- AI-accessible toolsvia MCP
What was wrong.
For years I ran client CRMs on GoHighLevel. It worked, but every client was paying a licence to a company that didn't know they existed, I was paying to resell it, and every time it changed something my clients' workflows broke and I got the phone call.
The bigger problem was that I couldn't fix anything. When a client needed a pipeline stage to behave differently, or wanted their CRM to talk to a tool it didn't support, the answer was "it doesn't do that." I was a consultant recommending software I had no control over.
What I did.
I built Mirola from the data model up. Multi-tenant from the first migration, so each business's data is isolated at the database level rather than by trusting the application. Contacts, companies, custom entity types, pipelines, tasks, calendar, ticketing, email campaigns and automated workflows.
Billing runs on Stripe with a card-first trial, three tiers, and per-tier sending limits enforced in code rather than policy. Email goes through Resend on each client's own verified domain. Inbound webhooks let any website form create a contact and trigger a workflow.
The part I'm proudest of is the MCP server: around a hundred tools that let Claude or ChatGPT read and write to the CRM directly. A client can say "find everyone tagged Inbound this month who hasn't been contacted" and get an answer, or "move this deal to Proposal Sent" and have it happen. That's the layer no rented CRM would ever have given me.
It's the same stack I use for every client build — Supabase, Postgres, edge functions — so nothing in it is experimental.
What changed.
Clients now pay for software I own and can change. When something needs to work differently, I change it, usually that week. The enquiry form on this website goes through Mirola's inbound webhook — and building that form found a bug in the webhook that would have silently dropped every client's form messages. I fixed it in the product the same day. That's the difference between owning the platform and renting it.
It also means every recommendation I make about CRM comes from someone who has built one, run the billing, handled the support tickets, and migrated eight sending domains on a Sunday without anyone noticing.