Migration plan · Internal ops

Price Beacon: Lovable → Cloudflare

A working plan to get Price Beacon off Lovable's shared infrastructure and onto BRW-controlled hosting — without needing a developer on day one.

Owner: Michelle · BRW Operations App: Price Beacon (supplier price tracker) Prepared: 9 Sep 2026

The catch

Two goals pulling in different directions

You want to fully own the stack, but without a developer and staying low-code. Those don't fully reconcile in one step — a genuine "no Lovable, no Supabase, all-Cloudflare" rebuild means rewriting the database schema and the AI quote-scanning function as Cloudflare Workers code, which is real developer work.

The resolution below: two phases you can do yourself right now, low-code, that fix the actual fault (the lockouts) and move hosting to Cloudflare as asked — plus an optional Phase 3 to go fully native later, once you have developer support. You end up owning the infrastructure either way; Phase 3 just decides who owns the database engine underneath it.

Why it keeps locking out

Two different things can pause a hosted database, and Price Beacon has hit the more annoying one.

BackendPauses when…Resume
Lovable Cloud (current) Lovable workspace credit balance hits zero — a billing trigger, not a usage one. Blocked until credits are topped up or the plan is upgraded. This is what's caused the two lockouts so far.
Self-managed Supabase (Phase 1) 7 straight days with no activity at all on the free tier. One click in the Supabase dashboard, data untouched. A tool the team opens daily is unlikely to ever trip this.

Where each phase lands you

LayerTodayAfter Phase 1 + 2Phase 3 (optional, later)
Hosting Lovable preview infra Cloudflare Pages Cloudflare Pages
Database Lovable Cloud (Supabase, Lovable-billed) Supabase, BRW-owned account Cloudflare D1, or Supabase via Hyperdrive
Quote-scanning function Supabase Edge Function Supabase Edge Function (unchanged) Rewritten as a Cloudflare Worker
Day-to-day editing Lovable AI chat Lovable AI chat (unchanged) Needs a developer
Who's billed Lovable Supabase + Cloudflare, both BRW's own accounts Cloudflare only

The plan

Phase 1 · Do this first
Stop the lockouts — own the database

Moves the data off Lovable's credit-based hosting onto a Supabase project BRW controls directly. Entirely inside Lovable's normal interface — no code.

0 / 9
  1. 1.1
  2. 1.2
  3. 1.3
  4. 1.4
  5. 1.5
  6. 1.6
  7. 1.7
  8. 1.8
  9. 1.9
Phase 2 · Do this next
Move hosting to Cloudflare Pages

Puts the app itself on Cloudflare while you keep editing it in Lovable exactly as before — Lovable's GitHub sync and Cloudflare's Git integration do the handoff.

0 / 8
  1. 2.1
  2. 2.2
  3. 2.3
  4. 2.4
  5. 2.5
  6. 2.6
  7. 2.7
  8. 2.8
Paste into Lovable's AI chat
This project needs to be deployable on Cloudflare Pages/Workers, in addition to Lovable's own hosting — keep everything else the same. Please add Cloudflare's official TanStack Start deployment support to this codebase: install and configure the @cloudflare/vite-plugin, add a wrangler.jsonc with compatibility_flags: ["nodejs_compat"] and the correct server entry point (@tanstack/react-start/server-entry), following https://developers.cloudflare.com/workers/framework-guides/web-apps/tanstack/. Then tell me exactly what build command and output directory to enter when I set this repo up in Cloudflare Pages. Don't change any existing features, data, or the Supabase connection — this should only add the ability to deploy to Cloudflare alongside what already works.
Phase 3 · Optional, later, needs a developer
Go fully Cloudflare-native

Only worth doing if you want zero dependency on Supabase or Lovable at all. This is a genuine rebuild, not a config change — hold off until there's developer time budgeted for it.

  • Rebuild the schema (materials, suppliers, units, equipment_types, price_entries, app_settings) in Cloudflare D1 — a SQLite database, so the Postgres schema needs re-modelling, not a straight copy.
  • Rewrite the Scan Quote AI-vision extraction as a Cloudflare Worker function, calling an AI vision API directly instead of a Supabase edge function.
  • Rebuild the access-code check (currently a SHA-256 hash in Supabase, checked via a session cookie) as Worker logic against D1.
  • Alternative that avoids re-modelling the data: keep the existing Postgres schema in Supabase, but connect to it from a Cloudflare Worker via Hyperdrive instead of D1 — same database, Cloudflare only handles the connection pooling. Less "fully native," considerably less rework.
  • From this point, changes to the app need to be written as Worker/Vite code directly — Lovable's AI builder is no longer the one making the changes.

Running cost, roughly

SetupHostingDatabaseNotes
Today $0 $0 Free, but the credit-pause risk is exactly what this plan fixes.
Phase 1 + 2 $0 $0–25/mo Cloudflare Pages free tier easily covers a team tool this size. Supabase Pro (~US$25/mo) is optional — only needed to remove inactivity pausing entirely.
Phase 3 ~$5/mo Usage-based Cloudflare's paid Workers plan plus D1/Hyperdrive usage — plus developer time, which will be the real cost here.

Before you touch anything

Rollback safety net

Don't cancel or downgrade the current Lovable Cloud project until Phase 1 has been tested end to end and run for at least a few days without issue. Keep the old *.lovable.app preview link working as a fallback until the Cloudflare Pages URL has proven itself with real daily use — password-checked login, a real search, and one real Scan Quote upload, not just a homepage load.