Case Study

Lake Como Style Case Study

A recruiter-friendly breakdown of how I translated a cinematic event brand into a production booking site with a structured Sanity content model, smooth motion, and operational email flows.

Role: Freelance DeveloperClient: International (Italy)2025

Problem

What had to be solved before the UI mattered

The site needed to feel premium enough for a luxury events brand while still giving the client a practical way to update editorial content, venue details, and booking information without relying on developer edits after launch.

Timeline

How the project moved from scope to delivery

Discovery

2025-Q1

Defined the content and booking scope before styling the experience

I started by framing how the booking flow, editorial sections, and client-managed content needed to work together so the frontend architecture followed actual operational needs.

Evidence / Result

The existing project timeline and repository structure both point to content workflow and booking support as first-class concerns.

Architecture

Content modeling

Structured the platform around Sanity-backed publishing

Instead of hard-coding a luxury marketing site, I modeled the content so updates to narrative sections, venue details, and event information could evolve through the CMS.

Evidence / Result

The repository README documents a Sanity-based setup with 11+ custom schema types.

Implementation

Frontend and delivery

Built the Next.js 16 frontend and layered motion selectively

I used the modern Next.js and React stack for the main shell, then applied Framer Motion and Lenis where they supported the pacing of the experience rather than overwhelming it.

Evidence / Result

The repo includes Next.js 16, React 19, Framer Motion, Lenis, and a SmoothScroll provider.

Launch

Operational polish

Closed the loop with booking-related email handling

The site shipped with the communication layer in place, so inquiries could trigger an actual response workflow rather than stopping at form submission.

Evidence / Result

The repository exposes a send-email API route using Nodemailer.

Key Decisions

Tradeoffs that shaped the build

Use a headless CMS instead of hard-coded event content

A premium event site changes often: venues, editorial copy, event details, and booking-related content all move faster than a static portfolio-style frontend usually can.

Keep the site mostly static and update content in codeUse a lightweight JSON-driven setupModel the content in Sanity
Decision

I structured the project around Sanity so content changes could be made through an editorial workflow rather than through repeated code edits.

Tradeoff: The content model and frontend queries took more upfront design work than a simpler static build.

Impact: The README-backed schema strategy made the site easier to evolve once the presentation layer was already live.

Treat motion as a system constraint, not decoration

The brand needed cinematic movement, but the site still had to remain readable and responsive across devices.

Use large motion set pieces across every sectionKeep the interface mostly staticApply Framer Motion and Lenis only where they improved pacing and transitions
Decision

I kept the motion identity, but reserved it for areas where it improved perceived quality without obscuring the content model.

Tradeoff: That meant turning down some visual spectacle to keep the experience stable and legible.

Impact: The final UI stayed premium without making animation the only source of differentiation.

Include booking-response email handling in the core delivery

A visually strong event site still fails operationally if booking inquiries disappear into a passive form inbox.

Ship the marketing site first and add email laterDelegate responses entirely to third-party toolingOwn the transactional email path inside the project
Decision

I implemented the outbound booking confirmation path with Nodemailer during the main build.

Tradeoff: Email handling added backend responsibility to what could have been treated as a purely presentational site.

Impact: The delivered product covered both the public brand layer and the immediate communication workflow.

Architecture

The system decisions behind the product surface

The project uses Next.js 16 with React 19 and TypeScript as the application shell, with Sanity as the content backend for structured publishing.

Interactive motion is layered in selectively through Framer Motion and Lenis so the cinematic identity supports the content instead of fighting it.

Operational workflows such as contact or booking email responses are handled in the application layer with Nodemailer, which keeps the client-facing experience and the back-office response path in one system.

Results

The finished project demonstrates a credible combination of premium presentation and operational readiness: a modern Next.js frontend, a structured Sanity publishing workflow, and an integrated booking-response path.

Takeaways and Next Moves

This project shows that I can turn an aesthetic brief into a production system, not just a beautiful landing page: content architecture, motion discipline, and operational email handling were all part of the delivery.

Lessons Learned

  • Cinematic interfaces work best when the content model is stable first.
  • Luxury presentation still needs operational clarity underneath it, especially when a site is expected to convert interest into real inquiries.

Next Improvements

  • Expand the case-study evidence with deeper editorial workflow examples from the Sanity schemas.
  • Add more explicit instrumentation around booking-flow outcomes if the client ever wants operational reporting.
AnkurOS·v0.134.7ready·--:--:--

Full-stack software engineer portfolio · Initialising

-- projects · -- certificates · -- blog posts

Loading0%
Loading AnkurOS