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.
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.
Imagine you run a little farm shop selling honey, and you sell your honey through:
They take 15p out of every £1 you sell. They own the customer relationship. They send all your customer messages to a separate room you have to visit.
They take 17p out of every £1. Different room for messages. Different way of paying you.
Customers message you there. You sometimes miss them. Different room again.
You keep 100% — but you have to be home, and there's no payment system, and you can't be in two places at once.
…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.
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:
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.
Same Sarah from before — she decided to book the caravan for Aug 14-17. She pays Airbnb £330. Here's what happens:
That's the fee for sending you Sarah. Unavoidable when she books via Airbnb. Sarah doesn't see this — she just sees £330.
The hub's calendar syncs with Airbnb every minute. Sarah's booking shows up in the Vintage Caravan row, coloured Airbnb-pink.
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.
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.
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.
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:
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.
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.
Same £1,000 booking through Airbnb = you get £850. Same £1,000 booking direct = you get £986. £136 difference. In your pocket.
Airbnb, Booking.com, Pitchup — they all see those nights are taken, within 60 seconds. No double-booking risk.
Direct guests get the exact same care as Airbnb guests — pre-arrival, gate code, welcome, check-in, review request. No drop in service quality.
Take a £1,000 booking and follow the money — three ways:
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.
Quick reality check: where is all this information actually stored?
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.
The Wishwood site is off-grid. So is your 4G. So the hub had to be built for that reality.
Whole hub is under 50KB to load — about the size of one phone photo. Loads on patchy signal.
Open it once on wifi, it'll keep working offline · saves to your browser. Comes back online: syncs the messages it queued.
Optional: hook up your solar inverter (Victron, Renogy) and the dashboard shows battery state, water tank levels, propane bottles, log stock. Cleaner schedule auto-generated from bookings.
The day-before SMS to guests includes tomorrow's forecast pulled live · so they pack the right stuff.
You can "install" the hub on your phone's home screen — looks and behaves exactly like a normal app, but it's just a webpage. No app store needed.
Most software locks you in. This doesn't. Here's exactly what happens if you decide to walk away tomorrow:
You get a single file with every booking, message, guest detail, pricing rule, journey email — your whole estate. Save it wherever you like.
It's a free service · just stop using it. No subscription to cancel.
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.
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.
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.
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.
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
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.
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.
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).
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.
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.