Skip to content

Case study

Modernizing a twenty-year booking system without stopping bookings

A vacation rental company on the Florida coast runs its business on a booking system that has worked for about twenty years. We keep it running, extend it, and have mapped a way to modernize it one piece at a time.

Quick facts

Industry
Vacation rentals
Product type
Booking website and admin system
Platform
Web
Timeline
Ongoing maintenance and modernization
Status
Ongoing

At a glance

What changed

Bookings never stopped

The system kept taking bookings while it was maintained and extended.

Relocation logic kept safe

The rules for moving guests between units were understood, tested and preserved.

Behavior captured in tests

Characterization tests record what the system does today, before anything changes.

A gradual path forward

A step-by-step migration plan replaces the old system in pieces, not all at once.

The client

The client and the situation

The client is a vacation rental company on the Florida coast. Its guests book beach homes and condos online, often months ahead. The business depends on its booking system every day of the year, and most of all in peak season.

That system has been in use for about twenty years. It is built on ColdFusion with a SQL Server database, and it holds two decades of business rules: availability, pricing, guest emails and the logic for moving guests between units when needed. It works. The problem is that fewer developers know the technology each year, and every change carries risk.

The challenge

The challenge

Rewriting a working booking system from scratch is tempting and dangerous. A full rewrite takes a long time, freezes improvements to the old system while it happens, and usually misses rules that nobody wrote down. If the new system goes live with a mistake in availability or relocation, guests lose bookings and the company loses trust.

So the challenge had two parts. First, keep the existing system healthy and keep extending it, because the business cannot wait. Second, find a way to move to a modern stack that never puts bookings at risk.

Before

How the work was done before

The booking system handles search and availability, online booking, guest emails, the unit relocation workflow and tools for owners and admin staff. Changes were made directly in the old code, carefully and slowly, because there were no automated tests to show what a change might break.

Knowledge of the system lived in the code and with the people who had worked on it. The relocation logic in particular, which decides how to move a guest to another unit when their booked unit becomes unavailable, was important and hard to follow.

Objectives

What the project had to achieve

  • Keep the booking system running and stable, especially in peak season.

  • Extend the system where the business needs new features now.

  • Understand and document the existing rules, especially unit relocation.

  • Capture current behavior in tests before changing anything important.

  • Design a gradual migration path to a modern stack that never stops bookings.

The solution

What we built

We took over maintenance and extension of the existing system and treated understanding it as real work, not a side task. Before changing important areas, we wrote characterization tests, sometimes called golden-master tests. They record what the system does today for a wide range of inputs, so any change in behavior shows up immediately.

For the future, we evaluated a gradual migration using the strangler pattern. New parts are built on a modern stack and placed in front of the old system one route at a time. Each new part takes over only when it matches the old behavior in the tests. A one-way database sync keeps the new system's data up to date from the old one during the transition, so both can run side by side. This is the heart of our legacy modernization service.

  • Search and availability

    Guests search by dates and see which homes are available.

  • Online booking

    Guests book online through the existing flow.

  • Guest emails

    Confirmations and other emails sent at each stage of a booking.

  • Unit relocation workflow

    Rules for moving guests to another unit when needed, preserved and tested.

  • Owner and admin tools

    Screens for staff and owners to manage units and bookings.

  • Characterization tests

    Golden-master tests that capture current behavior before changes.

  • Migration plan

    A strangler-pattern plan with a one-way database sync for a safe transition.

UX and UI

The UX and UI approach

For guests, the first rule of modernization is that nothing should break. Search, unit pages and the booking flow must keep working exactly as returning guests expect. Improvements to the guest experience, such as faster pages and a cleaner booking flow on phones, are planned as part of the new front end, one page type at a time.

For staff, the priority is predictability. In the plan, admin screens change only when a better version has been tested with real bookings, and staff are told what changes before it happens.

Architecture

How the pieces fit together

syncGuests andstaffRouting layerStrangler patternExistingbooking systemColdFusionNew modulesModern stackSQL ServerNew databaseOne-way sync

Today, all traffic goes to the existing ColdFusion application and its SQL Server database. In the planned transition, a routing layer sits in front. At first it sends everything to the old system. As each new module is built and passes the characterization tests, the routing layer sends that part of the traffic to the new module instead.

A one-way sync copies data from the old database to the new one, so new modules always see current bookings without writing back to the old system too early. The old system stays in charge of bookings until the final stage. At any point, a route can be switched back to the old system if something looks wrong. That is what makes the plan safe.

AI-accelerated

Where AI sped up the build

Honest about what AI did, and what people did.

  • Understanding a large legacy codebase: AI helped read and summarize old ColdFusion code quickly, tracing how a booking moves through the system.

  • Characterization tests: AI generated many test cases from the existing behavior, which engineers checked and kept where they mattered.

  • Migration planning: AI drafted options for the migration path and their risks. Engineers chose the approach and wrote the final plan.

Integrations

Integrations

  • SQL Server

    The existing database that holds bookings, units and guests.

  • Email notifications

    Guest and staff emails sent at each stage of a booking.

  • One-way database sync

    Planned sync from the old database to the new one during the transition.

Screens

Concept screens

Simple mockups of the described interface. Real screenshots will replace them.

booking.example.com/search
SearchAvailable homes12 to 19 July, 6 guestsAvailableGulf view condo3 bedrooms, sleeps 6AvailableBeachfront house4 bedrooms, sleeps 8AvailableDune cottage2 bedrooms, sleeps 6BookedHarbor condo3 bedrooms, sleeps 6AvailablePool house5 bedrooms, sleeps 10AvailablePier studio1 bedroom, sleeps 2
Search results with available homes
booking.example.com/search
BookingsUnitsRelocationsOwnersEmailsReportsSearchConfirm moveRelocate bookingBooked unit unavailable, choose a matchBookingBooking 88214Dates12 to 19 JulyOriginal unitHarbor condoReasonMaintenanceUnitBedroomsRate differenceMatchGulf view condo3NoneApprovedDune cottage2LowerReviewBeachfront house4HigherReview
Admin view of the unit relocation workflow
Your stayGulf view condo12 to 19 JulyPrice summary7 nights$0,000Cleaning fee$000Taxes$000Total$0,000

Concept screen

Booking flow on a phone

Results

The results

The booking system has kept taking bookings while we maintained and extended it. The relocation rules, which were among the hardest parts to follow, are understood, and behavior in important areas can be checked against characterization tests. Changes that once felt risky can be checked against recorded behavior before they go live.

The company also has a clear, gradual plan to move to a modern stack. It does not require a big-bang rewrite, a freeze on improvements or a risky switchover weekend. We do not publish numbers for this project. If the client shares measured results, they will appear here.

What the team can do now

  • Keep taking bookings while the system is improved.

  • Change the system with tests that show what a change would break.

  • Explain how the relocation rules work, from the code and the tests.

  • Plan modernization in stages, with the option to switch back at every step.

Before and after

Before and after

Before

A working system nobody wanted to touch

  1. A twenty-year-old system runs the whole business.

  2. Changes are risky, because nothing shows what they might break.

  3. Key rules, such as relocation, live only in the code.

  4. Fewer developers know the technology each year.

After

A system with a safe way forward

  1. The system is maintained, extended and still taking bookings.

  2. Characterization tests capture current behavior.

  3. Key rules, such as relocation, are understood and traced.

  4. A strangler-pattern plan replaces the system one piece at a time.

Technology

Technology stack

  • ColdFusion
  • SQL Server
  • Email notifications

What comes next

What we would do next

The first stage of the migration would move the guest-facing pages, starting with search and unit pages, to a modern front end fed by the one-way sync. Those pages change least often in their rules and benefit most from speed on phones. The booking flow and the relocation workflow would move later, once the new modules have run alongside the old ones and matched them in the tests.

After that, we would look at AI guest support and data migration of the full booking history, so the old database can finally be retired. Every stage keeps the same rule: bookings never stop.

Solutions in this project

Problems this project solved

Scheduling automation

Let customers book, change and confirm appointments themselves, by web, chat or phone, with reminders that cut no-shows.

Email triage

Sort a shared inbox by topic and urgency, pull out the key details and draft replies for a person to send.

AI automation and integrations

Connect the tools you already use so data moves once, correctly, and AI reads the parts that arrive as text or documents.

Keep exploring

Start a project

Have a similar problem? Tell us about it.

Send a short brief. We reply with questions, a suggested plan and an estimate you can compare with other offers.

Your privacy choices

We use necessary storage to run this site. With your permission we also use Google Analytics to see which pages help people, and load maps from Google. You can change this at any time. Read the cookie policy.