Skip to content
codexa

Websites · React

Boutique hotel

Elegant small-hotel website with rooms and rates, the restaurant, guest notes, arrival details and a stay request form.

Boutique hotel starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

What you get

A site for an independent hotel or guesthouse: an editorial hero, room types with nightly rates, the restaurant, guest quotes, reception hours with directions, and a booking request form. All content lives in src/site.ts.

Files

Exactly what is copied into a new project: 13 files, nothing generated.

Raw data: GET /api/v1/templates/site-boutique-hotel

src/site.ts
src/site.ts
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = {  "brand": "Casa Albarrada",  "nav": [    {      "label": "Rooms",      "href": "#rooms"    },    {      "label": "Rates",      "href": "#rates"    },    {      "label": "Dining",      "href": "#dining"    },    {      "label": "Getting here",      "href": "#location"    }  ],  "navCta": {    "label": "Request a stay",    "href": "#contact"  },  "sections": [    {      "kind": "hero",      "variant": "editorial",      "eyebrow": "Fourteen rooms · Barrio de Santa Cruz, Seville",      "title": "Fourteen rooms around a 17th-century courtyard.",      "text": "Five minutes on foot from the Cathedral, ten from the Alcázar, and quiet enough to hear the fountain in the patio at night.",      "primary": {        "label": "See the rooms",        "href": "#rooms"      },      "secondary": {        "label": "Request a stay",        "href": "#contact"      },      "visual": {        "type": "tiles",        "tones": [          "#9a3412",          "#e7dccb",          "#a16207",          "#44403c"        ],        "caption": "The patio, late afternoon"      }    },    {      "kind": "gallery",      "id": "rooms",      "eyebrow": "Rooms",      "title": "Fourteen rooms, no two the same",      "text": "Every room has air conditioning, blackout shutters, a rain shower and linen from a family mill in Valencia.",      "items": [        {          "title": "Patio rooms",          "caption": "Ground floor, opening onto the courtyard",          "tone": "#7c2d12"        },        {          "title": "Classic doubles",          "caption": "Original beams and tiled floors",          "tone": "#78716c"        },        {          "title": "Terrace suite",          "caption": "Private terrace with Giralda views",          "tone": "#a16207"        },        {          "title": "Garden twin",          "caption": "Overlooking the orange tree",          "tone": "#4d5a2e"        },        {          "title": "Family loft",          "caption": "Two rooms under the eaves, sleeps four",          "tone": "#57534e"        },        {          "title": "The roof terrace",          "caption": "Plunge pool, open 9 am to 10 pm",          "tone": "#9a3412"        }      ]    },    {      "kind": "pricing",      "id": "rates",      "eyebrow": "Rates",      "title": "Nightly rates",      "text": "Per room per night, breakfast included. Prices rise during Semana Santa and the April Fair.",      "plans": [        {          "name": "Classic double",          "price": "€165",          "period": "/night",          "text": "18 m², queen bed, street or patio view.",          "features": [            "Breakfast in the patio",            "Rain shower",            "Free cancellation to 7 days"          ],          "cta": {            "label": "Request dates",            "href": "#contact"          }        },        {          "name": "Patio room",          "price": "€210",          "period": "/night",          "text": "24 m², king bed, doors onto the courtyard.",          "features": [            "Breakfast in the patio",            "Sitting area",            "Welcome bottle of manzanilla"          ],          "featured": true,          "cta": {            "label": "Request dates",            "href": "#contact"          }        },        {          "name": "Terrace suite",          "price": "€340",          "period": "/night",          "text": "38 m², private terrace with Giralda views.",          "features": [            "Breakfast on your terrace",            "Separate lounge",            "Late checkout to 2 pm"          ],          "cta": {            "label": "Request dates",            "href": "#contact"          }        }      ]    },    {      "kind": "split",      "id": "dining",      "eyebrow": "Dining",      "title": "Breakfast all morning, supper on the roof",      "text": "Our kitchen cooks from the Triana market: fresh orange juice, tostadas with Iberian ham and tomato, and from 8 pm a short supper menu on the terrace.",      "bullets": [        "Breakfast 8:00 – 11:30, served at your table",        "Terrace supper Thursday to Sunday",        "Open to non-residents by reservation"      ],      "visual": {        "type": "card",        "tone": "#7c2d12",        "title": "Thursday wine evenings",        "lines": [          "Four sherries from Jerez",          "Cheese from the Sierra Norte",          "€28 per guest, 7:30 pm"        ]      },      "reverse": true    },    {      "kind": "quotes",      "eyebrow": "Guests",      "title": "From the guest book",      "items": [        {          "quote": "We booked two nights and stayed five. Breakfast in the patio is the best hour of the day.",          "name": "Claire D.",          "role": "Stayed in March"        },        {          "quote": "Quiet, beautifully kept and the staff knew where to eat every single evening.",          "name": "Javier M.",          "role": "Stayed in October"        },        {          "quote": "The terrace suite at sunset, with the cathedral bells. Worth every euro.",          "name": "Ingrid & Paul",          "role": "Anniversary trip"        }      ]    },    {      "kind": "hours",      "id": "location",      "eyebrow": "Getting here",      "title": "Finding the house",      "text": "Taxis can drop you at Plaza de los Refinadores, two minutes away. We will meet you with a trolley for your bags.",      "rows": [        {          "day": "Reception",          "time": "Open 24 hours"        },        {          "day": "Check-in",          "time": "From 15:00"        },        {          "day": "Check-out",          "time": "By 12:00"        },        {          "day": "Airport transfer",          "time": "€35, on request"        }      ],      "address": "Calle Mesón del Moro 9, 41004 Sevilla",      "phone": "+34 954 21 08 63",      "email": "stay@casaalbarrada.es"    },    {      "kind": "contact",      "eyebrow": "Reservations",      "title": "Request a stay",      "text": "Tell us your dates and how many are travelling. We reply within a few hours with availability and the best rate.",      "fields": [        "name",        "email",        "date",        "guests",        "message"      ],      "button": "Check availability"    }  ],  "footer": {    "text": "A small hotel in the old Jewish quarter of Seville.",    "columns": [      {        "title": "Hotel",        "links": [          "Calle Mesón del Moro 9",          "+34 954 21 08 63"        ]      },      {        "title": "Stay",        "links": [          "Rooms",          "Gift vouchers",          "Private hire"        ]      },      {        "title": "Follow",        "links": [          "Instagram",          "Newsletter"        ]      }    ],    "legal": "© Casa Albarrada. Sample content: replace it in src/site.ts."  }};

Remix

Remix this template

Describe what to change and the agent starts from Boutique hotel's files. The box is already started for you: finish “Start from Boutique hotel and …”

Agent ready

Creates a free account first; your idea is carried over.

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

  • react^19.1.0
  • react-dom^19.1.0
  • vite^6.3.0
  • @vitejs/plugin-react^4.4.0
  • tailwindcss^4.1.0
  • @tailwindcss/vite^4.1.0
  • typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Entry route
/

Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.

All templates

Build on Boutique hotel

Create a free account, start from this template, and ask the AI agent to turn it into your app.