Gildscape · Case study
An image-delivery problem disguised as a store.
A polished demo for independent Indian artists: considered gallery design, clear commerce decisions and browser-only state that makes every interaction safe to explore.
01
The problem
Many independent artists sell through Instagram DMs. That is where the audience is, but it leaves buyers to calculate shipping, ask about scale, and trust that a one-of-one work has not already sold.
Gildscape turns those questions into a calm, gallery-grade buying flow: dimensions in centimetres and inches, a true-scale wall view, held originals, Indian shipping and an inclusive-GST invoice.
02
A deliberate gap in the market
| Market | What works | Opportunity |
|---|---|---|
| Saatchi Art / Artsy | Curation, editorial and room-view cues | India-first checkout, GST and shipping |
| Indian marketplaces | Large local catalogues and INR pricing | Quieter design, mobile image delivery and scale |
| Instagram DMs | The audience is already present | Searchable work, checkout and transparent fulfilment |
03
The image-delivery system
The artwork is the product and the largest visual element, so image work starts at the network boundary. Next negotiates AVIF or WebP, serves a 16 px LQIP while the full image arrives, and the leading image is preloaded with an exact responsive sizes rule.
| Response | Transferred | Why |
|---|---|---|
| AVIF at 828 px | 28.0 KB | Modern browser response |
| WebP at 828 px | 41.4 KB | Fallback for browsers without AVIF |
These production responses were measured for the 828 px hero variant. On desktop the detail page uses the remaining viewport after its 420 px details column; below 1024 px it uses the full viewport. That avoids downloading a 4000 px source for a phone-sized image.
04
Measured before and after
The table reads directly from the committed measurement files. Baseline was a local phase-04 build; production is the deployed Vercel site. The final local artwork result is 3,161 ms LCP.
| Metric | Baseline | Production | Change |
|---|---|---|---|
| Artwork LCP | 3,956 ms | 2,507 ms | -1,449 ms |
| Home LCP | 3,647 ms | 2,285 ms | -1,362 ms |
| Catalogue LCP | 4,851 ms | 3,483 ms | -1,368 ms |
| Artwork TBT | 44 ms | 2 ms | -42 ms |
| Artwork CLS | 0 | 0 | 0 |
The Lighthouse mobile LCP target was intentionally retained as a documented gap: production artwork LCP remains above 1.2 s. A no-JavaScript, no-web-font floor test still simulated at roughly 1.8–2.0 s on Slow 4G, so this is a measurement constraint to revisit with field data—not a claim hidden behind a green score.
05
Shipping by size, not weight
A rolled A4 print and a crated 180 cm canvas can weigh similarly enough to make weight a poor proxy for packing effort. This demo charges by the largest packed dimension, then adds ₹100 for each additional item.
In the worked cart, a framed print and a large original going to Rajasthan cost ₹1,300 to ship: ₹1,200 for the L-class original plus ₹100 for the additional print. That rule is legible before checkout and mirrors the real operational constraint.
06
A hold is part of the product
Originals are one-of-one. Adding one to the cart creates a visible 15-minute hold, checkout verifies it again, and another browser can reflect the reserved state. Edition and open prints use their own stock rules instead.
07
Inclusive GST without surprise maths
Displayed prices include GST. The invoice backs tax out per line, applies 5% to original paintings and 18% to prints, frames and shipping, then splits tax into CGST/SGST for Rajasthan buyers or IGST elsewhere. This keeps the price a buyer sees equal to the amount they pay.
08
Purposefully a demo, not a production store
Everything is seeded or browser-local by design: fixtures provide the catalogue, server actions validate inputs without persisting, and localStorage holds carts, orders, enquiries, uploads and the selected currency. The reset control gives reviewers a clean run at any time.
A production version would replace that layer with Postgres transactions and row locks for holds, Razorpay orders plus verified webhooks for payment, and Sanity or Payload for artist-managed content. The demo deliberately includes none of those services, accounts, API keys or real data.
09
The screens




Explore the demo gallery or use Reset demo in the header to start a fresh purchase flow.