1891
ImmersiveExperiences
Case study · Client work · Software

Fairytale Dreamers: a Deaf-led travel agency
and the website built like cabinetry.

By Anthony Mowl  ·  8 min read  ·  Frederick, MD · since 2026

A Deaf-led family travel agency in Maryland needed a website that earned trust before the first call. We built it under one roof — public site, agent CRM, lead pipeline, branded email — on commodity hosting, no monthly SaaS bill, no React build farm. Two of the tools live on this page below. Sign your kid's height in, pick a park, see what they can ride.

The Disney Dream cruise ship grand staircase, photographed by Fairytale Dreamers Travel on a Caribbean sailing.
Disney Dream · April 2026 · photographed by the FDT team on their first season of sailings

Who they are

Fairytale Dreamers Travel is a small, Deaf-led travel agency that books Walt Disney World, Disneyland, Disney Cruise Line, and runDisney weekends — primarily for Deaf and hearing families who want a planner who actually signs, runs the races, and has been on the boat. Free to the client; the agency is paid by Disney through the standard agent commission model.

The lead agent, Fallon, was born Deaf into a Deaf family and chaired an ASL interpreting program for ten years before going full-time on travel. The bench around her includes a Disney University alumna, a runDisney lifer who has stopped counting half marathons, and a coach in Colorado who is 16 medals into a "50 by 50" goal. The team's pitch is the kind of small-business pitch that has to be earned in a single page on the internet, and earned again every time someone fills out the contact form.

Fallon, lead travel agent at Fairytale Dreamers Travel, headshot.
FallonLead agent · born Deaf · former chair, ASL interpreting program
Fallon at Cinderella Castle wearing a runDisney medal.
Earned itCinderella Castle, mid-race · the team actually runs the runs

What we built

One stack, top to bottom, deployed to GoDaddy cPanel with a single bash command. The whole thing is static HTML, vanilla JS, hand-rolled CSS, and a Google Apps Script — chosen on purpose. No monthly bill that creeps. No upstream vendor who can break a release window the day before a peak booking weekend.

The Fairytale Dreamers Travel home page — live as of 2026.
fairytaledreamerstravel.com Home · live park-hours strip pulls from ThemeParks.wiki API
21
Build iterations
v2 → v21 in the repo
9
Interactive tools
shipped on the site
$0
Monthly SaaS bill
after the domain renewal
90min
Quick-start to live
per the GO-LIVE guide

Try two of the tools.

Both of these run on the FDT site today. They are exactly the same code, restyled to live on this page. Self-contained — no API calls, no logins, your inputs save to your own browser's localStorage so they're there next visit. We ship a lot of small tools like this. They cost almost nothing to build and they're how a small business demonstrates competence on the internet without saying the word "competence."

Try it Disney ride-height planner /features/ride-height-planner

Enter your child's height. See exactly which Walt Disney World and Disneyland rides they can experience. Saves so you don't retype next visit.

inches
Rides they can ride
Need to wait a bit
Try it ASL interpreter rotation · today at WDW /features/interpreter-schedule

Disney's ASL interpreters rotate the four Walt Disney World parks on a weekly cadence. This is the standard pattern, by day. The "today" card auto-rolls.

Full weekly rotation

Why this fits 1891's pitch

The page you are on right now — 1891's main demonstration — argues for systems built end-to-end, in Frederick, under one roof, that work for the body that walks in the room. Cameras instead of microphones. Hardware, firmware, gameplay, and set design from the same shop.

FDT is the same argument in software. Hand-coded site, hand-coded back office, hand-coded email pipeline, deployed to commodity hosting with a single script. No SaaS rent. No framework that needs a rebuild every six months. No vendor who can change the deal mid-flight. When a customer fills out the contact form on a Friday night, the email goes through real Exchange and lands in Fallon's inbox at 9:42 PM with proper authentication. When the agency wants to send a quarterly campaign, the queue is in their own sheet.

One small choice that matters: Google Sheets is a premium connector in Power Automate. To wire it directly costs $15 per user per month, in perpetuity. So we don't. The Apps Script writes a small JSON-bearing email to a hidden mailbox, an inbox rule moves it to a folder no human ever reads, and Power Automate's free Outlook trigger picks it up, parses it, and dispatches two clean branded emails — one to the agent, one to the customer. The user sees a thank-you screen. Three seconds later, two emails land. No license is in the loop.

How a lead actually flows
1) Customer fills out the form on fairytaledreamerstravel.com
2) Apps Script saves the lead to the master Sheet (CRM source of truth)
3) Apps Script emits one [FTD-LEAD] trigger email with embedded JSON
4) Outlook inbox rule routes [FTD-LEAD] to a folder no human reads
5) Power Automate's free Outlook trigger parses the JSON
6) Real Exchange mailbox sends two outbound emails, both signed with SPF/DKIM/DMARC
   → advisor notification to the on-duty agent
   → client confirmation from contact@fairytaledreamerstravel.com
7) Three seconds elapsed. Zero recurring license fees added.

That kind of routing decision is what we mean by "software built like cabinetry." You measure the wall before you cut the boards. You don't pay for a feature you don't need, and you don't ship a stack that costs the client more to keep open than the agency makes in a slow month.

Google Sheets is a Premium connector in Power Automate. To keep everything free, we trigger off an email instead. — Anthony Mowl, on the day FDT's email pipeline went live

The Deaf-led angle — quietly

The lineage matters, but it does not lead. FDT's homepage says "Disney vacations made for every family." Then, lower: "a Deaf-led, signing travel team." The order is on purpose. The promise is universal. The fact that the people behind it are part of the community they serve is the why, not the headline.

That's exactly the line 1891 walks too. The work has to stand on its own merits in front of every kind of guest. The fact that the team has been in this conversation for generations is what makes the work feel right when you finally hear about it — not the reason to click in.

Sabrina at a runDisney event, mid-race.
SabrinaColorado · 16 half marathons in · chasing 50 by 50
Tabitha at a runDisney event, posing with a medal.
TabithaThe runDisney specialist · "forever runDisney"

What changed for the client

Pre-1891, FDT was running their lead pipeline through a hand-managed spreadsheet, a Gmail account, and a free no-code form builder that quietly added its own footer to every confirmation email. Booking customers were emailing the personal Gmail addresses of agents who happened to be on duty that week. There was no shared system.

After: every contact form on the site lands in one canonical Sheet, with a routed advisor copy, a properly branded customer confirmation, and a CRM dashboard where five agents can see leads, take ownership, leave notes, mark won/lost, and pull list segments for campaigns. Multi-user Google OAuth is teed up for whenever they want it. The whole thing is theirs — including the source code — and they own the domain, the email tenant, and the deploy keys.

Maybe the most important deliverable, though, was the runbook. GO-LIVE-GUIDE.md is plain-language. It says what shipped, what was deferred, and what would take an hour to upgrade if they ever want to. It's the kind of document you write when you actually expect the client to read it — and you don't want them to need you forever.

Running a small business that deserves a website built like cabinetry?

We take on about six software commissions a year alongside the immersive installations. First conversation is free.

Send us a project →