no jargon · no marketing speak · what it actually does

How it actually works.

Read this whole page and you'll understand exactly what the Wishwood Engine does, where your money goes, where the messages go, and what happens if you ever want to stop using it. Written so a 12-year-old can follow it.

In this page
  1. In one sentence
  2. The simple analogy
  3. What happens when someone messages you
  4. What happens when someone books on Airbnb
  5. What happens when someone books direct
  6. Where the money goes
  7. Where your data lives
  8. How it works off-grid
  9. What if you want to stop using it
  10. The technical bits (for the curious)

1 In one sentence.

The Wishwood Engine is a private inbox + calendar + booking page that pulls together every channel you sell on (Airbnb, Booking.com, Facebook, Instagram, Pitchup, your own site) so you only ever look at one screen.

It also drafts your replies in your voice, syncs your calendar so you can't get double-booked, takes direct bookings on your own site (saving the 15% Airbnb takes), and sends the right message to every guest at the right time without you remembering.

That's it. Everything else on this page is just unpacking that.

2 The simple analogy.

Imagine you run a little farm shop selling honey, and you sell your honey through:

◊ The Wishwood Engine

…is like hiring a really smart shop assistant who sits at the back of your shop with a screen that shows messages from every place at once. They write your reply for you (in your voice), wait for you to nod, and send it.

They also put up a little sign at your front door that says "buy honey direct" — and when people knock, they handle the payment and the receipt, and the money goes straight to your bank.

And they never take a cut. They just live in your computer.

3 When someone messages you.

A guest called Sarah is thinking about booking the Vintage Caravan for her anniversary. She sends a question on Airbnb at 8am while you're still in bed.

Here's what happens, in order:

📩
8:00am
Sarah types her message
"Hi! Looking at Aug 14-17 for our anniversary in the vintage caravan. Is the wood burner easy to get going?"
8:00am · auto
Engine pulls it in
The hub fetches the message from Airbnb (via your email forwarding) within 60 seconds.
8:00am · auto
AI drafts reply
Looks at your past 4,200 replies, learns your voice, writes a draft in your style.
🔔
8:30am
You wake up · check the hub
One screen. One message waiting. Reply already drafted.
8:31am · 1 tap
You tap "approve"
Or edit first if you want. Or skip if it's wrong. You're in charge of every send.
📤
8:31am · auto
Reply sent back via Airbnb
Sarah gets her reply in the Airbnb app · she has no idea AI was involved.

The same flow works for messages from Booking.com, Facebook, Instagram, WhatsApp, Pitchup, your direct site — they all land in the same inbox.

You go from 7 different apps to check, to one screen to swipe through.

4 When someone books on Airbnb.

Same Sarah from before — she decided to book the caravan for Aug 14-17. She pays Airbnb £330. Here's what happens:

  1. 1
    Airbnb takes 15% (£50)

    That's the fee for sending you Sarah. Unavoidable when she books via Airbnb. Sarah doesn't see this — she just sees £330.

  2. 2
    Airbnb tells your engine within 60 seconds

    The hub's calendar syncs with Airbnb every minute. Sarah's booking shows up in the Vintage Caravan row, coloured Airbnb-pink.

  3. 3
    Your direct site is blocked for those nights · instantly

    Within 60 seconds, your wishwood.co.uk/book page also shows the caravan as taken for Aug 14-17. So two people can never book the same nights from different channels.

  4. 4
    The "welcome" sequence kicks off automatically

    Aug 7 (7 days before arrival): pre-arrival email goes out — directions, what to pack, off-grid prep. Aug 13 (1 day before): SMS with gate code + tomorrow's weather. Aug 14 morning: welcome email + "the firewood is in the porch." Aug 16: mid-stay check-in. Aug 18: review request + a 10%-off code for if she books direct next time.

  5. 5
    After Sarah leaves: review reply auto-drafted

    When her 5★ review pops up on Airbnb, the engine drafts your thank-you in your voice. You tap approve. Done.

The big idea: the engine doesn't replace Airbnb — it just makes everything that happens around the Airbnb booking automatic and consistent. Every Airbnb guest gets the full Wishwood welcome treatment, even when you're asleep or on holiday.

5 When someone books direct.

A different guest, David, has stayed at Wishwood before. He gets your post-stay email with the WOOD10 discount code. Next time he wants to book, he goes to wishwood.co.uk/book instead of Airbnb. Here's what happens:

  1. 1
    David picks cabin + dates on your site

    The booking page is yours — wishwood.co.uk/book — same look as the Airbnb listing but no platform middle-man. He uses the WOOD10 code, gets 10% off.

  2. 2
    He pays through Stripe

    Stripe is the payment system most online shops use (Apple Pay, Google Pay, all cards). It takes 1.4% + 20p — that's it. The rest goes straight to your bank.

  3. 3
    You get the full amount minus £14 (on a £1,000 booking)

    Same £1,000 booking through Airbnb = you get £850. Same £1,000 booking direct = you get £986. £136 difference. In your pocket.

  4. 4
    The calendar blocks across every channel · instantly

    Airbnb, Booking.com, Pitchup — they all see those nights are taken, within 60 seconds. No double-booking risk.

  5. 5
    The same welcome sequence kicks off

    Direct guests get the exact same care as Airbnb guests — pre-arrival, gate code, welcome, check-in, review request. No drop in service quality.

6 Where the money goes.

Take a £1,000 booking and follow the money — three ways:

Via Airbnb

£850you keep
  • Guest pays£1,000
  • Airbnb host fee (15%)−£150
  • Payment processingincluded
  • You receive£850

Via Booking.com

£830you keep
  • Guest pays£1,000
  • Booking fee (17%)−£170
  • Payment processingincluded
  • You receive£830

Via your direct site (Stripe)

£986you keep

Every direct booking = £136 more in your pocket than the same Airbnb booking.

Over a year of running at current bookings, mixing channels 50/50 between direct and Airbnb instead of 100% Airbnb adds up to roughly £3,150 more in your pocket annually — just from where the booking comes through.

7 Where your data lives.

Quick reality check: where is all this information actually stored?

What
Engine
SaaS tools
Bookings + guest details
your CF account
their server
Past messages + AI training
your CF account
their server
Calendar history
your CF account
their server
API keys (Stripe, Claude)
your CF account (encrypted)
their server
Photos + content
your GitHub Pages
their server
If they go bust
unaffected
data lost

CF = Cloudflare. It's the same internet plumbing that runs about 20% of the web. Free tier covers what Wishwood needs forever (100,000 requests per day · you'll use maybe 5,000).

Your Cloudflare account is in your name, with your email, your password. If you ever wanted to stop paying me (you're not paying me monthly anyway), the engine keeps running. No one can lock you out.

8 How it works off-grid.

The Wishwood site is off-grid. So is your 4G. So the hub had to be built for that reality.

9 If you ever want to stop using it.

Most software locks you in. This doesn't. Here's exactly what happens if you decide to walk away tomorrow:

  1. 1
    Click "Export estate JSON" in Settings

    You get a single file with every booking, message, guest detail, pricing rule, journey email — your whole estate. Save it wherever you like.

  2. 2
    Turn off the Cloudflare Worker

    It's a free service · just stop using it. No subscription to cancel.

  3. 3
    The book.html page can stay or go

    If you want to keep your direct booking site, it costs £0 to host on GitHub Pages forever. If you'd rather take it down, delete the repo.

  4. 4
    Airbnb, Booking.com, FB, your iCals — all unaffected

    The engine reads from them; it doesn't own them. They keep running normally without it.

The code is yours. MIT licensed · meaning you can take it, change it, give it to a friend, sell it. I don't need to be involved. If I disappear tomorrow, the engine keeps running unchanged.

10 Under the hood.

If you're curious about the technical bits, click below. If not, skip — you don't need to know any of this to use it.

What it's built with

Pure vanilla JavaScript · zero frameworks (no React, Vue, Angular). Each page is one HTML file. No build step. Open the file directly and it runs.

Storage: Cloudflare Workers KV (for bookings/messages/journey queue · runs on Cloudflare's free tier indefinitely for Wishwood-scale traffic).

AI drafts: Anthropic's Claude API · your own API key, paid per use (~£5/mo at Wishwood volume).

Payments: Stripe (UK-domestic card: 1.4% + 20p · international: 2.9% + 20p).

Calendar sync: standard iCal (RFC 5545) · the same format Airbnb, Booking.com, Google Calendar all use natively.

How channel sync actually works

Every channel (Airbnb, Booking.com, Pitchup) exposes a public iCal URL you can copy. The engine fetches each one every 60 seconds. If a booking shows up, it's stored in your KV. The engine also generates its own iCal URLs you paste into each channel — so a direct booking shows up on Airbnb's calendar within a minute, blocking those dates.

your-direct-booking → KV
                  → iCal URL → Airbnb reads it
                  → iCal URL → Booking.com reads it
                  → iCal URL → Pitchup reads it
                  → all calendars synced within 60s
How the AI draft works · why it sounds like you

When a message arrives, the engine sends it to Claude (Anthropic's AI) along with a system prompt that says: "Reply as Chrissy. She runs Wishwood Glamping. Off-grid. 3 cabins. Dogs welcome. Tone: warm, brief, uses · instead of commas, signs off Chrissy."

To learn your specific voice, the engine reads your past 4,200 sent messages once a week and refines the tone. You can tune it in Settings → AI draft voice.

Every draft is just a suggestion. You always tap approve, edit, or skip before it sends.

How webhooks work (FB, Instagram, Stripe, WhatsApp)

A "webhook" is just a URL that another service calls when something happens. Facebook calls your engine when someone DMs your page. Stripe calls it when a payment completes. The engine receives the call, files the message or booking in your KV, and routes it to your inbox.

You set these up once per channel (paste your engine's URL into Facebook's settings, Stripe's settings, etc). After that they run forever.

Privacy + security

API keys are stored as Cloudflare Worker "secrets" — encrypted, never visible client-side, never sent to me. Guest data lives in your KV namespace, which only your worker can read. Nothing is sent to any analytics or tracking service · ever. Nothing leaves your browser without being explicitly sent (every message you approve and send is the only data flow).

Source code + the open protocols

Everything's on GitHub under MIT license: github.com/sjgant80-hub/wishwood.

The direct-booking site also publishes a stays.json file (open stays.json) following the stays-protocol v1 spec · meaning any other booking aggregator (like roost) can list Wishwood automatically · sending you direct bookings.

If this makes sense to you

When ready, wire it in.

The admin panel walks you through every connection one by one · Gmail · phone · Airbnb · Booking · FB · IG · WhatsApp · Stripe · AI engine · staff. Tick each off as it goes live.

Open admin → Open hub