2007–2012: Building it
The first of three pieces about eighteen years of WebTranslateIt — what it taught me about products, markets, and why I built my second company as the structural opposite of my first.
WebTranslateIt’s first commit is dated October 4, 2008, and it was made from Sardinia, where I was on holiday. Picture that honestly: three weeks after Lehman Brothers collapsed, with the world’s financial system on fire, a French developer on an Italian beach holiday opens his laptop and creates a Subversion repository for a translation tool — because the idea wouldn’t leave him alone even there. (Yes, Subversion. It was October 2008; GitHub was six months old and git was still something you apologized for suggesting.)
I can’t claim the timing was strategy. But it shaped everything about these years: the capital that would later transform my industry was, in October 2008, busy not existing. The field was empty of everyone except people who simply wanted to build.
The idea was born inside Last.fm, where I worked in the late 2000s. In 2006–2007 I built an internal tool there to manage the site’s translations, because the way software got translated everywhere was this: someone exported the strings into a spreadsheet, emailed it to translators, waited, received several slightly different spreadsheets back, and merged them by hand. Then a developer changed twelve strings, and the whole thing started again. Nobody called this a workflow. It was just what everyone did.
The internal tool proved the idea worked. But WebTranslateIt itself shares not a single line of code with it — I wrote WTI from scratch, as its own thing, from Sweden, where I was working remotely for Last.fm years before remote work was a thing anyone did on purpose.
Fourteen months passed between that first commit and the first euro of revenue, in December 2009. Fourteen months of nights and weekends on a bet nobody was validating — no users cheering, no investors pattern-matching, no Product Hunt. Founder stories tend to edit this part out because nothing happens in it that can be narrated. But it’s the part that decides everything: the toll booth existed for more than a year before the road did.
The incumbent that couldn’t scale
An incumbent already existed — 99translations.com — and I want to say clearly: it was good. The idea was right, the interface made sense, someone had genuinely thought about the problem. But it had been built the way most web apps were built in those years, with everything happening in the request. You uploaded a language file, and the server parsed it, diffed it, and updated the database while your browser waited and the rest of the site queued up behind you. That’s fine for a demo. It’s fatal for the actual workload, because translation files are the definition of lumpy traffic: nothing for days, then a customer imports forty locale files at once. Every serious customer was a denial-of-service attack on themselves.
My one structural insight — and in 2007 it counted as an insight — was that all of the heavy work belonged in background jobs. Accept the file, queue the work, keep the site fast for everyone else. Today a junior developer does this by reflex; in 2008, on Rails 1.x, before the job libraries we now take for granted, it meant assembling the machinery yourself. It was unglamorous plumbing. It was also a moat: WebTranslateIt could take whatever a real customer threw at it, and it stayed up. The early contest in translation management software wasn’t over features or price. It was over architecture, and architecture was something one developer could win.
The second moat was less visible and took far longer: the file handlers. A translation platform lives or dies on the formats it understands — Rails YAML, gettext PO, iOS strings, Android XML, and a long tail of dialects, each with its own escaping rules, its own plural forms, its own undocumented quirks that only surface when a real customer uploads a real file. I spent months on this — months of the least glamorous programming there is, reverse-engineering how each ecosystem actually serialized its strings versus how its documentation claimed it did. That file-handling code is still in production today. Frameworks rose and fell, competitors raised and burned nine figures, and the parsers I wrote in a flat in Sweden keep parsing.
The reference implementation
Through the years that followed, something happened that I only understood much later: the product stopped being just a product and became the spec.
Competitors arrived, some from the open-source world, some funded, some as teams of twenty against my team of one. And the twenty were, in at least one case I could verify, reading the one’s documentation to figure out what to build: tickets in a competitor’s public issue tracker linked to my documentation — not to standards, not to academic papers, to the WebTranslateIt docs, as the description of how the feature should work. I was annoyed for about a day. Then I understood what I was looking at. When your competitor’s engineering tickets cite your documentation as the requirement, you have already won the argument about what the product should be. Being copied is what winning that argument looks like from the inside. It just doesn’t pay royalties. One competitor later shipped a command-line tool that mirrored mine down to the verbs — same commands, same grammar, same shape of output.
In a contest decided by architecture and product judgment, one developer can keep a funded team on its toes indefinitely. That stopped being the contest.
Where things stood in 2012
By 2012 the scoreboard, as I understood it, read well. The architecture held. Customers who tried competitors came back after the first big import choked. Revenue was real and growing, and I was doing all of it — code, support, invoices — from my own two hands, with no investors and no debt.
Even advertising worked, in that innocent way that’s hard to describe to anyone who entered SaaS after 2015. At one point I spent about $700 on ads, and it brought a wave of new customers — actual, paying, staying customers, acquired for the price of a laptop. Clicks were cheap because the only people bidding were people who, like me, needed the math to work. Remember that $700, because a decade later I would be paying almost that much every month for ads that acquired nobody at all.
The era had its absurdities too. On June 21, 2011 — the day after my 29th birthday — I was woken at 7:11 in the morning by monitoring alerts: the server was unreachable by any means. The hosting company first blamed a router bug. Then I noticed that Pinboard and Instapaper — hosted at the same ISP, because in 2011 the entire indie web apparently shared the same racks in Virginia — were down too. The truth came out over the day: the FBI had raided the datacenter in pursuit of someone else entirely and pulled three racks of servers. Some machines were carried away as evidence; mine was merely disconnected, collateral to my rack-neighbors’ misfortune. I spent the morning tweeting updates, and by 10:30 the site was back with no data lost. I published a post-mortem and apologized to my customers for the FBI.
There’s a lunch from 2010 that captures the era for me. I sat down with Tom Preston-Werner and Kyle Neath of GitHub — then still a young company, years away from taking its first venture round. We were running the same stack: Ruby, Rails, the same gems, probably the same deployment headaches. GitHub was proof of the thesis I was betting my working life on — that a small team of developers, with no permission and no capital, could build something the whole industry adopted purely because it was better. What strikes me in hindsight isn’t anything said at the table. It’s that the table existed at all. The industry was still that size.
That same year, the CEO of a company that was one of my happiest customers wrote to offer something remarkable: an investment or an acquisition. His company was self-funded, three owners, a hobby turned business. They had localized their whole platform on WTI, and his reasoning was the era in miniature — they had, he wrote, seen many useful small vendors come and go over the years, and they didn’t want that to happen to this one. I said no, almost without deliberating — why would I sell the thing that was working, in a world where the rules were fair and I was winning under them? It was the most reasonable decision in the world, given everything I could see in 2010. His fear — that WTI would come and go — is the one prediction about my product that never came true. Sixteen years later, it’s still running, still independent, still answering support email from the same man.
The confession
Before the money arrived, one thing about the man who was winning.
Around that time, the founder of a competing product wrote me the friendliest email a rival would ever send: praising the craft in WebTranslateIt, proposing that our tools might talk to each other, floating collaboration with no specific agenda, closing with an invitation to meet at an open-source conference — with a smiley. That was simply how the neighborhood talked in 2010.
I never replied. And the honest reason is less flattering than shyness. I heard the praise as something slightly patronizing — the famous project patting the indie craftsman on the head — and my private response was pure pride: I thought I had the superior product, plainly, and that this settled the matter. What did they have that I wanted? Fame, I told myself dismissively. Community. Interesting customers. In other words — and I could not see this for another thirteen years — they had distribution, the exact thing whose absence would eventually cap everything I built, offered to me in embryo, wrapped in a compliment. I scored the game on product quality, and by my scoring I was winning. They scored it on reach.
I had a creed for all this, and it had a patron saint: Steve Jobs, then at the height of his myth. What I took from him — what my whole generation of builders took from him — was the excellence half: obsess over the craft, say no to almost everything, let the product be the entire argument. It didn’t occur to me until embarrassingly recently that the actual Jobs was also the greatest salesman, negotiator, and distribution strategist of his era. We absorbed his editing and never noticed his selling.
But writing this forced me one layer deeper. The pride wasn’t really the foundation. The foundation was that I was shy. I didn’t know how to have that phone call, how to work a conference hallway, how to reply to a warm email from a stranger without it costing me something I couldn’t name. And a shy craftsman who finds a philosophy in which the craft is everything and the humans are interruption has not found a philosophy — he has found armor. When the business needed me to pick up the phone, go to the fair, chase the partnership — the hard, exposed, unscorable things — there was always, conveniently, code to write instead. I hid in the open, shipping, for years, and called it focus.
Almost three years after that unanswered email, another one arrived — from a competitor that had just closed a huge funding round, informing me of its plans to take 80% of the entire market. I didn’t answer that one either. But it marked the end of one era and the start of another.
Dún Laoghaire, 25 July 2026.
In this series
2012–2024: When the money arrived →