Skip to content
Back to Tools

Tools · Stack

The stack

What we actually use, and why each piece stayed.

OVRS Editorial3 min read
A working surface with the tools of the build laid out

The frame

Next.js 16 with React 19, in TypeScript with strict mode on. No escape hatches to quiet the compiler — no loose types, no assertions added to make an error go away. An error that is silenced is still true.

Components render on the server by default. The client boundary is drawn only where something genuinely has to respond to a pointer or a key, which keeps the amount of code shipped to a phone honest.

The surface

Tailwind CSS 4, which has no configuration file. The design tokens live in one stylesheet, so the palette, the spacing scale, the type sizes and the motion durations all have exactly one home.

Two typefaces, both variable. One carries the display and editorial voice; one carries body and interface. They are served from the app itself rather than fetched at page load, so text never arrives in the wrong shape first.

The motion

GSAP with ScrollTrigger drives what the scroll position controls — parallax, the drawn lines, the pinned galleries. Every setup is scoped so it reverses cleanly when the route changes; skipping that teardown is the most common reason a second page arrives broken.

Lenis is the smooth-scroll engine, and the only one.

Anything a pointer can grab moves on a spring rather than a CSS transition, for the reason set out in the motion system.

The pipe

Photographs are processed with sharp into modern formats and committed already optimised, so the build does no image work and the original files never enter the repository.

The application builds into a standalone container that carries the app rather than the whole dependency tree, runs as a non-root user, and reports its own health.

Dokploy runs it on a single server and redeploys on every push to the main branch. Cloudflare sits in front. One canonical host answers: oversiz.com. Every other hostname that can reach the app tells crawlers not to index it, because a preview URL is still a public URL.

  • A screen mid-edit, close in

    A screen mid-edit, close in

  • Notes and a keyboard under a single lamp

    Notes and a keyboard under a single lamp

  • The desk from above at the end of a session

    The desk from above at the end of a session

Related