Full-Stack · Travel PlatformLaravel · Next.js · Postgres

A travel-management platform for a tour operator that books flights, stays, and full itineraries in one place. I built it full-stack: a Laravel, Postgres, and Redis back end behind a Next.js and Tailwind front end, all containerised with Docker. Figma design with Hamail Hassan.

Travara travel-management landing page

Client
TravaraTravel-management brand
Year
2025Built & delivered
Role
EngineerFull-stack development
Stack
Laravel · NextPostgres · Redis · Docker
Status
ShippedDelivered to client

Travara is a travel-management brand that books trips end to end: flights, stays, schedules, and the support around them. Coordinating that breadth usually means a stack of disconnected tools and a spreadsheet quietly holding them together.

The brief was one platform. A traveler plans and books on the front, the team behind the counter manages it from the same source of truth: curated stays, exclusive deals, live availability, no double entry and no version that only one person can see.

Hamail Hassan and I shaped the design in Figma: warm, editorial, photography-led, closer to a travel magazine than a booking engine. I built everything else, front to back.

The front end is Next.js and Tailwind with a shadcn component layer; the back end is Laravel over Postgres with Redis caching the busy reads. Every service runs in Docker, so the client can host the whole platform wherever it likes.

The Vision

Plan and book
without the tab sprawl.

Two ideas held the build together. One: a single source of truth. Availability, pricing, and bookings live in Postgres and move through real transitions, so what a traveler sees and what the team sees never drift apart.

Two: it has to feel effortless. The browsing is editorial and unhurried, but the booking underneath is quick. Redis caches the destination and package views that get hit hardest, the Laravel API stays lean, and the Next.js front end paints fast on first load.

The Product

A booking flow
that reads like a magazine.

The surface is built to make planning feel like daydreaming, not data entry. Curated destinations, handpicked stays, and clear packages carry real photography and generous space; the booking controls sit close by but never crowd the view.

Under it sits a typed Next.js app with a shadcn component layer, talking to a Laravel API over a clean contract. State stays honest end to end: a stay shown as available is available, because the front end and the database read from the same source.

Travara destination explorer
Fig. 02 · Destination explorer · 2025
The Build

All 5 screens.

01Why TravaraCurated stays, deals, support1240 × 923
02Destination explorerFive-card browse row1240 × 951
03Trust & tractionPartner story, live counters1238 × 813
04Traveler wallSocial-proof grid1240 × 508
05Closing & footerFinal CTA, sitemap1340 × 914
Architecture

Under the
hood.

Behind the screens, Travara is a full-stack platform I built and containerised end to end: a typed Next.js client, a Laravel REST API, and a Postgres core with Redis in front, all running in Docker so the client can host it anywhere.

Client
  • Next.js
  • Tailwind
  • shadcn

Server-rendered React with a shadcn component layer, typed end to end and talking to the API over a clean REST contract.

API
  • Laravel
  • PHP
  • REST

A Laravel back end handling auth, bookings, and the business rules around availability and pricing, exposed as versioned REST endpoints.

Data
  • PostgreSQL
  • Redis

Postgres holds destinations, packages, stays, and bookings as the single source of truth. Redis caches the read-heavy browse and availability views.

Runtime
  • Docker
  • Nginx

Every service in its own container behind Nginx, so the whole platform deploys as a unit and the client can self-host wherever it likes.

4Layersclient to runtime
2Data storesPostgres + Redis
100%Containerisedevery service in Docker
1Engineerfront end to infra
Colophon

Made with a small circle.

Engineering
Mohed Abbas
Full stack · FE, API, DB, infra
Design
Hamail Hassan
Figma · UI
About M.A

Mohed Abbas is a full-stack web engineer. He builds web products end to end: interfaces in React and Next, APIs and services in Laravel and Node, and the Postgres, Redis, and Docker plumbing that keeps them running.

Travara was a full-stack client build: a Figma design with Hamail Hassan, a Laravel and Postgres back end, a Next.js front end, and a Dockerised runtime the client owns. Currently open to full-time roles and freelance builds.

All workBack home