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

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
Built with
Engagement
Ceylanro Villa · Hospitality & travel · 2026
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
What we built, and why.
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.

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.
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.
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.
A closer look.



Client success rate
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.
