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
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.
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.
City-by-city occupancy tax handling, tied to actual reservations across every channel. Read the financials, file the returns, remit on time.
Damage waivers, host insurance, security-deposit replacements — priced on real occupancy and risk data, sold inside the booking flow.
Yield analytics for ski-town portfolios. Pricing for surf rentals. The kind of focused product a generic dashboard never serves well.
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
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.
Each of your customers gets their own Repull workspace. Scoped API keys, scoped data, scoped webhooks. Multi-tenancy is the default, not an afterthought.
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.
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.
Reservations, messages, listings, pricing changes — all events stream into your queue. Your product reacts to actual operator activity, not polling.
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){
"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-productThe pattern
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.
Free up to three listings, no card. Build the prototype this weekend.