How it works

Four decisions the whole product is built on

None of these is a feature bolted on afterwards. Each one changes the shape of the data, so each was settled before the first screen was built.

The shape of a deal

Two tracks, one closing, and a line that keeps going

This is the whole product in one diagram: parallel professional timelines converging at closing, then continuing into a record that outlives the transaction.

Agent trackLender trackRatifiedInspectionWalkthroughApplicationUnderwritingCD IssuedClear to CloseClosingNekst / CloseSimple stop herePost-Close HubKept, not archived
Architecture

The four decisions, in detail

01

Two timelines, never blended

A deal has an agent-side lifecycle (ratified → inspection → walkthrough → closing) and a lender-side one (application → underwriting → CD issued → clear to close). They move at different speeds and are owned by different people, so they're stored as separate tracks. Each professional edits their own and sees the other's rendered but locked — nobody can overwrite a milestone that isn't theirs to move.

Buyer-side deals get both tracks. Listing-side and rental deals get one, because there's no loan to track.

02

Sensitivity is decided by document type

Every document resolves to HOST, LINK-OUT, or NEVER TOUCH from what the document is — not from who is uploading it or which folder they picked. That decision runs in one function at the upload layer, which both the manual upload form and the email-intake pipeline call. There is no admin override, because the tier that matters most is the one that exists to prevent wire fraud.

Same check, both ingestion paths — a file emailed in can't take a route around the rule a file dragged in has to obey.

03

Delivered inside the agent's own site

The portal is a multi-tenant backend with delivery layered on top, not a destination clients are asked to remember. An agent drops a snippet onto their existing site and clients sign in from a page they already trust. The most-cited complaint about competing tools is that clients get lost on the way to a separate login — this removes the trip.

Clients sign in by magic link, so there's no password to forget between one transaction and the next.

04

Two-sided, free-rider pricing

Whoever creates a deal owns and pays for it. The counterpart they invite — a lender invited by an agent, or an agent invited by a lender — rides free on that one deal, and converts the moment they want to originate deals of their own. Every paid deal seeds the other side of the market, so growth comes deal by deal rather than from a sales team.

Enforced in the data model: the deal's owner determines which subscription pays for it.

What it runs on

Commodity infrastructure bought, differentiated logic built

Auth, payments, storage, and delivery are solved problems — those get bought. The hours go into the deal-scoped data model, the sensitivity tiering, and the intake pipeline, which is where the actual advantage is.

Postgres + Prisma

Relational deal model — participants, milestones, documents, notes.

Supabase Auth

Magic link for clients, email + password for professionals.

Inbound email intake

A per-deal forwarding address auto-files attachments.

Scheduled jobs

Daily cron drives post-close reminders.

Next: what each role actually sees

The same deal record renders differently for a client, an agent, and a lender — including sections that never reach one of them at all.

For each role