Skip to content

Concept 02 · Maun · fictional brand

A minimal online store for a ceramics studio that doesn't exist

Maun is a fictional ceramics studio, and its online store is our study in minimal design. Every photograph is rendered from the same curves the site measures each piece by, once by daylight and once by lamplight.

Style
Minimal
Industry
D2C tableware
Format
Online store
Built with
Next.js, Tailwind CSS, Motion, three.js, Cloudflare
Launched
October 2026
Maun scrolling from its still life of five glazed pieces into “From clay to cup”, where a lump of wet clay is thrown, trimmed and fired into a kulhad in Neem glaze.
Loads the real store. Try switching the light.

The idea

Handmade tableware sells on what a photo can show: the glaze, the shape, how a piece will look on your table. Minimal suits that. Take everything else away and the page is paper and ink, and the only colour left is the glaze in the photographs.

So the photographs carry the store, and they had to be good enough to. There is no studio and nothing to shoot, so every photo is rendered from the same curve the site measures each piece by. And every piece is shown in two lights, a morning window and an evening lamp, because a glaze looks different in each and you will use it in both.

The studio is invented — the ₹490 kulhad, the five glazes, the free delivery and the seven-day returns — and the site says so in its header, its footer and its bag. The build is not. It is a static store that works on a phone, with filters you can share as a link and a bag that remembers what you add, and it is the same code we would ship for a client.

What's on the page

Seven screens, one idea.

  1. 01

    A still life that opens like a curtain

    The home page opens on one table set with a piece in each glaze. As the page loads, the photo rises into place like a curtain going up and settles from a touch closer. Phones get a closer, taller crop of the same table rather than the wide one squeezed, and the right photo is requested before the page has even laid out, in whichever light the visitor will see.

    The Maun home page in Daylight: the headline “Made slowly. Used daily.” above a still life of a black vase, a cream jug, a milky-tea plate holding a green katori, and a red-earth kulhad on pale paper.
  2. 02

    From clay to cup

    A section that stays pinned for nearly two and a half screens of scrolling. The scroll position picks a point between two of twelve rendered frames and crossfades them, so a lump of wet clay on the wheel is centred, opened, pulled, shaped, trimmed, fired, dipped and fired again into a kulhad in Neem. Each frame holds for most of its stretch and dissolves only in the middle third, because a long dissolve between two shapes reads as a double exposure. Scroll back and it plays in reverse.

    • “From clay to cup” in Lamplight at its first step, Centred: a dome of wet clay on the wheel, beside the list of nine steps.
    • Pulled: the wet clay drawn up into a ridged cylinder on the wheel.
    • Trimmed: the leather-hard kulhad off the wheel, its foot cut.
    • Fired again: the finished kulhad in green Neem glaze, its foot left bare.
  3. 03

    Two lights, one switch

    Every photograph exists twice: by a window in the morning, and under a lamp at night. Choose the other light and the store first fetches the other version of each photo on screen, waiting no more than 1.6 seconds on a slow connection, then crossfades the whole page, photos and all, in a single View Transition. Photos in the light you are not using are never downloaded until you switch.

    • The five glazes in Daylight: close-ups of Malai, Chai, Neem, Geru and Kajal, each with its Hindi name and finish.
    • The same five glazes in Lamplight, warmer and darker under the lamp.
    • “For every meal of the day” in Daylight: a kulhad, a katori, a dinner plate and a rice bowl in cream Malai glaze.
    • The same four pieces in Lamplight, on a dark ground.
  4. 04

    A shop that remembers

    Filter by piece, glaze or price and sort by price, and the choice is written into the address, so a filtered shop can be shared, bookmarked or come back to. The grid re-flows with Motion rather than jumping. Hover a photo to see the piece from above; the glaze dots under a card swap its photos to that glaze, and the card then opens the piece in the glaze you were looking at.

    The Maun shop in Daylight: filters for piece, glaze, price and sort above four product cards, the katori's showing it from above.
  5. 05

    A product page that does the sums

    The photo carries over from the grid: React's ViewTransition treats it as the same element on both pages, so it grows into place instead of the page cutting. Pick a glaze, a set of one, two or four, at 5% and 10% off, and a quantity, and the price follows. A six-digit PIN code gives a delivery date worked out in the browser: the first three digits are enough to name the state, or the city for the big ones, and then it allows a day to pack and skips Sundays. On a phone, an Add to bag bar slides up once the main button has scrolled away.

    The kulhad's page in Daylight, in red-earth Geru: a set of four selected at ₹1,764, and a delivery estimate for a Pune PIN code.
  6. 06

    Measured, then drawn

    Each piece is a single curve: its outside wall, the way a potter draws it. The site turns that curve into a full section and measures it, so the mug's 9.8 cm height, 380 ml to the brim and 350 g are worked out, not typed in. Its working drawing, elevation on the left and hatched section on the right, draws itself in from the same section, and so was the 3D piece its photographs were rendered from.

    The mug's working drawing in Daylight: the elevation with its pulled handle on the left, the hatched section on the right, dimensioned 9.8 cm tall and 8.3 cm across the rim.
  7. 07

    The same store on a phone

    On a phone the filters move into a sheet that rises from the bottom of the screen, the product photos become a strip you swipe through, and Add to bag stays in reach in a bar along the bottom once you scroll past the main button.

    The Maun shop on a phone, with the filter sheet open: piece, glaze, price and sort, and a button to show 11 pieces.
    The kulhad's working drawing on a phone, with the Add to bag bar along the bottom of the screen.

Build notes

How we built Maun.

The photographs

There is no studio and nothing to photograph, so every picture is rendered. Each piece is turned from its catalogue curve into a 3D model and path-traced with three-gpu-pathtracer, on WebGPU in headless Chrome, standing on a seamless paper sweep. Daylight is a large soft window to the left, a white card bouncing light back from the right and a pale sky above. Lamplight is one small warm lamp up to the right, a breath of fill from the left, and a dark room.

Each photo is traced to 16 or 32 samples a pixel, which is still grainy, then cleaned up on the CPU by Intel Open Image Denoise 2.5.1, guided by clean passes of the colours and surface directions underneath. It is finished with the Khronos PBR Neutral tone curve, which is made for showing products in their true colours, and a touch of dither so the backdrop never bands.

All 126 renders ran on a laptop's integrated graphics, a Ryzen 5 3450U with Vega 8, at about 40 to 50 seconds a photo at 16 samples. Building a scene costs the tracer 15 to 20 seconds, so each piece is set up once and only its glaze, light and camera change between shots.

They are published as AVIF at quality 82 with full colour detail, because WebP broke Lamplight's near-black backdrops into visible blocks. A product photo 1,080 pixels wide averages 15 KB.

The glazes

A glaze is painted onto each piece along its section — from the centre of the foot, up the outside, over the rim and down to the floor — so it can behave like glaze. It stops at a dipping line about 6 mm above the foot that wanders a little round the piece, with a thicker roll just above it and bare toasted clay below. It pools deeper on the floor and low inside, less so on a plate, whose well is too shallow; it thins and pales where it breaks over the rim; and it runs in narrow streaks down the outside.

Iron specks are placed by surface area at a real size in millimetres, so a mug and a dinner plate are flecked alike. Malai carries 2.6 a square centimetre, between 0.18 and 0.75 mm across, each with a faint halo where the iron bleeds into the glaze. Gloss and roughness are painted too, which is why Neem shines and Geru looks dry.

The clay is made to look thrown: faint spiral rings that rise one spacing per turn, a body slightly out of round, more so towards the rim, and a rim that is not quite level. The mug and the jug get a pulled handle that flares where it meets the wall, and the jug a pulled spout.

Two lights

The page colours are sampled from the photos' own backdrops, so a photo sits on the page like a print rather than a pasted rectangle.

Both versions of every photo are in the page, and CSS shows only the current light's. The other is hidden and lazy, so it is not fetched. A small script sets the light before the first paint, so there is never a flash of the wrong one, and it follows the system setting until the visitor picks. With reduced motion switched on, the switch is instant.

Clay to cup

The sequence is 24 stages of one kulhad, each drawn as a section with the same five landmarks in the same order — underside, outer wall, rim, inner wall, floor — and resampled to the same number of points, so any two stages blend point by point. That is how throwing works too: opening pushes the top of the lump down into a floor, and pulling raises the walls out of what is left.

The clay changes as it goes: wet and glossy on the wheel, matt once leather-hard, pale after the first firing, chalky once dipped. Twelve of the 24 stages are rendered, which is enough for the crossfade to read as continuous at half the render time. The last is the finished kulhad, cut from its real catalogue section and glazed in Neem exactly as the product photos are.

The store

Filters are written into the address with the browser's own history API, so changing one never loads a page, and they are read back when you arrive with a filtered link or press Back.

The bag lives in the browser's local storage and stays in step across open tabs. Checkout is switched off, and the bag says why.

Search answers as you type, from names, Hindi names, kinds of piece, glazes and what a piece is for: “dal” finds the katori, “कटोरी” finds it too, and “/” opens search from anywhere.

Keeping it fast

It is a static export: thirteen pages of plain HTML, CSS and JavaScript. The home page loads about 187 KB of compressed JavaScript, React and Next.js included. Motion, about 44 KB more, loads only on the shop, the one page whose grid re-flows.

The photographs are the weight that matters, and they are small: all 354 photo files on the site, every width in both lights, add up to 3.4 MB, and each page asks only for the width its layout needs. Instrument Sans is a single variable file; the Devanagari typeface is used only for the small Hindi names, so it is not preloaded.

Accessible by default

The light switch and the glaze picker are radio groups that work with arrow keys. The bag and search are dialogs that close on Escape, the bag holds keyboard focus while it is open and hands it back when it closes, and search results can be walked with the arrow keys.

Body copy and small labels clear 4.5:1 contrast in both lights. With reduced motion switched on, the reveals, the opening curtain, the drawing and the change of light all happen at once. Without JavaScript, every section is still there.

Shipping it

Cloudflare serves it as a Worker with static assets only: no server code, just the files the build writes. A response header keeps it out of search results, because a shop that sells nothing has no business in them, and the photos, whose file names carry a hash of their contents, are cached for a year. This page is the one meant to be found.

What it doesn't do

The honest list. A concept is only useful if you know where it stops.

  • Checkout is switched off. The bag works and remembers what you add, but nothing is for sale.
  • Every price, policy and date is illustrative: the ₹490 kulhad, free delivery over ₹2,500, the seven-day returns and the delivery estimates.
  • Each piece comes in Malai and one other glaze, not all five, which keeps the product photos to 88 rather than 220.
  • The delivery estimate reads regions, not addresses: it works from the first three digits of a PIN code.
  • The photographs are renders. A real studio would photograph its own pieces; here the photos, the drawings and the numbers all come from one description of each piece, which is the point.

Under the hood

Next.js
React
TypeScript
Tailwind CSS
Motion
three.js
Cloudflare

Start a project

Want a direction like this for your brand?

Maun is invented. Yours wouldn't be: we build the direction around your brand, your products and your content. A paragraph is enough to start. You will get a real reply with an approach, a fixed price and a timeline — not a calendar link and a discovery call.