Contact Book a call

Systems

Moving off Retool: what it actually involves

What we learned moving three operations systems from Retool to custom code: the data model, screens, workflows and cut-over, and the signs it is time to move.

Cover for “Moving off Retool: what it actually involves”, with the line: A move has four parts. The data model is the one that decides how hard the rest is.
A move has four parts. The data model is the one that decides how hard the rest is. Image: SBD.

Retool is one of the fastest ways to put an operations tool in front of a team. We have built on it for years and still recommend it. We have also moved three systems off it in 2026: a building materials order system, a marketplace price tracker and a factory operations tool. None of the moves happened because Retool failed. They happened because the systems had become the business, and the business had outgrown how they were built.

The short answer

Moving off Retool is mostly a data and logic problem, not a screens problem. If the data already lives in a database you own, the move is a rebuild of screens and workflows plus a careful cut-over. If the data lives in Retool's own database and the rules live in dozens of queries, the first and largest job is pulling both out into a schema and code you can test.

The signs it was time

In each case the trigger was not one dramatic failure but a pile of small ones:

  • Logic nobody could review. Business rules lived across many queries and JavaScript transformers. Changing a price rule meant finding every place it was repeated.
  • Workflows that had quietly stopped. In the order system, the workflow that turned website enquiries into records had been switched off and, when it did run, filled every quantity with 100 and placeholder prices, with nothing set up to alert anyone.
  • Secrets in the wrong place. In two of the three systems, API keys or a proxy password were written into queries or scripts in plain text.
  • A spreadsheet still in the middle. The price tracker read its product master from a Google Sheet, so the source of truth was a file anyone could edit.
  • Outside users and more staff. As more people needed access, per-user cost and permission rules both became harder.

If three of those sound familiar, it is worth costing a move. If one does, fix that one thing in Retool.

Part 1: the data model

This is where most of the time goes, and where the move is won or lost.

We start by listing every table, column and relationship the Retool app actually uses, including the ones only a query knows about. Then we write a Postgres schema on Supabase that says out loud what was implicit: keys, foreign keys, required fields, allowed values. The order system’s schema is written as one SQL file that creates every table and turns on row level security on first connection, so the database refuses access by default rather than by convention.

Two habits make the rest of the move safe:

  • Copy, do not cut. A one-way sync copies the Retool database into Supabase on demand, so the new system can be built and tested against real shapes of data while the old one keeps running.
  • Seed a demo database. Both the order system and the price tracker run locally with an embedded Postgres and realistic sample data when no database is configured. Engineers and reviewers never need production data to work on them.

Part 2: the screens

Screens are the visible part and the easiest to estimate, because Retool has already shown what the team needs. We rebuild them as a React app, page for page at first, then fix what the team has worked around for months: bulk edits, imports with a preview step, a command palette, split views for people who live in the tool all day.

The rule we hold to is parity before improvement. Every task the team did in Retool must be possible on day one in the new system, written as a checklist and ticked off with the people who do it.

Part 3: the workflows

Retool workflows become scheduled jobs and API routes. In the price tracker, eight Retool workflows became a queue: runs split into batches, each batch locked while it is processed, retried on failure, and recorded in a run history the team can see. Breach reports that someone used to assemble are generated from the results.

Each job gets the same treatment: idempotent writes so a retry never duplicates a record, an alert when a job fails or goes quiet, and secrets moved into the host’s environment settings, rotated as part of the move.

Part 4: the cut-over

We keep the old system read-only rather than deleting it, run the final data sync, switch users over in one step, and watch the first full working days closely. An audit log on every table, with a restore button, means a mistake in week one is an undo, not an incident.

What it does not cost

It does not cost the data, if the data is in a database you own. It does not cost the team’s habits, if parity comes first. And it does not have to be all at once: the order system kept its accounting integration and WhatsApp messages working throughout, because those were rebuilt and tested against the copied data before the switch.

When to stay on Retool

Stay if a small team uses the tool, the logic is simple, nobody outside the company logs in, and the per-user bill is comfortably below what an engineer would cost to maintain code. Keep your data in a database you own, keep secrets out of queries, and alert on every workflow. Then a move, if it ever comes, is a rebuild of screens rather than an excavation.

Read more: Retool or custom code for your internal tool?, the marketplace price tracker and the building materials order system.

  • Retool
  • Supabase
  • Migration
  • Internal tools

Keep reading

Cover for “Your Lovable app is probably public”, with the line: The anon key is in the browser. Without row-level security it is a master key.

Security

Your Lovable app is probably public

Over 170 Lovable-built apps had open databases in one disclosure. How the leak works, the three named breaches of 2026, and the twenty-minute check to run.

Cover for “A forward deployed engineer’s first 30 days”, with the line: Observe, rank, build, roll out. Then repeat.

Method

A forward deployed engineer’s first 30 days

Week by week: how an SBD forward deployed engineer observes the work, ranks what to change with leadership, ships the first builds and gets them used.

Cover for “What an SBD build passes before go-live”, with the line: Four gates before real users: security, tests, handover and monitoring.

Method

What an SBD build passes before go-live

The standards, security checks, tests and handover documents an SBD build goes through before it reaches real users, and why each one of them exists.

For teams that tried AI and nothing stuck

Get the hours back.

About 95% of AI pilots never reach the profit line. Ours start with the work your team still does by hand, and end when it is gone.

See how we work
A team of six gathered around one screen in an open-plan office
A discovery call with the people who own the process.

Cookie preferences

Choose what this site may use on your device. You can change this at any time from “Cookie settings” in the footer.

Strictly necessary

Keep the site working and remember the choices you make here. These cannot be switched off, and none of them track you.

Always on
What this includes (4)
NameProvider PurposeDuration
sbd-consentThis site Remembers your cookie choices12 months
Vercel Web AnalyticsVercel Inc. Counts page views in aggregate. Sets no cookie and stores nothing on your deviceNone
ticker-dismissed, sbd-note-offThis site Remembers that you closed a notice or language tipUntil the tab closes
sbd-voice-resume, sbd-voice-prefillThis site Carries a voice conversation across pages, only if you start oneUntil the tab closes

Analytics

Tell us which pages are read and where visitors leave, so we can improve them. IP addresses are anonymised and nothing is used for advertising.

What this includes (2)
NameProvider PurposeDuration
_gaGoogle Analytics (Google LLC) Distinguishes visitors with a random ID13 months
_ga_FPXDMQPRV1Google Analytics (Google LLC) Keeps the session state for this site13 months

Functional

Embedded services that set their own cookies. Without them the site still works; you get a link to open the service instead.

What this includes (1)
NameProvider PurposeDuration
Booking calendarCal.com Inc. Shows live availability and books the call on the booking pageSet by Cal.com

Advertising

Not used. This site has no advertising, retargeting or social media tracking, and we never sell data.

Not used

Questions about your data: hello@smallbaydigital.com