Skip to content

About

Multilingual direct-booking platform for three Menton beachfront/beachside apartments, with localized stay guides, Riviera events, weather, map-based trip planning, and a secure booking request flow (EN/FR/IT/UK)

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

691 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Azur Menton

CI

Multilingual direct-booking and local travel site for three Menton apartments. English, French, Italian and Ukrainian; Next.js App Router, React, TypeScript and Tailwind CSS.

Live site · Apartments · Guides · Events

Azur Menton apartment terrace

What Is Live

  • Apartment pages, public-safe guest guides, read-only availability previews and personally confirmed booking requests.
  • Linked guides, places and Riviera events, with an interactive map and multilingual Pagefind search.
  • Event filters, list/month calendar, verified-session calendar downloads and manually moderated suggestions/corrections.
  • Device-only My trip and favourites: saved routes, personal day plans, optional child ages, cautious access warnings and external navigation.
  • Weather, sea, clocks, exchange rates, transport, airport boards and radio tools; seasonal home selections and approved weekly editorial editions.

Availability is guidance, not a reservation. Shared favourites contain content IDs, not private trip details. Public guest guides never contain access codes. Subscription-interest forms collect editorial requests only: no newsletter is being sent. Telegram verification remains postponed.

Start Locally

Manual guide and illustration publication without an application rebuild: Blob publication runbook. Source packages, validation, explicit approval and rollback remain required.

Node.js 20.9+ is required; use Node.js 22 to match the main CI job. Python 3 is needed only for Word intake.

npm ci
npm run dev

Open http://localhost:3000 (redirects to /en). For optional services, use the documented keys in .env.example in an untracked .env.local. Never commit credentials, real calendar feeds, guest data or private operational reports.

Check And Release

npm run release:check
# Restricted local build environments may need:
npm run release:check -- --webpack

This checks native dependency metadata, dependency security (including development tools, moderate and above), documentation, lint, types, unit tests, content/SEO preflight, images, production build, browser tests and post-build CSP/cache rules. Results and logs stay under ignored build/release/. It does not publish, send mail, create tags or change bookings. The production browser test server uses port 3100; stop any existing server there first. See dependency maintenance for the temporary ESLint/minimatch compatibility bridge.

Individual checks remain available: npm run docs:check, npm run lint, npm run typecheck, npm test, npm run preflight, npm run images:check, npm run build, npm run test:e2e, npm run preflight:postbuild.

Follow the release checklist and deployment runbook. Local checks, GitHub CI, the deployed commit and public behavior are separate evidence. See CHANGELOG.md for release history.

Publish Content Manually

For ordinary guide publication, use content/guide-publications/<slug>/: metadata.json, four locale Markdown files and sources.md. The same-origin publisher sends the reviewed package and cover to azurmenton.com; the server writes Blob. Catalogue, search overlay, sitemap and reciprocal links read the same active version. No local access to vercel.com or application rebuild is required. Source review, owner approval, guarded activation and public acceptance remain mandatory. Later illustrations and rollback use the same lane. See the Blob publication runbook.

Build-backed guides remain supported under src/content/guide-packages/<slug>/ with npm run guide:package and normal release checks. Both formats derive registration and reciprocal links automatically; do not hand-edit multiple registries. The following legacy workflow is useful for Word intake and build-backed content, not required for every runtime publication.

npm run guide:workflow -- prepare --from /absolute/guide.docx --cover /absolute/cover.png
# Review facts/links, prepare four translations and insert reviewed canonical content.
npm run guide:workflow -- verify --slug <intake-slug>
# After separately approved merge/deployment, verify the public pages without writes:
npm run guide:browser -- --slug <intake-slug> --public
# Later, add the owner's illustrations without replacing existing images:
npm run guide:workflow -- assets --slug <intake-slug> --assets-dir /absolute/images

Word, Markdown and plain text are supported. verify synchronizes the local plan from the inserted guide, retains its original snapshot, runs all existing checks with the normal bundler and checks four languages/images/tables in an owned local browser server. Identical-input receipts are reused; --webpack is an explicit fallback only. Use bundle for pre-insertion editorial planning, not repeatedly after canonical insertion. Guide selection, translation, review and publication remain manual. New-place placeholders require an explicit owner illustration request. Original sources are retained until verified publication. guide:runtime-trial is a loopback-only experiment, not a production content store.

The guide catalogue also supports author-provided book recommendations: separate promotional artwork and actual cover, explicit language/format links, independent French editorial copy where supplied, and native spoiler-safe solution disclosures excluded from ordinary search text. Fictional settings are never imported as real places.

Guide workflow · Content rules · Event workflow · Editorial registry

Useful editorial reports: npm run content:report, npm run events:review, npm run editorial:report, npm run guides:verify, npm run seo:priorities. Reports do not constitute approval or publication. Do not ingest, publish, send messages or modify live settings without the corresponding authorization.

Where Things Live

  • src/app/[locale]/: localized public routes; src/app/api/: server endpoints.
  • src/content/: canonical apartment, guide, place, event and editorial data; src/content/guide-data/: legacy long-form sources; src/content/guide-packages/: declarative guide sources with generated registration.
  • src/components/ and src/lib/: shared UI, booking, availability, search, planning and validation.
  • scripts/: editorial and release tools; tests/unit/ and tests/e2e/: regression coverage.
  • public/images/: approved media and generated derivatives; generated Pagefind output and local evidence are not tracked.

Documentation And Boundaries

Use the documentation index to select the relevant runbook instead of loading every historical audit. Read AGENTS.md before edits and product context before changing conversion claims, SEO or booking analytics. ROADMAP tracks outcomes, not automatic publication authority.

Booking delivery uses Resend; previews use server-only iCal feeds. Analytics uses aggregate non-PII context. Source-backed hours, prices, dates and accessibility rules can become stale: unknown remains unknown. Base Pagefind search rebuilds with the site; active Blob guides use a current lexical overlay. Search does not yet correct spelling mistakes.

See contribution guidance, security reporting, license and content/brand exclusions. Application code is MIT; editorial content, illustrations, photographs, apartment facts, guest data and branding are not automatically covered by that grant.

ABVX ecosystem

  • AGENTS.md_generator — Keeps repository guidance and machine-readable context current. Current release: v0.5.1.
  • abvx-shortener — Uses stable short links for public campaigns and QR destinations. Current release: v0.4.0.
  • abvx-agent-skills — Uses shared, reviewable agent capabilities during maintenance. Current release: v0.16.1.

This block is generated from the reviewed ABVX ecosystem registry.

About

Multilingual direct-booking platform for three Menton beachfront/beachside apartments, with localized stay guides, Riviera events, weather, map-based trip planning, and a secure booking request flow (EN/FR/IT/UK)

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages