Last Day Trip

A tour company's site for Bangladesh, rebuilt from a browser-rendered React app into one full-stack Next.js app that search engines can read and the team can run from its own admin.

Type
Travel booking platform
Company
AlgoVerse LTD, client project
Role
Full-stack developer
Stack
Next.js, React, TypeScript, Tailwind CSS, MongoDB, Redis, S3-compatible storage, Docker, Nginx
Visit lastdaytrip.com
Last Day Trip home page: a jungle river photo with the heading Bangladesh, Up Close and a destination search box

The brief

Last Day Trip sells private and group tours across Bangladesh. Visitors browse destinations, tours, activities and travel stories, then send a booking request that the team follows up.

The first version was a React single-page app with a separate API. Pages were assembled in the browser after loading, which is a weak start for a business that depends on people finding tours through search. The client also wanted SEO tools they could manage themselves.

What I built

First version

  • Built or redesigned the tours, country, tour details, things-to-do, story and about pages.
  • Made the home page responsive and split it into reusable section and card components.
  • Helped set up the Docker deployment and an automated deploy, and fixed how uploaded images were served.

Next.js rebuild

  • Rebuilt the public site with the Next.js App Router and server components, so every catalogue page arrives as finished HTML.
  • Moved the API inside the Next.js app, so the site runs as one app with one deploy.
  • Moved most of the codebase to TypeScript.
  • Replaced the booking popup with a full-page request flow: trip options, travellers and rooms, a live price estimate and a clear note that no payment is taken yet.
  • Built an SEO admin: per-page metadata, redirects, sitemaps, robots.txt and structured data.

Key decisions

One app instead of two

The separate API moved inside the Next.js app. The frontend kept its API calls unchanged, and server-rendered pages call the business logic directly instead of making a network request to a second server.

Cache public pages, refresh them on save

Catalogue pages are cached. When staff publish a change, the affected pages refresh right away instead of waiting for a timer. Login, booking and account pages are never cached as shared content.

One source of truth for SEO

The SEO workspace in the admin and the SEO section inside each content editor read and write the same records, so there is no second SEO system to drift out of sync.

Send images at the size they are shown

Cards were downloading photos far larger than the space they filled. Sizing each image to its slot and serving modern formats made photo downloads much smaller.

Next case studyBikalpo To-Let