{
  "name": "Cabinly",
  "url": "https://cabinly.io/",
  "app": {
    "url": "https://app.cabinly.io/",
    "signUp": "https://app.cabinly.io/sign-up",
    "signIn": "https://app.cabinly.io/sign-in",
    "signUpRequires": "An e-mail address. No credit card; the first booking page is free."
  },
  "stage": "alpha",
  "description": "Direct-booking tool for owners of 1-3 short-term rental cabins. Builds a booking page, manages calendar availability and takes payments without marketplace commission.",
  "audience": {
    "primary": "Owners of 1-3 cabins or vacation rentals",
    "notFor": "Property-management companies and portfolios of 20+ listings; Cabinly is not a PMS"
  },
  "capabilities": [
    {
      "id": "booking-page",
      "name": "Booking page",
      "description": "A public page presenting a property and accepting bookings, created by the owner. A guest can ask a question on the page and open the booking from inside that same conversation, with the dates already carried over, rather than being sent to a separate form.",
      "status": "available"
    },
    {
      "id": "listing-import",
      "name": "Listing import",
      "description": "The owner pastes the address of an existing listing (Airbnb, Booking.com or another site) and Cabinly pulls in the name, description, amenities, price and photographs, then lets the owner edit any of it before the page goes live.",
      "status": "available"
    },
    {
      "id": "calendar",
      "name": "Calendar availability",
      "description": "Managing nightly availability and prices. A price, a minimum stay, a cut-off or a block can be set on a single date; a block closes that night on every channel the property is synced with, while a price set here applies to the Cabinly booking page and Cabinly's own surfaces, not to rates published on an OTA.",
      "status": "available"
    },
    {
      "id": "manual-bookings",
      "name": "Bookings entered by the owner",
      "description": "The owner can create a booking themselves in three forms: one to be paid online (created as pending, with a payment link the guest pays through the booking page), one already paid outside Stripe in cash or by transfer (created as confirmed and paid), and one that lives on an OTA (Airbnb, Booking.com), entered so the nights are held. Guest details, occupancy, paid add-ons, an owner-set final price and internal notes are part of it. Existing bookings can be amended (dates, occupancy, add-ons), cancelled, have guest details corrected and a payment reminder sent. Cabinly charges 0% commission on all of these; Stripe's fees apply only to the ones paid online and are listed under pricing.thirdPartyCosts.",
      "status": "available"
    },
    {
      "id": "payments",
      "name": "Direct payments",
      "description": "Guest payments taken through Stripe, with no Cabinly commission.",
      "status": "available",
      "requires": [
        "stripe-account"
      ]
    },
    {
      "id": "voice-dictation",
      "name": "Voice dictation into the booking form",
      "description": "A guest can dictate their details in the booking flow instead of typing them; Leo fills the fields from speech.",
      "status": "available",
      "requires": [
        "microphone",
        "secure-context"
      ]
    },
    {
      "id": "ai-assistant",
      "name": "AI assistant \"Leo\"",
      "description": "Answers guest questions about a property and their booking on the booking page. It answers from the property's own description, prices and house rules, and searches the web for what lies outside them (the nearest shop or pharmacy, what to do nearby in bad weather). It does not make commitments on the owner's behalf. The same assistant answers the owner in a WhatsApp conversation, where the app, the digital employees and the bookings can be run - blocking nights, asking how a month is filling - instead of a separate screen to log into.",
      "status": "available"
    },
    {
      "id": "calendar-sync",
      "name": "Calendar sync (iCal)",
      "description": "Two-way iCal: the owner imports calendars from Booking.com, Airbnb or anything else that publishes an .ics link, and Cabinly publishes an export feed of the property's own bookings.",
      "status": "available"
    },
    {
      "id": "booking-conditions",
      "name": "Booking conditions",
      "description": "Check-in and check-out times, minimum length of stay, cut-off, cancellation window, damage deposit, cleaning fee and paid add-ons. Set once by the owner and shown to the guest before payment. Paid add-ons carry their own price and a price type – per stay, per night, per guest, or per night per guest – and are charged with the booking into the owner's own Stripe account at 0% commission to Cabinly.",
      "status": "available"
    },
    {
      "id": "page-branding",
      "name": "Page appearance",
      "description": "Accent colour, typeface and light/dark theme of the booking page are the owner's to set. The page is served at a cabinly.io subdomain.",
      "status": "available"
    },
    {
      "id": "phone-assistant",
      "name": "Assistant that answers the telephone",
      "description": "Planned: an assistant that takes an incoming call for the property, talks to the guest, answers what it knows from the property's own data and writes the resulting booking into the calendar. Not started; no date announced.",
      "status": "planned"
    },
    {
      "id": "marketing-employee",
      "name": "Marketing digital employee",
      "description": "Planned: a digital employee that promotes the booking page - writes the posts, puts out the offers and looks for guests in the weeks the calendar is thin. Not started; no date announced.",
      "status": "planned"
    },
    {
      "id": "social-publishing",
      "name": "Facebook and Instagram publishing",
      "description": "In development: the owner connects a Facebook Page and an Instagram account through Facebook Login and schedules and publishes posts to them from Cabinly. Awaiting Meta App Review; not available to owners yet. What is stored and how to delete it: https://cabinly.io/data-deletion",
      "status": "in-development",
      "requires": [
        "meta-app-review"
      ]
    }
  ],
  "conversionDesign": [
    "Guests book without an account or a password; the flow asks only for name, e-mail and phone.",
    "Price and the booking action stay in a fixed bar on mobile, so neither needs scrolling to find.",
    "Guest questions are answered on the page by the AI assistant, without waiting for the owner to reply.",
    "One flow from dates through payment to the owner's calendar, with no handoff to e-mail or a marketplace."
  ],
  "limitations": [
    "Alpha stage: features may change and some may work in a limited way.",
    "No uptime or continuity guarantee; the service is provided \"as is\". No SLA and no public status page today.",
    "AI assistant responses are supportive in nature and may contain errors; their accuracy is not guaranteed.",
    "Cabinly is not a party to the rental agreement between owner and guest; settlements, refunds and tax obligations rest with the owner.",
    "Payments require connecting a Stripe account and accepting Stripe's terms.",
    "Full payment card numbers are never stored by Cabinly.",
    "No public sandbox or self-serve trial API yet.",
    "A booking page is served at a cabinly.io subdomain; custom domains are not supported yet.",
    "The product demo video is not filmed yet, and nothing on the site offers one until it is.",
    "Guest-facing phone calls are not answered by Cabinly today — see the phone-assistant capability, status planned.",
    "Facebook and Instagram publishing is not available yet — it is in development and awaits Meta App Review; see the social-publishing capability."
  ],
  "pricing": {
    "model": "free-tier-with-planned-paid-tier",
    "currency": "USD",
    "amount": 0,
    "period": "month",
    "commissionOnDirectBookings": "0% – on every plan, forever",
    "freeBookingPages": 1,
    "freeBookingPagesDuration": "alpha – whether the page stays free after the alpha is not yet announced",
    "otherFeaturesFreeDuring": "alpha",
    "contactSalesRequired": false,
    "humanReadable": "https://cabinly.io/pricing",
    "machineReadable": "https://cabinly.io/pricing.md",
    "thirdPartyCosts": [
      {
        "provider": "Stripe",
        "type": "payment-processing",
        "note": "Stripe charges its own transaction fees under its published pricing. These are paid by the owner and are not part of Cabinly's price.",
        "pricingUrl": "https://stripe.com/pricing"
      }
    ],
    "plans": [
      {
        "id": "free",
        "name": "Free",
        "status": "available",
        "price": 0,
        "currency": "USD",
        "period": "month",
        "bookingPages": 1,
        "note": "One booking page; the current feature set is free during the alpha, and commission on direct bookings is 0% forever."
      },
      {
        "id": "pro",
        "name": "Pro",
        "status": "announced",
        "price": null,
        "note": "Price not yet announced. Adds more than one booking page, digital employees you manage like people, more customization and experiences. Requires separate acceptance."
      }
    ],
    "futurePricing": "Paid tiers are planned; owners will be told the amount in advance and paid features require separate acceptance."
  },
  "integrations": [
    {
      "name": "Stripe",
      "type": "payments",
      "required": "for accepting guest payments",
      "role": "independent controller for payment data"
    },
    {
      "name": "Meta (Facebook and Instagram)",
      "type": "social-publishing",
      "required": "for publishing posts to the owner's Facebook Page and Instagram account",
      "status": "in development, pending Meta App Review",
      "dataDeletion": "https://cabinly.io/data-deletion"
    }
  ],
  "dataProtection": {
    "regulation": "GDPR (EU 2016/679)",
    "governingLaw": "Poland",
    "controller": {
      "name": "Enlive Michał Michańczyk",
      "address": "ul. Długosza 4/1, 80-547 Gdańsk, Poland",
      "taxId": "PL9571001658",
      "businessRegistry": {
        "type": "REGON",
        "number": "221589533"
      },
      "jurisdiction": "Poland",
      "email": "wecare@cabinly.io"
    },
    "dataProtectionOfficer": null,
    "guestData": {
      "cabinlyRole": "processor",
      "controllerRole": "the owner (Host)",
      "dpa": "Included in the Terms accepted by the owner; no separate signature required."
    },
    "transfersOutsideEEA": {
      "occurs": true,
      "safeguard": "EU Standard Contractual Clauses or an adequacy decision",
      "copyAvailableOnRequest": "wecare@cabinly.io"
    },
    "retention": {
      "accountAndProperty": "duration of the contract, then as needed for settlements and limitation of claims",
      "bookingsAndPayments": "up to 5 years from the end of the settlement year (tax and accounting law)",
      "technicalLogs": "up to 12 months",
      "socialPublishingTokens": "until the owner disconnects Facebook or Instagram (then deleted) or the tokens expire",
      "socialPublishingPosts": "while the account exists or until the owner deletes them",
      "consentBased": "until consent is withdrawn"
    },
    "sellsPersonalData": false,
    "minimumAge": 16,
    "subprocessorsPublished": true,
    "subprocessors": [
      {
        "name": "Stripe",
        "purpose": "payment processing",
        "role": "independent controller for payment data"
      },
      {
        "name": "OVHcloud",
        "purpose": "hosting and server infrastructure",
        "region": "Germany (EEA)"
      },
      {
        "name": "Resend",
        "purpose": "transactional e-mail sent by the Service",
        "region": "Ireland (EEA)"
      },
      {
        "name": "Google Workspace",
        "purpose": "business correspondence"
      },
      {
        "name": "OpenAI",
        "purpose": "AI model provider for the Leo assistant, and for AI-generated post text and photo analysis in Facebook and Instagram publishing"
      },
      {
        "name": "Meta Platforms Ireland Limited",
        "purpose": "publishing posts to a connected Facebook Page and Instagram account; Meta's own privacy policy applies to published content",
        "status": "in development, pending Meta App Review"
      },
      {
        "name": "Cloudflare",
        "purpose": "storage of photos being published to Facebook and Instagram",
        "status": "in development, pending Meta App Review"
      },
      {
        "name": "PostHog",
        "purpose": "product analytics and session replay",
        "region": "EU (EEA)",
        "status": "consent-gated: not loaded, and no request made to it, until the visitor opts in"
      },
      {
        "name": "Google Ireland Limited",
        "purpose": "web analytics (Google Analytics 4, deployed via Google Tag Manager)",
        "region": "EU entity; data may be processed in the US under the EU-US Data Privacy Framework",
        "status": "consent-gated: the Tag Manager container is not fetched, and no request is made to Google, until the visitor opts in. Google Consent Mode basic; ad_storage, ad_user_data and ad_personalization stay denied, Google Signals is off, no Google Ads link, no remarketing. Cookies _ga and _ga_* are deleted when consent is withdrawn."
      }
    ]
  },
  "support": {
    "email": "wecare@cabinly.io",
    "complaintResponseDays": 14,
    "gdprRequestResponse": "within one month",
    "statusPage": null,
    "contactPage": {
      "en": "https://cabinly.io/contact",
      "pl": "https://cabinly.io/pl/contact"
    },
    "channels": [
      "email"
    ],
    "responseTime": "No guaranteed response time outside the statutory windows above."
  },
  "documents": {
    "privacyPolicy": {
      "en": "https://cabinly.io/privacy",
      "pl": "https://cabinly.io/pl/privacy"
    },
    "terms": {
      "en": "https://cabinly.io/terms",
      "pl": "https://cabinly.io/pl/terms"
    },
    "dataDeletion": {
      "en": "https://cabinly.io/data-deletion",
      "pl": "https://cabinly.io/pl/data-deletion"
    },
    "pricing": "https://cabinly.io/pricing.md",
    "comparisons": {
      "note": "One page per alternative, in both languages. Each states the case for choosing the other tool as well as the case for Cabinly, and none of them quotes a competitor's price.",
      "lodgify": {
        "en": "https://cabinly.io/vs/lodgify",
        "pl": "https://cabinly.io/pl/vs/lodgify"
      },
      "smoobu": {
        "en": "https://cabinly.io/vs/smoobu",
        "pl": "https://cabinly.io/pl/vs/smoobu"
      },
      "hostaway": {
        "en": "https://cabinly.io/vs/hostaway",
        "pl": "https://cabinly.io/pl/vs/hostaway"
      },
      "guesty": {
        "en": "https://cabinly.io/vs/guesty",
        "pl": "https://cabinly.io/pl/vs/guesty"
      },
      "marketplaces": {
        "en": "https://cabinly.io/vs/booking-com",
        "pl": "https://cabinly.io/pl/vs/booking-com"
      }
    },
    "llms": "https://cabinly.io/llms.txt",
    "sitemap": "https://cabinly.io/sitemap.xml"
  },
  "languages": {
    "interface": [
      "en",
      "pl"
    ],
    "home": {
      "en": "https://cabinly.io/",
      "pl": "https://cabinly.io/pl/"
    },
    "note": "Every page exists at its own URL per language and is served prerendered in that language; nothing depends on JavaScript to translate it."
  },
  "lastUpdated": "2026-09-07"
}
