PROBLEM
Updated on
A SPREADSHEET AND A CHATNO LONGER HOLDYOUR PROCESS
It’s the priciest thing I offer. I check first that you don’t need it.
THE ANSWER
A process with users, roles and states outgrows a shared spreadsheet fast. I build an internal web app that replaces it, with a written perimeter. Nobody has to ask whose turn it is or which version counts. An internal tool costs €5,000–€35,000, an MVP €9,000–€70,000, VAT excluded. The price comes after a definition sprint.

AI-generated image
IN SHORT
Internal tool: €5,000–€35,000, VAT excluded.
Product MVP: €9,000–€70,000.
The price comes after the definition sprint.
No process owner, no start.
THE COST
WHAT FILES AND CHAT COST YOU
Nobody knows the real status
The status sits in a column somebody updates from memory. Today’s truth lives in a chat, not the sheet. Finding out means asking, and asking spends two people’s time.
One absence stops the work
The exceptions are written down nowhere. They live in the head of whoever has run it for years. Every absence becomes a small outage.
No permissions, no trail
Whoever holds the link sees everything and can change anything. When a client disputes a step, there’s no history to read. There are recollections, an email chain and a wasted afternoon.
Growing means more chasing
Twice the jobs take twice the work. On top comes the time spent coordinating everyone doing it. So the next hire earns less than it looked like on paper.
BEFORE BUILDING
WHEN YOU DON’T NEED AN APP
An internal app is the priciest answer I have. Before I propose one, I check that something smaller won’t do. When it will, I say so: I want the project that works, not the big one.
If it’s just copy-paste
Then it’s an automation, not an app. The sources get connected and the manual steps disappear. Range €1,500–€10,000, a fraction of the app.
If it’s just reading data
Then it’s a dashboard, not an app. If the process works, only the overview is missing. Range €2,000–€14,000.
If a product already exists
Buying costs less than building. I say so even when it means no work for me. I build only when your process won’t fit a standard.
If the process keeps shifting
An app fixes a process as it stands. Doing that to one with no settled shape means paying twice. It starts with a definition sprint.
If nobody owns the outcome
It takes one person who can decide and answer for it. Without one, the project turns into contradictory requests. Then I don’t start, and I say so upfront.
HOW IT GETS BUILT
HOW AN INTERNAL TOOL COMES ABOUT
The order is compulsory. Each step uses the answer from the one before. The first step is why I can give you a figure that holds up.
A definition sprint first
I look at the process as it runs and name the users, roles and states. I list the data sources, the risks and the perimeter of version one. Range €800–€2,000: the quote comes from here.
I settle the states
Each job carries one state, valid everywhere it appears. Every move between states needs a condition and someone responsible. Get this wrong, and the rest is rework.
I build the priority path
One path only, the one that has to work for the rest to make sense. It gets real authentication and real permissions. The other functions wait on a separate list.
Real people test it
The people who run the process work inside it, exceptions included. It has to stand up to an ordinary week, not just a demo. What surfaces here is what no document could predict.
I hand over everything
The system runs, and the accounts are in your name. The data export and a proper handover come with it. Whatever stayed out is written down, with an estimate.

AI-generated image
THE HANDOVER
WHAT YOU END UP HOLDING
The first version, already live
The main screens and the priority path, exceptions included. It runs on real work, not on test data.
Users, roles and permissions
Who sees what and who can change what, declared rather than assumed. A trace shows who changed a record, and when.
The database, your data
The history stays yours. It exports without anyone’s permission.
Readable code, your accounts
Repository, hosting and services in your name, with few declared dependencies. Another developer has to be able to carry on without ringing me.
The perimeter and the docs
An ordered list of what didn’t make it in, with the reason. Plus how the system is run, written for whoever comes next.
THE CONDITIONS
WHAT IT COSTS, WHAT COMES FIRST
- Quoted by invitation
- Not something off a public list. The definition sprint is required before any quote. An exception exists for a perimeter already documented and tightly drawn.
- Definition sprint
- €800–€2,000, VAT excluded. Deductible from the next project when we agree that in the proposal.
- Internal tool
- €5,000–€8,000 essential, €8,000–€18,000 standard, €18,000–€35,000 advanced. VAT excluded.
- Product MVP
- €9,000–€15,000 essential, €15,000–€35,000 standard, €35,000–€70,000 advanced. VAT excluded.
- Timeline
- 6–16 weeks after the perimeter is defined.
- What I need from you
- One person who can decide about the process. Two or three people try version one on real work. Plus a willingness to leave something out of round one.
- After handover
- Monthly support runs €500–€2,000. It’s optional, and priced on the system I hand over.
A shapeless process doesn’t become an app: it becomes an endless quote.
QUESTIONS
- Why won’t you quote me straight away?
- Because on an app, any figure given before the perimeter is a bet. One of us loses it. The definition sprint costs €800–€2,000 and exists for exactly that: afterwards, the number comes with a list of what it covers.
- Wouldn’t off-the-shelf software be cheaper?
- Often yes, and I say so even when it means no project. Building is worth it only when the process is truly yours. Otherwise bending it to a standard costs more than the software: in hours, in errors, or in worse service.
- Have you built anything like this?
- Yes. Fondazione Stelion is a public platform I run every day. Every project carries one state, and the transparency pages set out resources and spending. I designed and built it myself. Vireta, a second project, is under way with no public address yet.
- Can we start with something small?
- It’s the only way I start. Version one covers the priority path completely, not every feature halfway. The rest sits on an ordered list. Each item goes in when you decide, with its own estimate.
- Who owns the code once we’re done?
- Yours. Repository, hosting and services stay in your name. The code is readable and the dependencies are few and declared. If someone else carries the work on later, they need to be able to, without ringing me: that’s a delivery criterion, not a courtesy.
Tell me if your process has users, roles and states. Say how it runs today and who runs it. I’ll tell you whether it needs an app or far less.