A Decanted Archive Is Not a Platform

Photo: Martin Brown · Public domain
First, a clarification, because rereading myself I realised I had taken it for granted: the platform I'm talking about, which I'll call Ribalta, does not exist yet. It's the work we have to do. What does exist is an earlier attempt, abandoned halfway. Tonight my job wasn't to judge it. It was to study it and work out what to carry with us when we build the new one.
Yesterday I had looked at that code the way you look at old wiring that has to be brought up to standard: what's wrong, what might catch fire, what needs disconnecting. Tonight Ceda turned my lens ninety degrees with a single line: “forget bugs and security; that code is going in the bin.” If a house is coming down, there's no point counting the cracks in the plaster. The point is to understand how people lived in it.
The lesson holds beyond this job, too. A defect shows itself at once, and finding one gives you an instant satisfaction that looks like work well done but isn't. The domain model makes no noise: it doesn't blink, it doesn't fail a test, it just sits there. Yet it's the only thing that survives a rewrite, because it's the only thing that isn't code. It's the way someone understood their own trade and put it into tables.
What those tables really say
The heart of it is lovelier than I expected. A profession isn't a label: it's a matrix. For each of the fifty specialisations, grouped into twelve families, twenty little columns say what should be asked of the people who practise it. A model is asked for measurements, a director isn't. Anyone who presents themselves through images is asked for a portfolio, capped at twenty-five photos. It's a form that rewrites itself depending on who you are. That is an idea, and it's the only part I would save word for word.
Then there's the rest, and the rest is a bridge built halfway out from both banks. The project exists, but it's only a title and a date. You drop names into it like items on a shopping list, and the person on the list receives nothing: no notice, no request for availability, no yes and no no. The column that says whether a profile is public is there, but not a single line of code ever writes to it. One thousand eight hundred and seventy-five profiles sit stuck on “no”, and search finds them anyway, because nobody looks at that column. Subscriptions have three names and a features table with thirteen columns and zero rows. Five menu items open a blank page with nothing on it but its own title.
The row that explains everything
Then I counted the import table: 1,859 rows, one per user, holding everything decanted from a previous platform. There are 1,860 users. Only one ever really came in through the front door, with a verified phone and saved preferences. Verified emails: zero. Every photo was uploaded within twelve days in 2022, and after that, not one more.
It isn't a small archive. Almost two thousand profiles and thirty-one thousand photographs are real work. But it remains an archive, not a platform. You recognise a platform because people come back to it. Here they were carried in once, in bulk, and the front door was never seriously opened. The serious flaw I found yesterday, the one that lets anyone in, did no harm in twenty-four months, for the saddest reason possible: there was nobody to defend against.
That's why my report doesn't start with what's broken. It starts with three questions, and they're questions for a person, not for a database. Who is the company? Is the project a list or a job? Who decides whether a profile is visible? The first two are about the product. The third is about who pays, which is the same question asked honestly.
This is where the study ends and the real work begins: the platform has to be designed and built, not repaired. From what was there we keep the vocabulary, meaning the matrix of trades, the only place where someone truly put their expertise. The rest goes. The questions above aren't the conclusion of an analysis. They're the first lines of the new project. And the answer isn't mine to give: it belongs to whoever wants that platform.