Spreadsheet to web app

Turn a spreadsheet into a web application

A spreadsheet stops being the right tool at a specific point — when more than one person needs it at once, when its history starts to matter, or when another system needs to read it. This page is about what replacing one actually involves, and how to tell whether yours is there yet.

A free 30-minute call. If a spreadsheet is still the right tool for what you are doing, I will say so and tell you what I would change about it instead — that happens often, and finding out costs you nothing.

A spreadsheet replaced by a multi-user web portal, with automations and two-way system connections Three stages. Today: one spreadsheet file, usable by one person at a time, with macros that only run on one PC and no record of who changed what. What it becomes: a web portal with live figures, order records, several named users signed in at once, and an activity log showing who changed what and when. It is reachable from a phone with its own secure sign-in. It connects in both directions to accounting, CRM, and inventory or ERP. Underneath, automations run on the server on a schedule: when a row changes, totals recalculate and the owner is notified; at two in the morning data syncs to accounting and a file exports; when a value breaks a rule, the save is blocked before it lands. TODAY WHAT IT BECOMES CONNECTS BOTH WAYS ON ANY PHONE WHAT RUNS WITHOUT YOU ops_master_v3_FINAL.xlsx One person at a time Macros run on one PC No record of changes app.yourcompany.com/orders +4 OPEN 128 DUE TODAY 7 SYNCED 100% ORDERSTATUSVALUEOWNER SO-4471 SO-4472 SO-4473 Approved Review Approved $8,240Dana $1,905Marco $12,400Dana Marco updated SO-4472 · 2:14pm rules enforced Accounting invoices out, payments in CRM qualified leads in Inventory / ERP counts both directions Sign in yourcompany portal you@company.com Sign in A row changes Totals recalculate and the owner is notified 2:00am, every night Accounting syncs and the daily file exports itself A value breaks a rule The save is blocked before the bad number lands These run on the server, on a schedule. Nothing depends on the right person opening the right file on the right PC. Several users at once Phone or laptop Every change logged Rules on every field Automations on a schedule
The same records, with the four things a spreadsheet cannot give them: several people working at once, a history of who changed what, rules that hold on every field, and automations that run on a schedule whether or not anyone opens a file.

When you need this

  • Two people need the file at once, and the answer has become “tell me when you’re out of it.”
  • There is a master copy, and at least two other versions somebody still works from.
  • You can see what a row says today, but not who changed it or what it said last month.
  • The formulas that make it work are understood by exactly one person.
  • A macro does something important, and it only runs on one person’s machine.
  • You retype the same numbers into another system, because the two cannot talk to each other.
  • It works at a desk and not on a phone, which is where the work actually happens.
  • One mistyped cell quietly breaks a total that nobody catches until month end.
  • You have outgrown it, but every tool you have demoed wants you to work a different way.

What we do

  • A web portal with real logins, so several people work in it at once and there are no versions
  • Your columns become fields with rules, so a date cannot be text and a computed total cannot be typed over
  • Every change recorded with who made it and when — the history a spreadsheet throws away
  • Automations that run server-side on a schedule — nightly syncs, exports, alerts and recalculations that happen whether or not anyone opens a file
  • Role-based access enforced on the server, so people see the records that are theirs and nothing else
  • Reachable from a phone, a tablet or a laptop, with nothing to install
  • Two-way connections to the accounting, CRM or inventory system you already pay for
  • Your existing file imported, with duplicates genuinely resolved rather than highlighted
  • Export back to a spreadsheet on demand, because the data is yours and leaving should be easy
  • Scoped one piece at a time, so you can stop after the part that pays for itself
How this gets built now

What actually makes these projects fail

Not the build. It is the shadow copy. People keep a spreadsheet alongside the new system for a few weeks because it is faster for the one thing they do most, and then the two disagree and the spreadsheet wins because it is the one they trust. The fix is not training or a policy — it is finding the one task the spreadsheet is still better at and making the new system better at it before launch, which means watching someone actually work rather than collecting requirements. Any migration that skips this ends with two sources of truth and a quiet agreement to use the old one.

How I use AI coding agents on client work →
Examples from real engagements

What this looks like

A spreadsheet that ran a label factory

Production scheduling, inventory and label specs lived in one workbook that one person maintained and everyone else asked about. The replacement was not a rebuild of the whole thing at once — it was the single screen that cost the most hours, moved first, and then the next one. There is a long write-up of exactly how that went, linked below.

When the spreadsheet is the business

A nationwide recruiting firm's participant database is its core asset: tens of thousands of people matched on names, phones and emails that were never linked. The work was fuzzy matching where exact matching quietly missed people, and a review queue where a person makes the call on every uncertain match.

Custom internal tooling, in daily use

The portal that runs this business is the same shape as any spreadsheet replacement: multi-user access, records with history, file attachments, nightly scheduled jobs, dashboards on top. It is not a demo — invoices, time entries and client work go through it every day.

Enrichment before the pipeline

A real-estate investment firm's leads arrive raw. Each record is enriched against third-party data, deduped against existing contacts, classified by a property model specific to how they buy, and pushed into their CRM — so the pipeline starts with a qualified record rather than a name and a phone number.

Equipment records at volume

Hundreds of machinery listings a week, pulled from a half-dozen separate platforms, normalized to one schema and deduplicated into a single queryable set. Data arriving continuously from sources that disagree with each other is the problem a spreadsheet solves worst.

When I say keep the spreadsheet

If one person owns the file, the history does not matter, and nothing else needs to read it, a spreadsheet is a genuinely good tool and replacing it is waste. If the only real problem is that two systems disagree, that is a connector, not a rebuild. I would rather tell you that on the first call than six months in.

Common questions

Questions people ask before starting

Should I use Airtable, AppSheet or Glide instead?

Often, yes, and it is worth trying one first. If your data fits a handful of linked tables, your rules are simple enough to express in their formula language, and you are comfortable being on their pricing and their roadmap, a no-code tool will get you there faster and cheaper than I will. Custom starts winning when per-user pricing outgrows a build, when a rule cannot be expressed in their formula language, or when the thing has to talk to a system they do not connect to.

Can I still use Excel afterwards?

Yes. Export back to a spreadsheet is on demand and is part of every build, because the data is yours and leaving should be easy. In practice most people stop exporting within a few weeks, but the first month is a lot calmer when they know they can.

What happens to my formulas?

They become rules on the server rather than cells in a grid. That is the upgrade: a formula in a spreadsheet can be overwritten by anyone who types into the wrong cell, and nothing records that it happened. The same logic on the server cannot be typed over, runs the same way for everyone, and leaves a record when its inputs change.

What happens to our Excel macros and VBA?

They become scheduled jobs and event triggers on the server, which is an upgrade rather than a port. A macro runs when a particular person opens a particular file on a particular machine with macros enabled, and it fails quietly when any one of those is not true. The same logic running server-side fires on a clock or on an event — a row changing, a value breaking a rule, two in the morning arriving — with a record of every run and an alert when one fails. That last part is what people underestimate: not that the automation is cleverer, but that you find out when it did not work.

What does it cost to turn a spreadsheet into a web application?

I bill new work at $95 to $125 an hour, against $150 to $300 for a typical agency blended rate. The cost driver is rarely the screens; it is how much the existing data has to be cleaned and deduplicated before it can be trusted in a system that enforces rules. Work is scoped one piece at a time so you can stop after the part that pays for itself.

Do we have to move everything at once?

No, and you should not. Move the one screen that costs the most hours, use it, then move the next. A staged migration also surfaces the real risk early: people keep a shadow copy of the spreadsheet for the one task the new system is slower at, the two disagree, and the spreadsheet wins because it is the one they trust.

Got a spreadsheet that has outgrown itself?

Tell me what you're trying to fix — I'll reply the same day.

Want the reasoning rather than the pitch? The spreadsheet that ran a label factory.