109 KB
JavaScript, first screen
68 KB
Fonts, first screen

Every site we build has one moving part.

One mechanism does the persuading. Everything else holds still so you can see it move.

We design and build front-ends for founders and small brands across Europe. No template, no page builder, no component library — every part of it is written for the one job that site has to do.

Design and build are the same job here.

A design that cannot hold 60fps on a three-year-old Android is a drawing, not a design. So the constraints arrive early enough to change the shape of the thing, rather than late enough to ruin it.

The interface

Layout, type, motion. The real design happens in the browser, where the type actually wraps and the animation actually drops frames.

The build

Vite, React, TypeScript. Static files, prerendered per route, hosted anywhere that serves a folder. No CMS you did not ask for.

The proof

Lighthouse, WCAG 2.1 AA, and load times taken from the deployed site — not from the machine that built it.

Two projects.

Each one had a constraint that decided the shape of it.

CL-MONT

Interior installation on board mega yachts · Slovenia

A site for a company that installs but does not manufacture, where one wrong verb would have described a workshop they do not have.

Read the case study about CL-MONT

zacasniodvzem.si

Driving-licence recovery · Slovenia

A legal site rebuilt around the one question its visitors arrive with — what happens to me now, and how long do I have? In build.

Read the case study about zacasniodvzem.si

The numbers on this page.

Measured on this site. Drag the plane in the header to see where they come from.

109 KB
JavaScript, first screen
68 KB
Fonts, first screen
0 px
Layout shift on font swap
13.91:1
Headline contrast

Lighthouse and field measurements go here when this site is deployed and measured. We do not publish a score we have not run.

Send the brief.

Tell us what the site has to do and who has to be convinced. If we are not the right studio for it, we will say so in the reply rather than in the third meeting.