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
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.
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.
Under the hood
- 01FigmaLayout and brand
- 02Next.jsPages and components
- 03GitHub ActionsBuilds and deploys
- 04CloudflareEdge hosting and DNS
Decisions
- 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.
- 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.
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
pointerdownlistener on the document closes the menu whenever a tap lands outside the navigation, and the straystopPropagationwent.
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.
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.
Timeline
Designed and built
From the brief and a Figma file to production.
Online
Paintings by style, the artists, and a guided booking flow for a consultation.
Built with
Next.jsReactFigmaGitHub ActionsCloudflare

