Public Pages Specification
Status: Canonical Last Updated: 2026-05-11 Source:
apps/frontend/app/[locale]/(landing)/
Related specs
- Tech Stack — Frontend routing structure
- Booking Flow — Shows link to booking flow
- Inquiry Forms — Inquiry pages within public pages
- Gamification — Wall page for photo submissions
- User Stories — US-G01 through US-G04 cover guest browsing
Route Structure
[locale]/(landing)/ ├── page.tsx # Homepage ├── about/ ├── artists/ ├── schedule/ ├── reviews/ ├── wall/ ├── experiences/ │ ├── french-mentalist/ │ ├── dinner-theater/ │ └── our-evening/ └── inquiry/ ├── contact/ ├── venue-rental/ ├── workshops/ ├── private-events/ ├── artist-proposal/ └── host-an-event/
Homepage (/)
Sections (top to bottom)
- Hero — Full-width video/image with headline, CTA
- Upcoming Experiences Carousel — Next 5-8 events across all shows
- Experience Schedule — Calendar/list of upcoming shows
- Why House of Legends — Bento grid features
- Services — What we offer
- Community/Wall — Photo wall preview
- Reviews — Google reviews section
- Contact Form — Quick contact
- Partner Logos — Social proof
- Footer — Links, social, contact
Upcoming Experiences Carousel
- Auto-plays every 6 seconds, pauses on hover
- Touch swipe on mobile
- Each card shows: hero image, show title, date/time, availability badge, price "From X VND"
- Click → navigate to show page (NOT booking)
Show/Experience Pages (/experiences/[slug])
Each experience has:
- Hero — Embedded video (autoplay muted) or image
- Title + Tagline
- "See dates" button — smooth scroll to occurrences
- Description — Rich text storytelling
- Photo gallery — Carousel or masonry
- What to expect — Duration, language, atmosphere
- Artists — If relevant
- UPCOMING DATES — The key conversion zone
Upcoming Dates Section
Vertical list, each row: Friday May 2 7:30 PM ● 12 seats left [Book Now] Saturday May 3 7:30 PM ● Available [Book Now] Friday May 9 7:30 PM ● Few left (3) [Book Now] Saturday May 10 7:30 PM ● Sold out [—]
Badge colors:
- Green: Available (>10 seats)
- Orange: Few left (1-10 seats)
- Grey: Sold out (0 seats, button disabled)
Critical: Clicking Book → /booking/[eventId]/tickets with date/time LOCKED
Inquiry Pages
All inquiry pages use the same pattern:
- Hero section with form
- Form submitted via Convex mutation
- Success state shown inline
- Admin can view in dashboard
Admin Form Management
All inquiry submissions:
- Stored in
formSessionstable - Admin notification created in
notificationstable - Viewable in
/dashboard/inquiries
Admin can:
- Mark as READ, REPLIED, ARCHIVED
- Add follow-up notes
- See submission data and timestamps