Airbnb, Booking.com, VRBO, Plumguide. Quarantasei piattaforme PMS. Più il canale diretto. Repull è channel manager e aggregatore di PMS in uno — e il template è interamente open source.
Il problema
Quelli storici ti impongono il loro schema, la loro UI e il loro rapporto di fatturazione con i tuoi utenti. Repull lo capovolge — il tuo schema, la tua UI, la tua fatturazione. Noi ci occupiamo solo degli adapter.
Pubblica annunci, foto, calendari, tariffe e messaggi su Airbnb, Booking.com, VRBO e Plumguide attraverso un solo schema. Ventisei endpoint Airbnb e undici endpoint Booking, pronti all'uso.
Hostaway, Guesty, Cloudbeds, Mews, OwnerRez — ti colleghi una volta e leggi sempre la stessa forma, qualunque sia la piattaforma a monte. Anche gli adapter PMS sono open source.
Repull normalizza tutto su uno schema di default sensato. Se il tuo è diverso, lo definisci una volta col Custom Schema Builder, imposti l'header X-Schema e ogni risposta torna nei nomi dei tuoi campi.
Esempio pratico
repull-channel-manager è l'app Next.js completa — calendario, prenotazioni, connessioni, messaggistica, recensioni — sopra l'API Repull. Le funzionalità AI all'interno girano su Vanio AI. Cloni, lo punti al tuo workspace Repull e hai un channel manager funzionante oggi.
Un git clone, un npm install e un file .env con la tua API key Repull. Il deploy su Vercel è un click dopo.
Ogni tuo cliente ha il suo workspace Repull — API key con scope, dati con scope. La tua app è il livello multi-tenant sopra.
Griglia del calendario, drawer della prenotazione, inbox dei messaggi, flusso di approvazione delle recensioni — ogni schermata è tua da estendere. Il data layer resta dov'è; la UI è la tua.
git clone https://github.com/ivannikolovbg/repull-channel-manager cd repull-channel-manager npm install cp .env.example .env.local # add REPULL_API_KEY + REPULL_WORKSPACE_ID npm run dev
import { Repull } from '@repull/sdk'
const repull = new Repull({
apiKey: process.env.REPULL_API_KEY!,
workspaceId: process.env.REPULL_WORKSPACE_ID!,
})
// Push a property to every connected channel
await repull.properties.create({
title: 'R-Sable 1302',
bedrooms: 2,
city: 'Radium Hot Springs',
channels: ['airbnb', 'booking', 'vrbo'],
photos: [...],
amenities: ['wifi', 'parking', 'hot-tub'],
})
// Or only Airbnb, with platform-specific fields:
await repull.properties.create({
title: 'R-Sable 1302',
...,
channels: ['airbnb'],
airbnb: { instantBook: true, minNights: 2 },
})Perché qui l'open source conta
I connettori di Repull stanno alla luce del sole. Se domani non esistessimo più, avresti comunque il codice che parla con Airbnb. È una scelta deliberata, non una frase di marketing.
Ogni adapter è open source su GitHub. Il template del channel manager è open source. Gli SDK sono open source. Puoi forkare l'intero stack.
Vedi esattamente come Repull parla con Airbnb. Apri un bug, manda una PR, copia una funzione. Il codice è la documentazione.
Issue, release e roadmap stanno su GitHub. Le richieste di nuovi connettori arrivano in PR review nella stessa settimana.
API key in 30 secondi. Collega un PMS o vai diretto, e ogni canale è una write call di distanza.