---
title: "Santo Domingo Bay: static site with an AI concierge · Polargate"
description: "Polargate rebuilt the bilingual website of a Caribbean convention resort and casino on Vite, React and its own Supabase project, prerendered the 38 Spanish…"
url: https://polargate.ai/work/santo-domingo-bay
locale: en
publisher: POLARGATE S.L.
---
Hospitality: convention resort, casino and private beach

# A Caribbean resort site rebuilt as static HTML, with an AI concierge behind it

Polargate rebuilt the bilingual website of a Caribbean convention resort and casino on Vite, React and its own Supabase project, prerendered the 38 Spanish and English routes to static HTML, and connected the hotel to Estevano, whose AI concierge handles real guest requests in six languages.
[Visit the live site](https://www.santodomingobay.com)

santodomingobay.com

In short
Polargate rebuilt the website of a Caribbean convention resort and casino in the Dominican Republic on Vite, React, Tailwind and its own Supabase backend, prerendering 38 Spanish and English routes to static HTML so search engines and AI assistants read real content instead of an empty shell. The same hotel runs Estevano, Polargate's guest platform, whose AI concierge handled around 2,500 guest requests in four months, with a median first response of three minutes.
38
Spanish and English routes prerendered as static HTML

4 / 30
pages indexed before the rebuild

2,500
guest requests handled in four months

3 min
median first response from the concierge

16 min
median time to resolve a request

93%
requests opened by the guest, without reception

## The problem

The resort sells three different things from one website: leisure stays, congresses in rooms for 700, 120 and 80 people, and weddings. That website was a React application rendered entirely in the browser. Every route returned the same shell with the home page metadata, so crawlers, social previews and AI assistants saw almost nothing: Search Console had the domain verified and 9,183 historical clicks, yet only 4 of about 30 pages in the sitemap were indexed. Wedding leads were captured but the notification emails never reached the hotel, and the published convention capacities were wrong.

## What we built

Polargate moved the project out of its Lovable scaffold onto its own stack: Vite, React, TypeScript, Tailwind and shadcn/ui, with a dedicated Supabase project for data and Deno edge functions, deployed on Vercel from GitHub. All 38 Spanish and English routes are prerendered to static HTML with vite-react-ssg, each with its own title, description, canonical, hreflang pair and structured data. On top of that we built a weddings lead wizard with automatic dossier and Resend notifications from the hotel's own subdomain, a rate-limited assistant on the site, and the Estevano guest platform behind a QR poster at reception.

## The outcome

Every route now serves real content to Google, to social previews and to AI crawlers, with the hotel, its meeting rooms, room types, bars and FAQs described as one entity graph. Google's Rich Results Test returns 5 valid items on the home page, accessibility went from more than 60 failing nodes to zero axe-core violations, and image preloads per page fell from 183 to 2. Transactional email now leaves from the hotel's own subdomain. In the guest platform, the AI concierge handled around 2,500 requests in four months, 93% of them opened by guests without calling reception.

Stack

- React
- Vite
- TypeScript
- Tailwind CSS
- shadcn/ui
- Supabase
- PostgreSQL
- Deno
- Vercel
- GitHub
- Resend
- Capacitor
- OpenAI
- Search Console
- GA4
- Google Maps
[santodomingobay.com](https://www.santodomingobay.com)

## The context

A convention resort and casino on the Caribbean coast of the Dominican Republic, part of a Spanish hotel group, runs three businesses from one address: leisure stays, congresses and weddings. Polargate took over the website relaunch, then the monthly maintenance, and later the marketing operation.

## What we found

The site had been scaffolded in Lovable and was rendered entirely in the browser. A crawler asking for the weddings page received the same HTML as the home page.

- Search Console: domain verified, 9,183 historical clicks, sitemap read with 30 URLs, only 4 pages indexed.
- The weddings and contact forms wrote to the database, but the edge functions sent notifications from a default Resend address, so nothing arrived.
- Published convention capacities said 150 and 40 people. The real rooms hold 700, 120 and 80, 900 in total.
- The home page had accessibility failures in four axe-core categories across more than 60 nodes, one of them critical.
- Every route preloaded the full gallery: 183 images, around 20 MB.

## What we built

We moved the code onto our own stack and out of Lovable Cloud: Vite, React, TypeScript, Tailwind and shadcn/ui on the front, a dedicated Supabase project (Postgres with RLS, Deno edge functions) for data, Vercel for hosting, GitHub for the pipeline. vite-react-ssg prerenders the 38 Spanish and English routes to static HTML at build time, each with its own metadata, hreflang pair and JSON-LD written into the file rather than injected by JavaScript. Around that:

- A six-step weddings wizard writing to an RLS-protected table, with automatic dossier download and a notification to the wedding manager from the hotel's own subdomain on Resend.
- A branded QR system exporting print-ready files, used on the roll-up banner and the reception poster.
- Security and privacy work: security headers, hashed-IP rate limiting on the public edge functions, cookie consent with Google Consent Mode v2.
- Real 404 handling, cross-locale redirects, and new indexable pages for rooms and dining.

## How it runs now

The site is the hotel's stable storefront and survived a change of booking engine: the global booking widget was built as the place to embed the incoming Amadeus iHotelier engine inline. Guests reach Estevano, Polargate's hotel platform, from a QR poster at reception. Its AI concierge answers in six languages, classifies each request by department and opens a real ticket in the staff console. In the first four months at this hotel it handled about 2,500 requests, roughly 20 a day, with a median first response of 3 minutes and a median resolution of 16 minutes; 90% closed within the hour. Room service and housekeeping account for 65% of the volume. Polargate keeps the website running on a monthly care retainer. The Estevano guest platform is licensed separately.

[Build →](https://polargate.ai/services/build) · [Grow →](https://polargate.ai/services/grow) · [Care →](https://polargate.ai/services/care) · [Hotels and hospitality →](https://polargate.ai/for/hotels)

FAQ

## Questions about this project

How long did a project like this take? The rebuild ran in stages over about four months in 2026, with production releases along the way instead of one big launch. The prerender, the security headers, the accessibility fixes and the structured data went live on 9 and 10 June; the indexation fixes, the new rooms and dining pages and the performance work on 27 August. Polargate starts with a fixed-price Discovery Sprint, from 4,900 euros, which sets scope and sequence.
Can you do this with our booking engine and our PMS? Yes. On this project the booking widget was rebuilt as a global, lazy-loaded component and designated as the place to embed the incoming Amadeus iHotelier engine inline, with the payment step staying inside the provider so the hotel's PCI scope does not grow. The guest platform syncs with Oracle Opera Cloud every five minutes to know who is in house, in which room and in which language.
Will prerendering my React site get my pages indexed? It removes the most common blocker. AI crawlers and most social previews do not run JavaScript, so a client-rendered site shows them one empty shell for every URL. Here 38 routes went from a shared home-page shell to static HTML with their own titles, descriptions, canonicals and hreflang. Indexing still depends on content quality and on Google's own decisions, so Polargate does not promise rankings, only pages that are readable.
What languages does the AI concierge speak, and what can it actually do? The guest concierge answers in six languages: Spanish, English, French, German, Portuguese and Italian. It classifies each request by department, opens a ticket the staff console sees in real time, takes room service orders and books restaurants, the spa and other spaces against real availability. At this resort, room service and housekeeping are 65% of the volume, and 90% of requests were resolved within the hour. The public website is bilingual, Spanish and English.
What does it cost to keep a site and a guest platform like this running? Polargate runs hotel sites on a monthly care retainer from 850 euros, which covers maintenance, small evolutions and senior support with agreed response times through a shared ServiceDesk. Build work is quoted as a fixed price after the Discovery Sprint, from 7,600 euros. The Estevano guest platform is licensed separately per hotel. There is no hourly billing, and support is senior working hours, not a 24/7 call centre.

## Related work

Hotel Marien

### A resort website that Google, social scrapers and AI assistants can actually read

Polargate turned the bilingual website of a 349-room Caribbean resort into a fully static, hardened site with structured data for AI search, and keeps it under a monthly care retainer with an automated audit on the first day of every month.
2026 Read the case

[A resort website that Google, social scrapers and AI assistants can actually read](https://polargate.ai/work/hotel-marien)

Hotel Talavera

### A bilingual hotel website that crawlers and AI assistants can read

A 4-star city hotel in Castilla-La Mancha had a website that search engines received as an empty container. Polargate rebuilt it as 16 pre-rendered bilingual URLs and now runs it on a monthly Care retainer with a recurring audit loop.
2026 Read the case

[A bilingual hotel website that crawlers and AI assistants can read](https://polargate.ai/work/hotel-talavera)

Estevano

### Estevano: the guest app and staff console that runs a hotel's day

Estevano is Polargate's own hotel product: a guest app, an AI assistant and a staff console that turn a request into a routed ticket with an owner and a clock. It has been in production at Santo Domingo Bay for months, where it handled around 2,500 real guest requests in four months with a median resolution time of sixteen minutes.
2026 Read the case

[Estevano: the guest app and staff console that runs a hotel's day](https://polargate.ai/work/estevano-hotel-operations)

INITIATE

## Start the engine

Tell us what you are building in a few short questions. A senior engineer answers in writing within 48 business hours, with a first take on scope, timeline and price.
[Start your project](https://polargate.ai/start) · [Talk to us](https://polargate.ai/start#static-brief-heading)
