29 days, a 91k-line ERP, zero developers
Source: Dev.to
Introduction
One April morning, quarter to eight, Antoine leans into my office.
Seventy‑three years old, former director for three decades, retiring in September. He doesn’t sit down; he never sits down when he comes with a real question. Hand on the doorframe, seven words:
« Michel, combien vaut la maison aujourd’hui, dis‑moi ? » — Michel, what is the house worth today, tell me?
I hand him an answer that doesn’t mean anything. He nods.
« Évidemment. Bon, on avance. » — Right. Let’s move on.
He walks out. The question stays.
The house
The house he’s talking about is L’Atelier Palissy, an independent fine‑arts school founded twenty‑five years ago around a demanding ceramics practice. Today it teaches drawing, painting, modelling, sculpture and life‑drawing to several hundred students—beginners and advanced alike—across six sites in Paris and the greater Paris area.
- Antoine spent three decades there; I took over the directorship recently.
- His question contains every other question: what are we passing on? What is it worth? How do we say it without telling ourselves stories?
Why I built a tool
The only way I found to answer it without lying was to code the tool that calculates it. This series explains why that question kept me awake for four weeks, and what you learn to file in a homemade ERP when you don’t know how to answer it cleanly.
- We’ve been running for twenty years on Excel, Sage and ring binders.
- A culture of proximity that relies on people more than processes, a Qualiopi certification (France’s national quality label for professional training), and an audience ranging from career‑change employees to retirees picking up clay modelling at seventy.
- Art historian by training, not a developer, in my forties, I operate in flashes — ADHD assumed — which is why a decision flips in forty‑eight hours and a project holds together through entire nights. The rest of the week, I let things drift. It’s a rhythm, not a method.
The ERP fiasco
- Monday – In a Paris meeting room I signed with a well‑known European ERP vendor for a five‑figure package (annual licences, tacit renewal). Everyone was smiling.
- Three days later – Reading the contract again, I hit the technical annex whose custom‑development billing grid is per line of code produced.
- I called the vendor. The account manager explained, polite and circular, that it’s the same everywhere. I hung up having understood, belatedly, that the metric produces the code as much as it measures it, and that we had just bought an object whose price grew with its own proliferation.
The DIY solution
| Day | Action |
|---|---|
| Saturday | Opened Claude Code for the first time. |
| Sunday evening | Built a Supabase schema, three Next.js routes, an authentication page. Nothing spectacular — just proof that the alternative fit into a weekend. |
| Monday morning (eight days after signing) | Something is running. The commercial package is in refund negotiation, still open. |
| Twenty‑nine days later | The system — which I called Rembrandt out of taste and as a joke — counts 91 000 lines of TypeScript, 377 commits over the last four weeks, 16 written architecture decisions, 54 sessions documented in memory. |
I’m not listing these numbers to impress; the series will demonstrate that they don’t say what they look like they’re saying, and that it takes some instrumentation to turn them into an asset rather than a trophy count.
Three reasons I’m putting this down now (so I won’t have to come back to them)
-
Make the mistakes useful
I coded a valuation dashboard that lied to me for three weeks, deployed a Sentry cron that was timing out in silence, mistook a data‑model divergence for a reluctant colleague. None of that appears in the posts people usually publish to show they know what they’re doing. I’d rather write the other half. -
Learn with the DEV.to community, not sell a method
I have nothing to sell — no paid workshop, no coaching. Anything I’d sell would be a bad shortcut, because the path is unreadable without the lived experience that goes with it. Comments that suggest a better angle will be read, sometimes integrated into the next article. -
A clarification that matters
- The first names are fictional, the school is fictional, the scenes may be recomposed.
- Antoine, Françoise, Gaspard exist in their substance, not in their civil status.
- A commercial negotiation is underway with the vendor, and some scenes involve people I don’t have to expose.
- Everything is true in the sense that it happened; nothing is the literal transcript of an exchange.
- Anyone working with an LLM in production knows you don’t prove anything down to the detail, and that’s precisely why the method has to be documented.
The series structure
Four arcs share twenty‑four articles:
- Valuation – How to measure what a custom technical object is worth at a time when writing a line of code costs almost nothing.
- Publishable architecture decisions – Sixteen in four weeks, three of which stay private for sensitive fiscal reasons.
- Incidents and fixes lived in production – Short‑format, bite‑size stories.
- Meta: the Claude Code workflow –
CLAUDE.md,MEMORY.md, ADRs, hooks, what I eventually understood about a fast apprentice that needs framing.
Reading order suggestion
- If you’re starting out, read #3 first – the pivot on why the LOC × day‑rate model is broken in the AI era.
- Then #7 – the business model “one subscription = N seats”, which shows the flesh.
- The rest can be read in any order you like.
The cast
-
Françoise keeps the books, the house, the sticky notes and the ring binder. Twenty years with us, loud energy, short verdicts, signature line « elle va pas nous emmerder, celle‑là » — “she’d better not give us trouble, that one”. She oscillates in front of Rembrandt, and she’s right to oscillate.
-
Antoine is the former director, seventy‑three, retiring in September. A father figure for the house, he rarely asks the same question twice.
« Évidemment. » — Obviously.
« Vous êtes sûr ? » — Are you sure?
« Bon, on avance. » — Right, let’s move on.
-
Gaspard – the long‑time IT contractor. His role is fading in this series, gradually taken over by Claude Code and me. He’s correct, technical, and sparing with words. He’s the silent drama running underneath every post.
-
Hélène, Catherine, Étienne (the accountant) – will appear when a scene calls for them.
Call for feedback
What interests me in this publication is the angle I haven’t seen before.
When you picture a non‑developer director coding his own ERP in four weeks with Claude Code, which question would you want addressed head‑on that never is? The one that would make you stay.
Say it in the comments. I’ll read, I’ll remember, and I’ll slip it into a later article if it holds the argument better than the article itself.
Code & samples
The articles that contain code open their snippets in a companion repository (MIT license, pseudonymized like everything else):
- Repository:
- Inside you’ll find:
- Valuation extracts
- Contact × course modeling
- The four‑layer
CLAUDE.mdtemplate
Next up
Why I coded a module that tells me what Rembrandt is worth.