Vertical SaaS

Build your own product
on Repull.

Cleaning marketplaces, direct-booking site builders, tax tools, insurance products, niche analytics — every category in vacation rental still has room for a focused, well-built product. Repull is the substrate so you don't spend the first year on integrations.

What founders are building

Five products that don't exist yet — and should.

Cleaning ops marketplace

Match cleaners to properties on the same calendar feed the host already lives in. Reservations stream in via webhook, jobs go out, the cleaner gets paid through your platform.

Direct-booking site builder

A Stripe + Squarespace for short-term rental. Pull listings via Repull, render the site, accept direct bookings, push reservations back. The host owns the customer.

Tax & remittance

City-by-city occupancy tax handling, tied to actual reservations across every channel. Read the financials, file the returns, remit on time.

Insurance products

Damage waivers, host insurance, security-deposit replacements — priced on real occupancy and risk data, sold inside the booking flow.

Niche analytics

Yield analytics for ski-town portfolios. Pricing for surf rentals. The kind of focused product a generic dashboard never serves well.

White-label channel manager

Take the open-source repull-channel-manager template, brand it, sell it to property managers in your country. Repull is the API; the product is yours.

What you get out of the box

The substrate, end to end.

Repull is the data layer, the integration layer, and the connection-onboarding flow. You build the product on top — your branding, your billing, your category-specific UX.

  1. 1

    Workspace per customer

    Each of your customers gets their own Repull workspace. Scoped API keys, scoped data, scoped webhooks. Multi-tenancy is the default, not an afterthought.

  2. 2

    Connect picker, embedded or hosted

    Onboarding a new user is a redirect to connect.repull.dev (or an embedded iframe). They pick their PMS, OAuth in, you get a webhook back when they're live.

  3. 3

    Custom Schema Builder

    Your product has its own field names. Map them once with the X-Schema header and every Repull response comes back in your shape — no per-call transformation layer.

  4. 4

    Webhooks for everything

    Reservations, messages, listings, pricing changes — all events stream into your queue. Your product reacts to actual operator activity, not polling.

onboard-customer.ts · ts
import { Repull } from '@repull/sdk'

const repull = new Repull({ apiKey: process.env.REPULL_PLATFORM_KEY! })

// 1) Create a workspace for the new customer
const workspace = await repull.workspaces.create({
  name: customer.companyName,
  metadata: { yourUserId: customer.id },
})

// 2) Mint a Connect session for them
const session = await repull.connect.sessions.create({
  workspaceId: workspace.id,
  allowedChannels: ['airbnb', 'hostaway', 'guesty'],
  redirectUrl: 'https://your-product.com/onboarding/done',
  webhookUrl: 'https://your-product.com/webhooks/connect',
})

// 3) Send them to the picker
return redirect(session.url)
custom-schema.json · json
{
  "name": "your-product",
  "mappings": {
    "listing_id": "propertyId",
    "guest_name": "primaryGuest.firstName + ' ' + primaryGuest.lastName",
    "rate": "financials.breakdown.basePrice / nights"
  }
}

// Then on every request, set:
// X-Schema: your-product

The pattern

Pick a category. Skip the integrations. Ship.

Every successful vertical SaaS in another category — Toast in restaurants, Mindbody in fitness, ServiceTitan in trades — built on top of payment rails and integration layers that already existed. In vacation rental, those layers haven't existed. That's what Repull is. If you're building a focused product for short-term rental, you don't need to spend year one writing the same Airbnb adapter every other team has already written.

Start with the substrate.

Free up to three listings, no card. Build the prototype this weekend.