Interlude: How I got here
By Peter Coppinger
I've been writing software since I was eight years old.
Not "learning to code" in the way people mean it now - there were no bootcamps in West Cork in the eighties, no YouTube, no Stack Overflow. There was a manual, a machine, and a very patient family. I typed programs in line by line and when they didn't work I read the manual again. That loop - try it, break it, understand it, fix it - got its hooks into me before I was old enough to know it was a career. It never let go.
Everything I've built since has been the same loop, just with bigger stakes.
Eight years building other people's software
Out of college I did what a lot of technical people do: I started an agency. We called it Digital Crew, and it ran for eight years out of Cork.
It began with basic websites. Then ecommerce. Then proper database-driven applications - real systems, for bigger and bigger clients. We built a great reputation and we got good at it, and I'm still proud of that work. It was a brilliant education and a hard living. You learn to ship, because a client is waiting. You learn to estimate, badly, and then better. You learn that the difference between a good tool and a bad one is measured in the hours of your own life you get back.
And you learn something that never really left me: the software a team runs on decides how that team feels every day. Not the strategy deck. The tools.
But it wasn't what we wanted to do forever. Every project we finished belonged to somebody else. We wanted to make our own apps.
We were drowning in projects and none of the project management software of the day was any good. So we built our own, to run our own agency. That's the least original founding story in software, and it's original every single time it happens to you.
Teamwork: a sofa, then $36 million
I wrote the first version of what became Teamwork.com on my sister's sofa. Daniel Mackey and I founded it on the 1st of January, 2007, in Blackpool, Cork.
We bootstrapped it. For years it was a side project we gave one day a week, because the agency paid the bills and the product didn't. Then it did. We took it from that sofa to $36 million in annual recurring revenue and more than a million users without taking a penny of outside money - and only then, in 2021, did we raise our first investment: $70 million from Bregal Milestone. By then Teamwork was hundreds of people across Cork, Boston, Belfast, Amsterdam and Barcelona, keeping projects on track in more than 170 countries.
I stepped down as CEO in 2024, after seventeen years. Teamwork.com is on its funded journey now, in good hands, and it doesn't need me in the chair. I wanted to go and do something new and fun.
Here's the honest part. I was never a natural CEO. I'm a developer who ended up running a company because the company needed running. I loved a lot of it and I was proud of what we built, but the days I felt most alive were the days I got to build something. Seventeen years is a long time to be slightly the wrong shape for your own job.
So I went back to the thing I actually am.
The day Linear ruined normal software for me
Then I used Linear.
I want to be precise about this, because "it felt fast" undersells it. Every click landed immediately. Not fast - immediate. No spinner, no skeleton, no little shimmer while the server thought about it. I'd click something and it had already happened. My brain kept waiting for a lag that never came.
I went looking for why, and fell down a rabbit hole I'm still in: local-first software. Sync engines. The idea that your app shouldn't ask a server for permission to show you your own data. You keep the data locally, you write to it instantly, and the sync engine reconciles with the server in the background - and if the network vanishes, the app just... keeps working. Syncs up later like nothing happened.
Once you've felt it, everything else feels broken. I mean that literally. I now find normal web apps physically irritating. Every spinner is a tiny insult - a piece of software telling you it wasn't built well enough to have your data ready.
The problem is that sync engines are brutally hard. Conflict resolution, ordering, partial replication, offline queues, schema migration on a thousand devices that have all been offline for different lengths of time. This is the kind of engineering that eats teams. It's why the apps that feel this good - Linear, Figma, Superhuman - are rare, and why they're all built by well-funded companies with specialists.
That's the injustice that started Vorx, though I didn't know it yet.
Success.co: proving it, and something I actually care about
So I built Success.co, and I built it for two reasons.
The first was selfish and technical: I wanted to write my own sync engine and prove it in production, under real load, with real customers who'd be furious if it lost their data. Nothing sharpens an engine like that. You cannot hand-wave a sync bug when someone's quarterly planning is on the line.
The second reason is one I care about more than anything else I've worked on. Success.co is built around EOS - the Entrepreneurial Operating System - which is the framework we used to scale Teamwork. I have watched, over and over, what happens to people inside a badly run company. Good people, working hard, exhausted and demoralised, because nobody agreed on who owns what or where the business is going. It's not a business problem. It's a human one.
No matter how small or how large a team is, it deserves to be well run. That's not a slogan for me. That belief is why Success.co exists, and it's why I keep building tools instead of retiring to a beach.
And along the way, something else happened. I fell hard for what AI can now do. I'd been sceptical - a lot of us were. Then I sat down and watched it build real, working software from a sentence, and I got the same feeling I got from that first manual at eight years old, and again the first time Linear didn't lag. Oh. Everything just changed.
Why Vorx
Here's where the two obsessions collide.
AI app builders are extraordinary. They're also, almost without exception, producing the exact software that makes me want to throw my laptop across the room. Online-only. A spinner on every click. Dead the moment the wifi drops. Realtime bolted on later, if ever. A demo that looks like a product until someone tries to actually use it on a train.
We're at this astonishing moment where anyone can describe an app and get one - and what they're getting is the worst architecture of the last fifteen years, generated faster. We've democratised access to mediocre software.
That's the thing I can't leave alone.
Because I have a sync engine. I've spent years building it and hardening it in production at Success.co. The plan is that when the AI generates the app and the engine underneath it together, the hardest part of local-first - all that conflict resolution and offline queueing and reconciliation that eats specialist teams alive - won't be something you build separately. It'll just be there. Included. You won't have to know it exists.
That's Vorx. Describe an app, get a real one: its own database, auth, hosting and a live URL from the first build. Not because you're a distributed systems expert. Because it comes that way. The sync engine - instant, offline-ready and realtime - is what we're building next; I'll say so here the day it ships.
The best technology in the world has always gone to the companies who could afford the best engineers. I want to hand it to everyone else.
This isn't about the money
I've had the outcome. I bootstrapped a company for fourteen years, raised $70 million, and stepped away from the corner office because I'd rather be building. I'm not doing this for another exit.
I'm doing it because I think there's an enormous injustice in software right now, and it's this: the difference between an app that feels alive and an app that feels dead is not talent or care or good intentions. It's access to a handful of very expensive engineers. A two-person startup and a solo founder and an ops manager who just needs a tracker are all shipping worse software than they deserve to, forever, because the good architecture is locked behind a specialist skillset.
I don't accept that. I've spent my whole life on this loop - try it, break it, understand it, fix it - and this is the biggest version of it I've ever gotten my hands on.
Great UI. Great apps. Sync technology that makes them feel alive. Handed to anyone with an idea and a sentence to describe it.
That's the dream. Vorx is me trying to build it.
Come build something
We're in early access while we sharpen the pipeline. If you want in, get in touch - we're onboarding new teams every week.
And if you've ever used an app that made you wait, and thought it really shouldn't be like this - you already understand exactly what we're doing.
- Peter
Just shipped
- Feature: sharing your build now earns credits: post it on X or LinkedIn, submit the link, get 15 credits.
- Bug fix: the language picker now actually saves your choice instead of reverting on the next page load.
- Feature: fleet coordination now works from anywhere. A hosted endpoint, not my home Wi-Fi.
- Feature: Mission Control is served online, locked to the company's own accounts.
- Feature: generated apps can now be installed like native apps, icon and all.
- Feature: a performance gate flags exactly which change slowed a generated app down.
- Feature: generated apps can connect to Google Sheets: append rows, read rows.
- Feature: generated apps can schedule real recurring jobs, not fake ones.
- Feature: owners get told immediately if their published app's database ever disappears.
- Feature: Apple login for generated apps.
- Bug fix: edits interrupted by a deploy now resume instead of silently vanishing.
- Bug fix: the cookie consent banner was never actually visible on production, so nobody was ever asked.
- Bug fix: generated apps were asking their database for tables that were never created. It hit 18 live projects.
- Bug fix: a code slip in generated apps could crash the whole page on load. Caught and fixed.
- Bug fix: publishing showed a "failed" message while the site was actually live. Fixed.
- Bug fix: agents quietly working from stale code can no longer ignore the staleness.
- Bug fix: a fresh browser window said "please log in again" to people who were logged in.
- Bug fix: demo data stopped booking appointments on days the business is closed.
- Bug fix: copied credentials could point a new project at the wrong database. Sealed.
- Bug fix: an overeager cleanup job was deleting healthy backends. Stopped.
- Feature: sharing your build now earns credits: post it on X or LinkedIn, submit the link, get 15 credits.
- Bug fix: the language picker now actually saves your choice instead of reverting on the next page load.
- Feature: fleet coordination now works from anywhere. A hosted endpoint, not my home Wi-Fi.
- Feature: Mission Control is served online, locked to the company's own accounts.
- Feature: generated apps can now be installed like native apps, icon and all.
- Feature: a performance gate flags exactly which change slowed a generated app down.
- Feature: generated apps can connect to Google Sheets: append rows, read rows.
- Feature: generated apps can schedule real recurring jobs, not fake ones.
- Feature: owners get told immediately if their published app's database ever disappears.
- Feature: Apple login for generated apps.
- Bug fix: edits interrupted by a deploy now resume instead of silently vanishing.
- Bug fix: the cookie consent banner was never actually visible on production, so nobody was ever asked.
- Bug fix: generated apps were asking their database for tables that were never created. It hit 18 live projects.
- Bug fix: a code slip in generated apps could crash the whole page on load. Caught and fixed.
- Bug fix: publishing showed a "failed" message while the site was actually live. Fixed.
- Bug fix: agents quietly working from stale code can no longer ignore the staleness.
- Bug fix: a fresh browser window said "please log in again" to people who were logged in.
- Bug fix: demo data stopped booking appointments on days the business is closed.
- Bug fix: copied credentials could point a new project at the wrong database. Sealed.
- Bug fix: an overeager cleanup job was deleting healthy backends. Stopped.
Stay updated: one founder, an army of AI agents, building this in public.
Get each new diary entry by email: the wins, the failures, and the one number we're chasing. No spam, unsubscribe any time.