Jacob Gruwier Vinjegaard

04 Case 2025

Høstverk

A furniture workshop selling in four countries from one Norwegian barn. The system had to be as repeatable as their joinery.

ClientHøstverk
RoleDesign system & build
StackAstro · Tailwind · Sanity
Visit live siteVisit live site →
Høstverk — case hero
The brief Djursland, DK

One system, four markets, no redesign per launch.

Høstverk release in short seasonal drops, and every drop used to mean a new set of one-off pages. We built a component library that mirrors the way they build furniture: a small number of parts, honest joints, no decoration hiding structure. The team now ships a full drop page in an afternoon without design help.

The whole thing is one WebGL layer under ordinary, editable HTML. Nothing about the storytelling costs the client their ability to write.

+214% Time on site
0.9s LCP, mobile 4G
6 Vintages, one shader
4wk Brief to launch
Nordlys — vintage page
Nordlys — label detail

FIG. 02 — THE VINTAGE VIEW INHERITS THE HORIZON'S CURRENT LIGHT INSTEAD.

Approach Three moves
01

One horizon

A single full-page canvas carries the light. Sections don't start and stop — they change the sky's temperature as they pass.

02

Type as terrain

Vintage names are set at display scale and clipped by the coastline, so the words sit inside the landscape instead of on top of it.

03

Editable underneath

Everything readable is plain HTML in the CMS. The effect layer degrades to a still gradient with no loss of content.

Nordlys — full-bleed still
Prototype 01:12 · sound on
Nordlys — prototype walkthrough

Fig. 05 — the horizon shader reacting to scroll velocity, captured in the staging build.

“We stopped booking design time for launches. That was the whole ask.”

Sigrid Vang · Founder, Høstverk
Nordlys — grid 1
Nordlys — grid 2
Nordlys — grid 3
Deliverables Art direction Design system Frontend build WebGL horizon CMS setup
Credits Design & build — Jacob Vinjegaard Photography — Nordlys Vinhus Identity — Studio Havbrise Copy — Maren Holt hostverk.nohostverk.no→
Next case 05 / 06

Blå TimeBlå Time →

0%

Pause