Real Estate

Six days to publish a listing, down to nine hours

An estate agency stopped waiting on a photographer and a copywriter to get a property live.

This is an illustrative composite. It is drawn from delivery patterns across our work rather than published as a named client reference, and the figures describe the pattern rather than one audited engagement. We would rather label it than imply a reference we cannot put you in touch with.

Industry
Real Estate
Size
40 staff
Platforms
CanvasForge

Context

A 40-staff agency with six branches listing around ninety properties a month. Getting a listing live meant a photographer visit, a copywriter, a portal upload and a manager's sign-off — four people, four queues.

The problem

Median time from instruction to live listing was six days. In a market where the first week matters most, the agency was spending most of that week not listed. The bottleneck moved around: some weeks the photographer, some weeks the copywriter, always something.

What we did

  1. 01Timed every stage over two months rather than asking where the delay was, because everyone named a different stage.
  2. 02Gave negotiators a guided capture flow on their phone that enforces the shot list the portals require.
  3. 03Generated the listing copy from the property record and the negotiator's own notes, with every claim traceable to a field.
  4. 04Produced the listing visuals and a short walkthrough reel through JJ Canvas under the agency's brand rules.
  5. 05Kept the manager's sign-off as a hard gate. Nothing publishes without a person, and the generated material is labelled as generated.

Architecture

Nothing here is a black box. You can read the architecture before you sign, and you own it after.

  1. 01CaptureA guided mobile flow enforcing the portal shot list, working offline in a basement or an empty house.
  2. 02RecordOne property record in Postgres; every generated claim traces to a field on it.
  3. 03GenerationJJ Canvas produces stills and a walkthrough reel under brand governance, labelled as generated.
  4. 04ApprovalManager sign-off is a hard gate. Nothing reaches a portal without a named human approval recorded.
  5. 05DistributionPortal push per channel, with failures retried and surfaced rather than silently dropped.

Results

The numbers the work closed against.

design target from instruction to live listing
9 hoursdesign target from instruction to live listing

Basis: Six days is the measured median across two months. Nine hours assumes the photographer and copywriter queues are removed rather than widened, leaving capture, generation and one approval gate.

listings the flow is designed to carry without added headcount
90/monthlistings the flow is designed to carry without added headcount

Basis: The agency's observed monthly volume. A capacity target, not a growth claim.

of generated assets labelled as generated and human-approved
100%of generated assets labelled as generated and human-approved

Basis: A structural constraint: approval is a hard gate and the label is rendered from the record, so an unlabelled or unapproved asset cannot reach a portal.

of stage timing gathered before anything is rebuilt
2 monthsof stage timing gathered before anything is rebuilt

Basis: A method commitment, not an outcome. It is what revealed that the constraint moved every fortnight.

Stack

  • Next.js
  • Supabase Postgres
  • Supabase Storage
  • JJ Canvas
  • Veo 3.1
  • Vercel

Does this look like your business?

Tell us what is slow and what it is costing. We will point you at the closest precedent we have and say plainly where yours would differ.

Scope it with us