03 / 24Next →
Mindful travel & retreat platform2025

Magga

A cinematic travel platform presenting Sri Lanka and the Maldives through mindfulness, culture, nature and curated retreats, with a blog, newsletter and enquiry backend.

ContextWeb Developer, Majestic Pride Lanka
Year2025
TypeWeb
StatusLive
RoleFull-stack web development

Project media coming soon

Screenshots and demo videos for this case study will appear here.

Overview

Magga uses editorial storytelling and motion to present travel as a restorative journey. Fifteen pages cover destinations, heritage, history, culture, nature, wellness and mindfulness, along with a 360° collection gallery, itineraries, a blog and direct enquiry routes.

ReactViteTailwind CSSFramer MotionNode.jsExpressMongoDBNodemailer
Challenge

The design relied on high-resolution imagery, video and layered animation. The site still needed responsive navigation, editable blog content, dependable lead capture and simple hosting.

Approach

I built the frontend with React 19, Vite, Tailwind CSS 4 and Framer Motion, composed from reusable story, gallery, carousel and itinerary sections. An Express 5 and Mongoose backend handles blog posts, newsletter subscriptions and contact messages, and sends notification email through Nodemailer.

Outcome

The live site gives the brand a distinctive visual identity while keeping publishing and enquiry workflows running behind it.

System architecture
01ClientReact 19 · Vite · Tailwind CSS 4 · Framer Motion · Swiper

15 routed pages built from 25+ reusable sections, including the 360° collection grid, itinerary rails, video sections and image-grid layouts.

02APIExpress 5 · Mongoose

Separate route, controller and model files for blogs, newsletter and messages, plus a seed script for the initial posts.

03DeploymentSingle Node service

In production, Express serves the built Vite bundle with an SPA fallback, so the site and API ship as one process from one build command.

Engineering decisions
01

One process for site and API

The root build script installs and builds the frontend, and Express serves frontend/dist alongside the API in production. That means one deployable, one origin and simple hosting for a content-led site.

02

Let the database catch duplicates

Newsletter emails are a unique index in MongoDB, so duplicate signups are rejected at the database layer rather than relying on a check-then-insert in application code.

What I built
01Immersive destination, culture, heritage, history, nature and wellness storytelling
02Responsive galleries, Swiper carousels, video sections and scroll-led motion
03Blog publishing with a dedicated editing view
04Contact and newsletter APIs with MongoDB persistence and email delivery
Next projectLumiere →