Visitors browse the collection, filter it by artist and category, send enquiries that arrive as real email, and walk a 3D museum built from the same data.
There is no database and no login: typed data files hold the content, and a small server-only email layer on Resend is the only backend.
Highlights
- A deterministic floor-plan generator builds the museum from the painting data - three designs, with canvases hung at their real size.
- 60 fps by baking light (gradient light pools, emissive canvases, PMREM, bloom) instead of about 78 real spotlights; procedural textures.
- One zod discriminated-union Server Action handles four contact flows through Resend and React Email, plus an HMAC-signed double opt-in newsletter with no database.
- Per-painting OG images, an image sitemap, feature flags, no-flash themes and CI.
At a glance
- Role
- Creator & sole developer
- Years
- 2026 – now
- Source
- Private repository. Source is private; happy to walk through it on a call.
- in the 3D museum
- 60 fps
- museum designs
- 3
- contact flows, one Server Action
- 4
Stack
- Next.js
- React
- TypeScript
- Three.js
- React Three Fiber
- shadcn/ui
- Tailwind CSS
- Resend
- Vercel
Built with TypeScript.