Holibob Docs

Configuration

Environment variables, deployment, and development setup for Manage My Booking.

Environment variables

VariableDescriptionDefault
NEXT_PUBLIC_STAGEDeployment stage (production, preview, development)
NEXT_PUBLIC_GRAPHQL_API_URLGraphQL API endpointhttp://localhost:8082/graphql

The GraphQL endpoint is determined by the stage:

StageAPI URL
Productionhttps://api.production.holibob.tech/graphql
Previewhttps://{stage}.api.preview.staging.holibob.tech/graphql
Developmenthttp://localhost:8082/graphql

API headers

Every GraphQL request includes the following headers:

HeaderValue
x-holibob-applicationMANAGE_MY_BOOKING
x-holibob-languageLanguage code from booking (e.g. en)
x-holibob-currencyCurrency code from booking (e.g. GBP)
ssrOriginhttps://demo.booking.holibob.tech

Development

Prerequisites

  • Node.js 22.x
  • pnpm

Setup

# From the monorepo root
pnpm install

# Start the development server (port 3006)
cd apps/manage-my-booking-site
pnpm dev

Available scripts

ScriptDescription
pnpm devStart development server on port 3006
pnpm buildBuild the Next.js application
pnpm startStart production server
pnpm tscRun TypeScript type checking
pnpm lintRun ESLint

Deployment

The application is deployed using SST (Serverless Stack) to AWS:

  • CloudFront — CDN for content delivery
  • Lambda@Edge — Server-side rendering
  • S3 — Static asset storage
  • Route 53 — DNS management
  • ACM — SSL certificates

Deploy commands

CommandDescription
pnpm deploy:productionDeploy to production
pnpm deploy:previewDeploy to preview environment
pnpm destroy:previewRemove preview deployment

Image configuration

Remote images are restricted to images.holibob.tech to prevent loading from arbitrary sources.

CORS

The application sets permissive CORS headers for all routes:

  • Allowed origins: *
  • Allowed methods: GET, POST, PUT, DELETE, OPTIONS
  • Allowed headers: Content-Type, Authorization