Synovx
Loading000%
Case Study / Websites

Ceylanro Villa transit hotel website

A marketing site for a transit hotel minutes from Colombo airport, built around day-use rooms and layover stays rather than overnight bookings.

Visit the live site
Client
Ceylanro Villa
Year
2026
Industry
Hospitality & travel
Category
Websites
The Ceylanro Transit Villa home page
01 / The Brief

What was actually wrong.

Ceylanro Villa sits on a specific niche: travellers with a layover at Colombo airport who need a day-use room, express check-in and a shuttle — not a standard overnight stay. The business needed a site that could carry that positioning, show rooms and pricing including the separate day-use rate, and be findable for airport-hotel and layover searches. It also needed to run on the client’s own infrastructure rather than a managed platform.

How we approached it.

We treated the niche as a data problem rather than a copy problem. Rooms and services are modelled as typed static data — no CMS and no database for a catalogue this size — and everything the search engines see is generated from the same source that renders the page, so the two cannot drift apart. Deployment was built for infrastructure ownership from the outset.

At a glance

What we delivered

Full-stack developmentUI/UX designSEODevOps

Built with

Next.js 16React 19TypeScriptTailwind CSS v4Framer MotionDockerGitLab CICapRover

Engagement

Ceylanro Villa · Hospitality & travel · 2026

02 / What Shipped

What went live.

0

Rates on every room — overnight and day-use

0

Source of truth behind the UI, sitemap and structured data

0

Managed-platform dependency — self-hosted end to end

03 / The Build

What we built, and why.

01

The niche, built into the data model

Most hotel sites sell a night. This one sells a layover, so the distinction lives in the schema rather than the marketing copy: every room carries both a nightly price and an optional day-use price, and the language throughout is written for someone with hours to spend rather than a holiday to plan.

Separate day-use and overnight pricing per room
Express check-in and 24/7 airport shuttle as core amenities
Copy written for transit guests, not leisure travellers
The home page hero, with the amenity strip beneath
02

SEO generated from the same data as the page

The sitemap and the JSON-LD structured data are both derived from the same typed room array that renders the listing grid and the detail pages. Adding or changing a room updates the guest-facing site and the search-facing surface in one edit, so the two cannot fall out of sync — which is the usual failure mode on small hotel sites.

Sitemap, robots and JSON-LD generated from the room data
OpenGraph metadata across the full guest journey
Targeted at airport-hotel and layover search intent
03

Visual identity, held until it is ready

A custom display typeface is paired with a four-weight body family, both self-hosted rather than pulled from Google Fonts — one less third-party request, and no flash of unstyled text on a site where the first impression is the product. A full-bleed hero video ships as separate desktop and mobile encodes, and a preloader holds first paint until it is ready so the opening reveal never stutters.

Self-hosted display and body typefaces via next/font/local
Separate desktop and mobile video encodes, swapped by breakpoint
Preloader gates first paint so the reveal plays cleanly
04

Making of

The backbone is deliberately plain — no database, no CMS, no auth — which keeps the room catalogue type-safe from the listing grid through to the sitemap generator. The interesting engineering is in delivery: a standalone Next.js build inside a multi-stage Alpine Docker image, pushed through GitLab CI to a self-hosted CapRover instance. Motion runs on Framer Motion, gated behind reduced-motion checks, and a bespoke scroll-tracking hook reads attributes on each section to flip the navbar between light and dark as the hero gives way to lighter content — usually hardcoded per page, built here as a reusable route-aware hook.

Typed static data, shared between UI and sitemap generator
Multi-stage Alpine Docker build, standalone Next.js output
GitLab CI to self-hosted CapRover — no Vercel dependency
Reusable scroll hook for route-aware navbar theming
04 / More Screens

A closer look.

The hero on a phone, with the amenity strip
The hero on a phone, with the amenity strip
Mobile hero and live chat entry point
Mobile hero and live chat entry point
The home page on a laptop
The home page on a laptop
100%

Client success rate

06 / Start Your Journey

Let's build your
digital future.

Clear timelines

You get a detailed timeline during the discovery phase, before any commitment is made.

Transparent pricing

Fixed-price or time-and-materials, whichever suits the scope. We're open about costs from day one.

You own everything

On final payment the intellectual property is 100% yours — source code, design assets, and database.

Support after launch

Maintenance packages keep your product secure, up to date, and performing long after go-live.

Contact Us