Journal

Notes from the atelier

Personal thoughts on creative development, 3D in the browser and the craft of building websites that stand out. Sometimes technical, sometimes reflective — always honest.

MeetreToolsPrivacymacOS

Meetre — meeting transcripts that never leave your Mac

I built an open-source Mac tool that records a meeting, transcribes it with Whisper, labels the speakers and summarises it with Qwen — all on-device, no cloud, no accounts.

Read more →
PersonalClients

When good work isn't enough

On working with creatives who have more vision than budget — why good work still gets turned down, how that rejection lands, and why even friendship deals need a shared vision strong enough to hold.

Read more →
DesignAttitudeCreativity

The courage to be different

A small manifesto — why standing out beats blending in, and why it takes nerve to reject the template and dare to make something singular.

Read more →
InteractionUXDelight

Interaction that delights

On the small, surprising moments — hidden puzzles, playful details — that make a website feel human and stay in memory long after the visit.

Read more →
BrandingDesignProcess

Translating a brand's feeling

How I turn the intangible feeling of a brand into color, type, motion and structure — and why real listening always comes before any design.

Read more →
AICreativityFuture

AI and the future of creativity

A 2026 reflection on what artificial intelligence changes, what it can't, and why human taste, story and intent only become more valuable.

Read more →
PerformanceDesignWeb

When performance meets poetry

Why beautiful websites also have to be fast — and how craft and Core Web Vitals can live together without ever killing the magic.

Read more →
AteliersDesignWeb

Designing websites for ateliers

What ateliers, studios and artists need from a site — conveying a feeling, letting the work breathe, and avoiding templates entirely.

Read more →
Creative CodingCreativityCode

Creative coding as expression

Code as an artistic medium — canvas, shaders and generative systems as a way to make something, not just build it.

Read more →
DetailUXCraft

The detail makes the difference

On micro-interactions, hover states, transitions and easing — the small touches that separate the good from the unforgettable.

Read more →
3DWebGLDesign

Why 3D on the Web Makes Brands Stand Out

How interactive 3D experiences in the browser capture attention — and when they're actually worth it.

Read more →
MotionUXWeb

Scroll experiences that captivate

How scrolling becomes a narrative device — through pinning, parallax and reveal pacing, carried by restraint rather than spectacle.

Read more →
AIPrototypingWorkflow

AI-assisted prototyping

How AI speeds the messy early phase of a project, so more of my time goes to the craft that actually makes a site stand out.

Read more →
ColorDesignBranding

Color that creates memory

Color as identity and emotion — on restraint, a signature accent, contrast, and the mood that lingers long after the visit.

Read more →
DesignUXWeb

First impressions: hero sections

How I design hero sections that hook in seconds — clarity, atmosphere, and a single strong idea instead of crowded promises.

Read more →
GenerativeCreativityCode

Generative design

How I use code and randomness as a design partner — rules that produce surprising, organic, one-of-a-kind visuals every single run.

Read more →
DesignAteliersBranding

Websites for Ateliers That Want to Stand Out

What sets an atelier website apart from a template — and why attitude matters more than features.

Read more →
AIToolsCreativity

AI as a tool, not a replacement

An honest look at AI in the design and dev workflow in 2026 — fast assistance for drafts and boilerplate, but taste and intent stay human.

Read more →
TypographyDesignWeb

Typography that stands out

How I choose and pair expressive typefaces — display against body, type as the loudest design decision a page ever makes.

Read more →
ShadersWebGLCreativity

Shader poetry in the browser

Fragment shaders as a medium for generative beauty — on noise, gradients, time and how a few lines of code open infinite worlds.

Read more →
Three.js3DCreativity

Three.js as an artistic tool

Three.js not as a gimmick but as a brush — how light, material and depth can work in the service of emotion.

Read more →
MotionUXDesign

Motion that carries meaning

Animation with intent — on easing, choreography and restraint, and how motion guides rather than distracts.

Read more →
DesignLayoutAesthetics

Whitespace as a design tool

Negative space isn't emptiness but an active element — how restraint brings focus, luxury and calm to a website.

Read more →
DesignEditorialWeb

The art of the editorial website

Why I design websites like magazine spreads — with hierarchy, rhythm, big type and intentional space that makes real craft feel tangible.

Read more →
Next.jsReactWeb

Next.js 14: server actions in practice

With Next.js 14, server actions are stable — and I can finally write mutations without separate API routes, right where they're needed.

Read more →
TypographyDesignCraft

The craft of typography

For me, typography is the backbone of every editorial design — a question of scale, rhythm, and contrast, set with intent rather than by chance.

Read more →
Three.jsPerformance3D

Three.js performance: smooth on every device

Years with Three.js taught me that smooth 3D scenes aren't a matter of raw power, but of draw calls, instancing, and clean disposal of resources.

Read more →
WebGPUGraphicsFuture

WebGPU: a glimpse of the next graphics era

WebGPU is taking shape as the successor to WebGL — modern architecture, compute shaders, and a promise that leaves me cautiously excited.

Read more →
Next.jsReactWeb

Next.js 13: the App Router changes everything

Next.js 13 brings the App Router and React Server Components — a new mental model that shifts how I think about routing and rendering.

Read more →
DesignSystemsWorkflow

Design systems that actually work

How a design system can carry creativity rather than constrain it — through tokens, components, and documentation people actually use.

Read more →
ReactFrontendPerformance

React 18: concurrent and smooth

React 18 brings concurrent rendering, automatic batching and transitions — what that means for genuinely smooth user interfaces.

Read more →
Next.jsPerformanceWeb

Next.js 12: faster, thanks to Rust

Next.js 12 brings the SWC compiler and Middleware — how it speeds up my builds and moves logic closer to the edge.

Read more →
MotionDesignUX

Scrollytelling: stories that unfold

How scroll-driven storytelling ties motion to content — through pacing, restraint, and the courage to occasionally stand still.

Read more →
Three.jsReact3D

React Three Fiber: thinking 3D declaratively

How React Three Fiber turns Three.js scenes into components — and why declarative 3D finally made my creative work maintainable.

Read more →
ViteToolingPerformance

Vite: speed that's actually fun

Vite 2 brought instant dev servers via native ESM in early 2021 — why fast feedback loops change everything about creative work.

Read more →
TailwindCSSWorkflow

Utility-first: how Tailwind changed my workflow

In the Tailwind 2.0 era — on the utility-first mindset, faster iteration, and consistent design tokens living right in the markup.

Read more →
Next.jsPerformanceWeb

Incremental Static Regeneration: the best of both worlds

Next.js 9.5 introduced ISR — static speed with fresh content. Why it changed how I ship content sites for good.

Read more →
PersonalRemoteWork

From afar: working in 2020

A personal reflection on how remote work became the norm in 2020 — on focus, asynchronous collaboration, and keeping creativity alive at a distance.

Read more →
Three.jsWebGLShaders

Understanding shaders: GLSL for designers

A gentle introduction to GLSL fragment shaders for designers — what separates vertex from fragment, and why shaders unlock visuals nothing else can.

Read more →
PersonalFreelance

Why I went freelance

A personal reflection on choosing independence — to build special, memorable websites instead of cookie-cutter work made from templates.

Read more →
Three.jsWebGL3D

Three.js in 2019: 3D goes mainstream

WebGL and Three.js have matured — interactive 3D is finally realistic on ordinary marketing sites in 2019, not just tech demos.

Read more →
Next.jsReactWeb

Next.js 9: static, fast, considered

Next.js 9 brought API routes and automatic static optimization — finally making hybrid static and server-rendered sites effortless.

Read more →
CSSLayoutDesign

CSS Grid and the end of layout hacks

CSS Grid has finally landed reliably across browsers — freeing web layout from float tricks and flexbox contortions.

Read more →
ReactFrontendDevelopment

How React Hooks changed everything

React 16.8 brought Hooks in early 2019 — and fundamentally changed how I think about, write, and maintain components.

Read more →