SUUR case study · design + engineering, end to end

An AI SDR named Juni.

TripLeads.AI is a lead-capture platform for travel businesses. Partners embed a concierge on their site; she greets every visitor, qualifies the trip in real time, and hands the sales team a booking-ready brief. SUUR built all of it: product, widget, dashboard, AI pipeline, and the site that sells it.

TripLeads.ai homepage — Turn website visitors into booked trips
TripLeads on mobile

01

The lead arrives at midnight. The form doesn't care.

A honeymooner lands on a resort site at 11pm, ready to plan a $20,000 trip. What she finds is a contact form and a promise to “get back within 2 business days.” She closes the tab. The resort never knows she existed.

Travel runs on inquiries, and the intake step is where they die. TripLeads sits exactly there: before the CRM, before the booking engine, at the moment of intent.

Juni answers on the first message.

The full TripLeads homepage, scrolling
tripleads.ai — the marketing site, aligned with the real dashboard UI
A TripLeads Inquiry Brief: triaged, structured, sales-ready

02

A brief, not a ping

What lands in the partner's inbox is not “you have a new lead.” It is the structured intake a sales team would build from a 20-minute discovery call: contact, trip details, planning status, concierge notes. Every lead is scored against the partner's own capacity facts and triaged as a good fit, needs review, or likely mismatch before a human reads it.

Guest counts get parsed from prose (“around 200”, “a few dozen”). Out-of-scope requests get a polite redirect in the visitor's own language before the model is even called.

  • 12trip types qualified
  • 8partner types served
  • 6languages, out of the box
  • 24/7never off shift

The build

Built like software, not a chatbot wrapper

Deterministic where it counts

The AI is boxed in by plain code: server-side guardrails, schema-shaped extraction, lead caps enforced in the database, and a resumable session model that survives a closed tab. Claude does the conversation; TypeScript does the truth.

Streaming, with a fallback

Replies stream token by token over NDJSON through Supabase edge functions, with a dual-mode path so older embeds still get whole responses. React, TypeScript, and Vercel on the front; Postgres, RLS, and edge functions behind.

Held to a number

788 tests across the platform, from the guest-count parser to billing guardrails that flag accounts riding a paid tier without a subscription. The kind of coverage that lets one team ship product and marketing from the same repo.

How TripLeads works, from the live site
TripLeads pricing tiers

03

A site that sells while everyone sleeps

The marketing site is prerendered to 76 static pages, including 19 programmatic trip-type-by-destination pages with unique content and structured data on every route. Copy targets terms with real search demand, not vanity phrases.

When a wedding-venues vertical was added, the same machinery shipped it in one account setting: chat intake, briefs, notifications, and dashboard all swap lifecycle without a second product.

The wedding venues vertical, scrolling
tripleads.ai/for/wedding-venues — one setting, a whole vertical

The demo

To sell it, we invented a hotel

A product like this demos best on a property that feels real. So we built one: Pandora, a 16th-century Tuscan estate that does not exist, with a brand, an eleven-page site, and Juni answering questions about rooms that were never built.

Read the Pandora case study →
Pandora — the invented Tuscan estate

Product, pipeline, and the site that sells it. One team of one.

  • 12 trip types, 6 languages
  • 8 partner types served
  • 76 prerendered pages
  • 788 tests across the platform
Start a Project