All posts
by Dmitriy Ginzburg

Replacing the spreadsheet stack with one platform

Workbooks that feed other workbooks, shared through Dropbox. What it takes to put all of it in one system — and why that is now a week's work, not a six-month project.

Most companies do not run on their ERP. They run on a folder. Inside it are workbooks that reference other workbooks, a monthly file with the year stuck on the end of its name, and an export from some online system that one person re-pivots by hand every Monday. It is shared over Dropbox, or it is a Google Sheet whose edit access was handed out years ago and never taken back.

Nobody chose this, and it mostly works — which is why it survives. The cost turns up elsewhere: two people quoting different numbers in the same meeting, a formula that broke in March and was spotted in July, a new starter who cannot be given the file because the file also has payroll in it.

One copy, and a real access model

There is one copy. A figure entered in production is already right in costing, because it is the same row read from a different angle rather than a lookup into a file that may not be current. Nobody sends a version and nobody merges two.

The other thing spreadsheets cannot do at all is permission. Access is set per area and per person — none, read, or edit — and enforced by policies on the tables rather than by hiding a menu, so the same rule applies to a page, an export, an API call and an AI client alike. A new starter gets exactly their sections on their first morning, and someone who leaves is removed from everything at once.

Meeting the data where it is

Nobody wants a big-bang migration, so the platform meets the spreadsheets instead of banning them. Paste a block of cells from Excel and it lands as rows. Import the workbook you already have. Export back to Excel and PDF, because the outside world still wants an attachment. Systems that are genuinely the source of record — accounting, e-commerce, a rates feed — keep their job and get pulled from on a schedule. You move one area at a time.

Two ways in

Most of the time people work in the dashboard. But the platform also publishes an MCP server, which means it can be added as a connector in ChatGPT on the plans that support them. That is a second door into the same building, not a copy of the data in another tool. Someone who cannot see payroll on a page cannot see it in a chat either.

"What did we produce last week against plan?" then answers from the database while you are on the way to the meeting. And because the connection writes as well as reads, you can hand it work rather than only questions — log the batch, move the job, draft the order.

This is one shape of agentic work, not the shape. A chat client over a connector is the cheapest to add and the most flexible. An assistant built into the app gives that up in exchange for knowing which screen you are on. Unattended scheduled agents are the quiet third option and often the most valuable: something that checks stock cover every morning and messages you only when a human is needed. The field moves quickly enough that the sensible bet is a thin AI layer over a solid data layer.

How it is built

Supabase

Supabase

Postgres, authentication and file storage in one managed service. The access grid is row-level security on the tables themselves, which is why the rules hold no matter what is asking.

Next.js

Next.js

The application: tables that stay quick over tens of thousands of rows, charts and year-on-year reports, drag-and-drop planning on a Gantt, Excel in and out, PDF packs generated in the browser, costing models you can re-run against different assumptions, meeting recordings transcribed and summarised, and an email sent in one click from the record it belongs to.

Model Context Protocol

Model Context Protocol

An MCP server in front of the same database. Sign-in goes through Supabase's OAuth server and a consent screen, so every query runs as the person who approved it, under their row-level permissions — no shared key, no service-role access. MCP being an open protocol, one server serves ChatGPT, Claude, Cursor or a scheduled agent alike.

What it costs now

This is the part that has genuinely changed. Software like this used to be a six-month project on a five-figure budget, which is exactly why so many companies still run on the folder — the spreadsheets were never better, they were the only thing that fit. With agent-assisted development the same scope is a week or two of concentrated work.

The bottleneck moves off the code entirely. What is left is deciding what the entities actually are and getting years of inconsistent history into them, which still takes someone who understands the business as well as the database. That part has not got any cheaper, and it is the part that decides whether the result is worth opening.

The system itself belongs to the client, so rwc-pro.com is only a short public overview of the shape of it; the built platform goes a good deal further.