Yuvaraj Vodiboina
All work
(09)Case studyClient website

Kalpa Corporate Artz

A gallery site for a company that makes museum-quality reproductions of India’s master painters, from Figma to Next.js on Cloudflare.

Platform
Client website
When
Sep to Nov 2025
Role
Sole developer
Status
Live
(01)

The problem

Kalpa Corporate Artz makes certified reproductions of works by painters like Raja Ravi Varma and the Roerichs, with real clients and real work, but had no website, so there was nothing to send a prospective client.

(02)

What I built

I was the only person on it, starting from a brief, some brand material and a domain name. I designed it in Figma, then built it in Next.js, mobile-first, with compressed, lazy-loaded images: paintings by artist and by style, from brass art to abstract and traditional pieces, pages for the artists, corporate gifting and custom portraits, and a guided booking flow for a consultation.

GitHub Actions deploys it to Cloudflare, which also handles the DNS.

Hard partTurning loose brand ideas into a design the client would sign off, then owning every step to launch.

(03)

Under the hood

  1. 01FigmaLayout and brand
  2. 02Next.jsPages and components
  3. 03GitHub ActionsBuilds and deploys
  4. 04CloudflareEdge hosting and DNS
(04)

Decisions

  1. 01

    React, with Next.js, instead of plain HTML

    Navigation, footer and cards are reused across pages, and the mobile menu needs state.

    Trade-offA build step, for what is mostly a showcase.

  2. 02

    Cloudflare instead of a server of its own

    CI/CD, edge hosting and DNS, with no server to look after.

    Trade-offLess control of the server, which the site didn’t need.

(05)

A bug I remember

A menu that wouldn’t close

What it did
On phones, tapping outside the open menu didn’t close it.
Why
An element inside the navigation was swallowing the event with stopPropagation, so taps on the overlay never reached the handler.
The fix
One pointerdown listener on the document closes the menu whenever a tap lands outside the navigation, and the stray stopPropagation went.
(06)

What I tried first

  • A server-rendered site

    With no logins, no backend and content that rarely changes, a server runtime would have doubled the deploy work for nothing a visitor would see.

  • A headless CMS

    Scoped out with the client: the content changes a few times a year at most, and a CMS would have added weeks to solve a problem that didn’t exist yet.

(07)

What I learned

  • Get written sign-off at the end of each phase before starting the next.
  • On image-heavy sites, WebP, compression and lazy loading are the biggest performance wins.
(08)

Timeline

  1. Designed and built

    From the brief and a Figma file to production.

  2. Online

    Paintings by style, the artists, and a guided booking flow for a consultation.

(09)

Built with

Next.jsReactFigmaGitHub ActionsCloudflare

Next10 of 16Chrome extension CSS ClassHighlighter
A CSS workbench on the page you’re building: inspect an element, follow its classes, compare styles and explore design tokens.Read the case study