DragonLair

Book rooms. Not headaches.

Full-stack hotel booking platform. Reservation engine, admin dashboard, and security hardening: built for hospitality businesses.

Request a demoSecurity report
33
Pages
19
API routes
15
DB models

Booking

Booking experience

Booking experience

Guided reservation flow with real-time availability and activity add-ons.

1 / 06

Multi-Step Booking Wizard

Guided reservation flow: dates, room selection, activities, review & confirm. Real-time availability checks.

2 / 06

Room Management

Full CRUD with categories, pricing, capacity, amenities, image galleries. Slug-based detail pages.

3 / 06

Activity Booking

Safari, spa, dining, water sports, tied to reservations with participant tracking.

4 / 06

Dynamic Pricing

Per-night rates, seasonal adjustments, activity add-ons. Automatic total calculation with tax.

5 / 06

Real-Time Availability

Transactional availability checks prevent double-booking. Race condition protection with database-level locking.

6 / 06

Guest Communication

Contact system with message management. HTML email templates with booking confirmations.

Dashboard

Complete operations center

Everything your hotel staff needs in one place.

1 / 06

Analytics Dashboard

Revenue tracking, occupancy rates, booking trends, and guest demographics.

2 / 06

User Management

Role-based access. Guest accounts, staff roles, admin privileges. Account lockout protection.

3 / 06

Room Operations

Create, edit, toggle availability, manage images and amenities. Bulk operations.

4 / 06

Booking Management

View, confirm, cancel reservations. Status workflow with audit trail.

5 / 06

Message Center

Guest inquiries with read/unread status, reply tracking, and archive.

6 / 06

Audit Logging

Activity trail, who did what, when, from where. Useful for compliance and debugging.

Design

Visual language

Custom design system with warm tones and elegant typography.

TypographyCormorant Garamond + Inter + Lora
Primary PaletteGold 50–900, Midnight 50–900
AccentsIvory, Champagne, Sage, Forest, Espresso
AnimationsFade, Slide, Scale, Shimmer, Reveal
EffectsGlass morphism, Film grain, Parallax
ShadowsLuxury, Luxury-LG, Luxury-XL, Gold glow
Security

Security hardening

Thoroughly tested and hardened against common web vulnerabilities.

1 / 06

JWT + HttpOnly Cookies

No tokens in localStorage. Secure, SameSite=Strict cookies with session management.

2 / 06

3-Layer Rate Limiting

Per-IP, per-user, and global rate limits. Database-backed with configurable windows.

3 / 06

CSP + Security Headers

Content Security Policy, HSTS, X-Frame-Options DENY, X-Content-Type-Options. Zero unsafe-eval in production.

4 / 06

Input Sanitization

Zod v4 validation on every endpoint. XSS prevention with HTML escaping on all user data.

5 / 06

CSRF Protection

Origin validation on all state-changing requests. SameSite cookie policy.

6 / 06

Account Security

bcrypt (12 rounds), account lockout after 5 failures, 30-minute cooldown, IP-based tracking.

Tech stack

Built with

Next.js 14App Router
TypeScriptStrict mode
Prisma 515 models
Tailwind CSSCustom design system
ZustandState management
Mobile-FirstResponsive
Architecture

System overview

architecture
┌─────────────────────────────────────────────────┐
│  DRAGONLAIR: System Architecture               │
├─────────────────────────────────────────────────┤
│                                                 │
│  ┌─── Frontend (Next.js 14 App Router) ───────┐ │
│  │  • Luxury Design System (Gold/Midnight)    │ │
│  │  • 14 Static Pages (SSG)                   │ │
│  │  • Multi-step Booking Wizard               │ │
│  │  • Masonry Gallery + Lightbox              │ │
│  │  • Admin Dashboard (6 views)               │ │
│  │  • Zustand Auth State                      │ │
│  └────────────────────────────────────────────┘ │
│                    ↕ API                        │
│  ┌─── Backend (19 API Routes) ────────────────┐ │
│  │  • Auth: Register, Login, Logout, Me       │ │
│  │  • Rooms: List, Detail, CRUD               │ │
│  │  • Bookings: Create, Read, Update          │ │
│  │  • Activities, Gallery, Reviews, Contact   │ │
│  │  • Admin: Dashboard, Users, Audit          │ │
│  └────────────────────────────────────────────┘ │
│                    ↕ ORM                        │
│  ┌─── Data Layer (Prisma 5) ──────────────────┐ │
│  │  15 Models: User, Room, Booking, Activity, │ │
│  │  Session, RateLimit, AuditLog, Review,     │ │
│  │  ContactMessage, GalleryImage, Setting...  │ │
│  └────────────────────────────────────────────┘ │
│                                                 │
│  ┌─── Security Layer ─────────────────────────┐ │
│  │  Middleware: CSP, HSTS, CORS               │ │
│  │  Auth: JWT + HttpOnly + Session Mgmt       │ │
│  │  Defense: Rate Limit + Lockout + Audit     │ │
│  │  Validation: Zod v4 + HTML Escape          │ │
│  └────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘

Ask about DragonLair for your property

Email ryan@ghosts.lk or message +94 71 055 5055 on WhatsApp. Ryan replies within 24 hours. Working hours are Monday to Friday, 09:00 to 18:00 Colombo time (UTC+5:30).