// The technology · in depth · 2026

No WordPress.
Just personalized code.

No page builders, no plugin sprawl, no theme to fight. Every site is a hand-built application on a modern stack I know deep enough to bend. Here's exactly what runs under the hood — and why each piece earns its place.

The template route

WordPress & page builders

  • Plugin stacks you don't control or understand
  • Bloated markup, slow Core Web Vitals
  • Security surface that needs constant patching
  • Design boxed in by someone else's theme
The way I build

Personalized code

  • Every line written, read and owned by me
  • Lighthouse-tuned, fast by construction
  • Locked-down by design — no plugin lottery
  • Pixel-exact design with zero compromise
render-strategy.ts
Static (SSG) — rendered once at build time. Served as flat HTML from the edge: the fastest a page can be. Used for marketing & content pages.
// what the crawler actually receives
<title>Nu — clean beauty, Antwerp</title>
<meta name="description"...>
<h1>Skincare, distilled.</h1>
LCP 1.1sCLS 0.00fully indexableOG tags
Nu Studio· content lakePublished
Content
Products
Journal
Pages
Settings
Products · 24
Renew Serum
€48 · in stock
EN · NL
Calm Cleanser
€32 · in stock
Daily SPF 30
€29 · low stock
Night Balm
€54 · in stock
Title *
Renew Serum
Slug
/products/renew-serum
Hero image
drop · 1200×1500 · auto-CDN
Price (EUR)
48.00
Stock
128
Description · Portable Text
A featherweight vitamin-C serum that brightens and renews. Fragrance-free, vegan, made in Belgium.
query.groq
// fetch only what the page renders
*[_type == "product" && stock > 0]{
  title, "slug": slug.current,
  price, "img": image.asset->url
} | order(price asc)
result.json
[
  {
    "title": "Renew Serum",
    "slug":   "renew-serum",
    "price": 48,
    "img":    "cdn.sanity.io/…"
  }
]
draggable-star.tsx
drag me  ·  tap to morph
// grab it, fling it, morph it Draggable.create("#star", { bounds: "#stage", type: "x,y", onClick: () => gsap.to("#star", { morphSVG: next, ease: "back.inOut(1.7)" }) });
App.tsx
└─ <App>
  ├─ <Header>
  ├─ <ProductGrid>
  │  └─ <ProductCard> ×24
  ├─ <Cart>
  └─ <Footer>
3
useState
cart.ts
type Product = { title: string; price: number; }; function total(items: Product[]) { return items.reduce((n, p) => n + p.price, 0); } // ✗ caught at compile time total([{ title: "Serum", price: "48" }]);
Type 'string'is not assignable to type 'number'.  ts(2322)
ProductCard.tsx
<div class="rounded-2xl p-6 bg-gradient border shadow-lg flex flex-col gap-2">
Renew Serum
Brightening vitamin-C, made in Belgium.
Add to cart · €48

From blank file to shipped product — on the exact tools above. Tell me what you have in mind.