StayNest is a hotel booking application for the hotel-booking-saas project. It is a simple app where users can browse rooms, check prices, and make bookings. The product serves leisure travellers who want to see what a stay will feel like before they commit, and hotel staff who keep room inventory and reservations accurate.
The audience is two-fold and lives inside one visual world:
The app is deliberately limited to six pages: Home, Rooms, Room Details, Booking, My Bookings, and Admin Dashboard. No additional pages, modules, or adjacent capabilities are in scope.
StayNest is a web application with a custom first-party UI, a shared backend, and durable application-owned state. Guests can browse Home, Rooms, and Room Details anonymously. Booking and My Bookings require an established guest identity so that a reservation remains bound to the correct traveller and can be resumed, viewed, and cancelled. The Admin Dashboard requires an invited or provisioned Hotel Administrator identity.
Current delivery covers:
Narrow exclusions: no pages beyond the six named; no payment processing, no loyalty program, no messaging, no reviews, no multi-property management, no dark mode, and no blue/indigo primary styling.
StayNest is delivered as a first-party web application. The application owns its identity: a guest establishes a StayNest identity on first use and verifies it on return; a Hotel Administrator is invited or provisioned by the hotel and verifies on return. Browsing Home, Rooms, and Room Details is anonymous and requires no identity. Booking and My Bookings are protected because a reservation is a durable commitment that must remain bound to the correct guest and be resumable. The Admin Dashboard is protected because room and booking management changes shared product state.
The anonymous entry interaction that establishes guest access is embedded in the Booking page's entry context: a guest who is not yet verified is asked to establish or verify identity before protected booking state becomes available. The Admin Dashboard's protected state remains unavailable until Hotel Administrator identity is established through invitation or provisioning.
Everything described in this document is current. No future-horizon features are accepted.
Not applicable. No reference directive in this project declares content_source.
Each requirement is a distinct story point with provenance, lifecycle facts, and observable acceptance.
FR-1 — Browse featured rooms and hotel highlights (Home) As a Guest, I should see featured rooms and hotel highlights on Home so that I can get a first impression of StayNest.
FR-2 — Browse available rooms with filters (Rooms) As a Guest, I should see available rooms with filters on Rooms so that I can narrow down rooms that suit my stay.
FR-3 — Review photos, amenities, and pricing (Room Details) As a Guest, I should see photos, amenities, and pricing on Room Details so that I can decide whether the room is right for me.
FR-4 — Establish guest identity on first use As a Guest, I should be able to establish my StayNest identity on first use so that my booking remains bound to me and can be resumed.
FR-5 — Verify returning guest identity As a Guest, I should be able to verify my identity on return so that I can access my bookings.
FR-6 — Choose dates and enter guest details (Booking) As a Guest, I should be able to choose dates and enter guest details on Booking so that I can complete a reservation.
FR-7 — View bookings (My Bookings) As a Guest, I should be able to view my bookings on My Bookings so that I can see what I have reserved.
FR-8 — Cancel a booking (My Bookings) As a Guest, I should be able to cancel a booking on My Bookings so that I am not committed to a stay I no longer want.
FR-9 — Invite or provision a Hotel Administrator As a Hotel Administrator, I should be invited or provisioned before accessing the Admin Dashboard so that only hotel staff can manage rooms and bookings.
FR-10 — Verify returning Hotel Administrator identity As a Hotel Administrator, I should be able to verify my identity on return so that I can access the Admin Dashboard.
FR-11 — Manage rooms (Admin Dashboard) As a Hotel Administrator, I should be able to manage rooms on the Admin Dashboard so that inventory stays accurate and guests can browse and book reliably.
FR-12 — Manage bookings (Admin Dashboard) As a Hotel Administrator, I should be able to manage bookings on the Admin Dashboard so that reservations stay accurate.
The creative direction is authoritative for this section. Muse: Karim Rashid. Headline: Sensual pop minimalism — glossy candy curves for a hotel that feels like a holiday.
| Role | Hex | Usage |
|---|---|---|
| Background | #FFF3F6 | Warm pink-tinted white ground; never a plain white SaaS canvas |
| Surface | #FFFFFF | Pure white cards floating on the ground |
| Text | #1B0F2B | Deep plum-black; keeps the candy world from turning clinical |
| Primary | #FF4D9D | Bubblegum pink — nav mark, primary buttons, price numerals, active filter capsules, booking summary bar |
| Accent | #C6F24E | Lime — signal only: 'available', confirmed booking, savings badge, focus ring; never a large field |
| Muted | #8A7C93 | Metadata only — amenity labels, timestamps, helper text; never prices or headings |
Occasional full-bleed colour blocks: a lime band for the 'best rate' strip and a pink band for the booking confirmation, so the page is composed of colour fields, not just cards.
Blobs and capsules everywhere. Cards have 28–36px radii with a 4px offset glossy highlight along the top edge (a soft white inner stroke, not a shadow). Buttons are full capsules; primary buttons carry a moving specular sheen on hover. Section boundaries are curved — a wave or single large arc — rather than straight rules. Filter chips are pills that inflate on selection. The date-range picker is one continuous rounded lozenge with two circular handles. Progress in the booking flow is a chain of overlapping circles, not a bar. Nothing in the UI has a 0px corner except the thin lime divider inside tables.
Glossy 3D blobs and rounded primitives in pink, lime and orange used as decorative anchors — a single large blob behind the hero headline, small glossy spheres as bullet markers, a capsule-shaped 3D pill as the 'available now' badge. Room photography is real but art-directed: bright, high-key interiors with rounded furniture, saturated textiles, generous crops that bleed off card edges. No stock-photo people shaking hands. Amenity icons are drawn as soft rounded pictograms with a single 3px stroke and rounded caps — a blob-shaped bathtub, a circular pillow, a wavy pool. The Admin Dashboard uses the same glossy primitives for empty states and loading.
#2563EB, #4F46E5 or #7C3AED anywhere.The Candy Field Hero. Home's first screen is a full-bleed candy field, not a centred headline-plus-button. A large pink blob (#FF4D9D) fills the right two-thirds of the viewport and bleeds off the right and bottom edges, with its border-radius softly deforming as the page scrolls. The wordmark "StayNest" sits top-left as rounded Comfortaa at 24px, and a lime capsule nav ("Rooms · My Bookings · Sign in") floats top-right. The headline — "Sleep somewhere that feels like a holiday" — is set in Comfortaa 700 at clamp(44px, 9vw, 104px), left-aligned, occupying the left 7 of 12 columns, and it deliberately overlaps the pink blob's edge by one line so type and colour field collide. Beneath the headline, a single white capsule search bar (destination, dates, guests, one pink circular search button) sits at 60% width, not centred. A glossy 3D lime sphere about 120px across rests on the blob's upper curve as the only dimensional object. No gradient blob, no centred stack, no blue button anywhere.
This concept recomposes only accepted content, states, and controls: the hero, the wordmark, the nav, the search bar, the featured rooms row, and the hotel highlights. It introduces no new behaviour, page, or destination.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
#FF4D9D) filling the right two-thirds of the viewport, with the glossy 3D lime sphere resting on its upper curve.font-size: clamp(...) with its mobile size) to fit, and no other element may cover any part of them. Provenance: explicit (creative direction). Rationale: accessibility and legibility across viewports.prefers-reduced-motion, the app must provide a usable static arrangement: wrap items into rows or allow horizontal scrolling so each item can be brought fully into view. Provenance: explicit (creative direction). Rationale: accessibility.#2563EB, #4F46E5, or #7C3AED anywhere. Provenance: explicit (creative direction). Rationale: the palette is pink, lime, and plum-black on a warm pink-white ground.custom_ui: true and the accepted page contract. Rationale: the six pages require a custom UI with the specified candy grammar.requires_backend_integration: true. Rationale: durable state, identity continuity, and room/booking management require server-side behavior.durable_state_required: true. Rationale: bookings must persist across sessions.
Hotel StayNest
2 guests · rooms from €142 a night
Explore bright rooms, thoughtful amenities and nightly prices before you choose your stay.
Browse rooms, pick your dates and bring your booking with you — review or cancel a reservation any time from My Bookings.

Hotel StayNest
2 guests · rooms from €142 a night
Explore bright rooms, thoughtful amenities and nightly prices before you choose your stay.
Browse rooms, pick your dates and bring your booking with you — review or cancel a reservation any time from My Bookings.
No comments yet. Be the first!