Skip to content
K.D. Vassiliou Group
WorkRetail and e-commerceAn independent art studio

A storefrontwhere each workis one of one

An artwork storefront on Next.js and PostgreSQL - originals that sell once, prints that do not, and commissions handled in the same system.

Line drawing of a gallery wall of framed works, a stack of prints, a shipping crate, a commission brief and a card terminal
Illustration of the problem · not a client screenshot
Client
An independent art studio
Sector
Retail and e-commerce
Status
In use · edited by the studio
Year
2026
Services
Not yet cited by a service
Stack
  • Next.js
  • React
  • TypeScript
  • Supabase
  • PostgreSQL
  • Stripe
  • Docker

An independent art studio sells original works, limited prints and commissions, and wanted a storefront that behaves like a gallery wall rather than a shop shelf.

The challenge

An original painting is a stock-of-one product that must never be sellable twice, and the moment it sells its page has to stay up, because sold work is the strongest evidence a studio has. Prints behave like ordinary retail. Commissions are not products at all: they are a conversation that starts with a brief and a budget. Most hosted store platforms make the first case awkward, the third impossible, and all three look identical on screen.

What we built

A Next.js storefront over a managed PostgreSQL service, with the catalogue modelled the way it actually is: collections of works, works with their own images and availability, prints, and separate records for commission requests and enquiries about a specific piece. Payment is a hosted checkout session with a webhook that marks a work sold once the payment settles, so availability is decided by the payment provider's confirmation rather than by the browser that started it. Sold works keep their page and wear their status.

The interface was designed as gallery architecture. The only chrome a work receives is a wall label — flush-left metadata under a hairline rule — and there are no cards, borders or shadows around art. A variable display face is set at extreme width and weight for headings, so type is the second material on the wall. Two accent colours exist: one for links and focus, one reserved entirely for the sold state. All other colour arrives from the paintings.

Around the shop sit the parts a working studio needs: exhibitions, press, a newsletter signup, a wishlist, an account area, and the shipping, returns and policy pages someone buying a physical object expects to read. Search engines and language models get a sitemap, a robots policy and a plain-text summary of the site.

The outcome

The studio publishes a work, says whether it is available, and the storefront does the rest, including refusing to sell it twice. Commissions and enquiries arrive as records rather than as email, so a request has a state instead of a thread. The application runs on our own host; the database, file storage and the admin the studio edits in are a managed service, which is what keeps the day-to-day running of it out of our hands and theirs.

Next projectRetail and e-commerce

Pickup-point delivery at checkout for an electronics store

A courier pickup-point delivery method for WooCommerce, with per-zone rates, a free-over threshold and a seam for the courier's API.

Read the case

Want one ofthese for yourbusiness?

Tell us what is slow, manual or broken, and we will scope it.

Tell us what is slow or broken, when you need it, and your budget range.