Art Desk
A private desk for buying art at Swiss auctions - true costs, preview notes and a lot tracker that scores every work - plus art.johanstefanes.ch, a public index of my collection where every work is a 3D object at its real size.
- Type
- Personal Project · Full-Stack / Data
- Year
- 2026–now
- Role
- Sole developer - product, research and design, for my own collecting.
Turns a hammer price into what you actually pay at four auction houses, reads their catalogues and 16 galleries for the artists I follow, and scores each lot 0-100 against a budget.
- True cost at four auction houses
- Every lot scored 0-100 with reasons
- Works in 3D at their real size
The problem
Buying at Swiss auctions on a small budget means every house hides its real cost in tiered premiums, VAT and surcharges, and the good lots are spread over catalogues, galleries and Catawiki.
Know before a preview what a bid really costs and which lots are worth it, and show the works I own the way a museum would.
What I did
- Researched each house's conditions of sale and built a calculator that works both ways: bid to true cost, and budget to maximum bid.
- Wrote readers for the houses' sale pages, Zurich's gallery list and 16 dealers, plus a browser extension for Catawiki, all feeding a tracker that scores each lot and explains why.
- Built the collection site as a static three.js index: canvases and framed works at true relative size that you can turn around to see the back, with a flat catalogue on phones.
Outcome
Art Desk runs hosted behind a password with a phone-friendly preview companion; the collection is live at art.johanstefanes.ch.
Stack
- Next.js 16
- React 19
- Drizzle
- Turso
- Vercel Blob
- three.js
- React Three Fiber
