kaedax
← work

A two-sided marketplace for specialist healthcare equipment rental — supplier inventory, hospital procurement, and a matching engine launched in a single cycle.

ATRIUM connects suppliers of specialist medical equipment (think: surgical robots, rare imaging gear) with hospitals that need short-term access. Existing procurement processes take weeks; ATRIUM aimed for the same booking in hours. The hard part was trust on both sides.

stack → Next.js 15 Postgres + RLS Stripe Connect Twilio Verify DocuSign Sentry Cloudflare R2
◀ SUPPLY · 6 suppliers DA VINCI X · surg robot rotterdam · KYB ✓ MR 3T · imaging ghent · KYB ✓ C-ARM v8 · fluoro berlin · KYB ✓ PET-CT · oncology amsterdam · KYB ✓ ENDO TOWER rotterdam · KYB ✓ USG-HF · cardio antwerp · KYB ✓ ▷ MATCHING ENGINE · 5 axes PRICE: 0.30 AVAILABILITY: 0.25 DISTANCE: 0.15 CERT FIT: 0.20 HISTORY: 0.10 DEMAND · 14 hospitals ▶ AMC ROTTERDAM · oncology verified · institutional ANTWERP UNIV HOSP · surg verified · institutional BERLIN CHARITÉ · imaging verified · institutional GASTHUISBERG · cardio verified · institutional GHENT UNIV · endo verified · institutional AMSTERDAM UMC · oncology verified · institutional ▷ CASE · ATRIUM · BLUEPRINT MARKETPLACE · TWO-SIDED
SCHEMATIC An abstract view of the ATRIUM engagement — not a literal product screenshot. Built to communicate engineering shape, not surface design.

outcomes

01

T+710h

First booking closed

02

3

Bookings in first 48h post-launch

03

5-axis

Matching engine signed off

04

0

Disputes in first 30 days

[ §01 ] the cycle

How 720 hours
actually ran.

  1. Day 01 — 04

    Two specs, one cycle

    Marketplaces fail when one side is designed without the other in view. scope.agent drafted parallel specs for the supplier side and the hospital side, with the matching engine as the contract between them. The matching contract was signed before any UI was sketched.

    supplier.spec hospital.spec matching contract
  2. Day 05 — 17

    Both surfaces + matching engine

    build.agent shipped supplier inventory + listing flows, hospital search + booking flows, and the matching engine in tandem. Stripe Connect for split payments. DocuSign for the rental agreement that closes each match.

    both surfaces live matching engine stripe connect
  3. Day 18 — 25

    Trust + verification

    Hospital verification (institutional email + Twilio Verify + manual review by a kaedax operator for the first 30 days). Supplier KYB. Insurance certificate upload. Dispute workflow with clear escalation. The unsexy week that decides whether a marketplace dies in month two.

    hospital KYB supplier KYB dispute workflow
  4. Day 26 — 30

    Closed launch

    Cold start managed: 6 suppliers manually onboarded with hand-curated inventory, 14 hospitals invited from the founder's network. First three bookings happened on day 28; founder personally sat in on each to monitor friction.

    6 suppliers live 14 hospitals live 3 bookings day 1

[ §02 ] agent log · selected

What the loop
looked like.

cycle-log · atrium
archived
T+120h [INFO] scope.agent two specs · matching contract drafted before UI work
T+240h [ >> ] build.agent matching engine: 5 axes · price, availability, distance, certifications, history
T+360h [WARN] qa.agent edge: hospital cancellation within 24h of booking · 0 supplier protection
T+480h [ OK ] build.agent added 24h cancellation policy + supplier rebooking credit
T+600h [ OK ] deploy.agent soft launch · 6 suppliers, 14 hospitals, manual review queue armed
T+720h [ OK ] monitor.agent first 3 bookings closed · 0 disputes · founder-attended all 3

[ §03 ] notes from the cycle

ATRIUM is the kind of build founders are warned about. Marketplaces have famously bad shipping odds: the two-sided cold start, the trust problem, the dispute workflow that nobody wants to design. Most agencies decline this work. We took it because the founder had already solved the supply side manually — six suppliers were ready, what they needed was the tooling.

Why a matching contract precedes the UI

A marketplace’s UX is downstream of its matching contract. If the matching engine scores on price first, the UI surfaces price; if it scores on certifications first, the UI surfaces those; if it scores on history, the UI is built around relationship continuity. We drafted the matching contract before the surface so the surface would be coherent.

The contract had five axes — price, availability, distance, certifications, history — and explicit weights signed off by the founder. The matching results are explainable: every match shows the hospital exactly why this supplier was the top match. Trust on both sides comes from explainability, not from a marketing pitch.

What “trust” actually means in this build

  • Supplier KYB — business verification, insurance certificate on file, institutional bank account for payouts.
  • Hospital verification — institutional email check + Twilio Verify + manual operator review for the first 30 days (kaedax engineers ran that queue during the on-call window).
  • Dispute workflow — clear escalation, 7-day SLA, evidence trail attached to each case. Disputes don’t go to a generic Zendesk inbox; they go to a dedicated review queue.

We say “boring” a lot when we describe what we build. This is the boring part of the ATRIUM build, and it is the part that decides whether the marketplace exists in six months.

The cold-start move

Six suppliers were manually onboarded by the kaedax + ATRIUM team with hand-curated inventory listings. Fourteen hospitals were invited from the founder’s existing network. The first three bookings were watched by the founder personally and instrumented by monitor.agent for any friction.

Marketplaces don’t bootstrap with code. They bootstrap with one operator paying very close attention to the first ten transactions. We built the tooling and stood next to the founder for the first ten.

from the founder

"We had been told marketplaces take a year. Kaedax made me believe the social spec is the marketplace — the matching contract, the trust workflow, the dispute path. Once those were right, the code took thirty days."

— Founder · ATRIUM