Two senior experts building high-performance applications.

We are a technical consultancy duo specializing in modern web development with React and Next.js. No agency overhead. No meetings marathon. Just strategic expertise and clean execution to maximize efficiency.

How we complement each other

As two experts who've worked together for over a decade, we provide complete full-stack development capability. From scalable architecture to pixel-perfect UI. No handoffs, no miscommunication.

Marcel Fetten

Marcel Fetten
Next.js Performance & Architecture Expert

Learn more about Marcel
Stefan Momm

Stefan Momm
Senior Frontend Developer & CSS Expert

Learn more about Stefan

Trusted by Forward-Thinking Companies

  • Coop
  • DHL
  • Engel & Völkers
  • Disney
  • IBM
  • KPMG
  • LEGO
  • Nintendo
  • RTL Group

Rendering PDFs on Vercel with Next.js

A practical guide to running Puppeteer in a Next.js Route Handler on Vercel to render PDFs. How to work around the 250MB function bundle limit, cache the Chromium executable, and prevent concurrent downloads on cold starts.

Things that opt a Next.js route out of the cache

A quick reference for the dynamic APIs and patterns that force a Next.js route into dynamic rendering. cookies, headers, searchParams, connection, fetch with no-store, and missing generateStaticParams.

Migrating to Cache Components

Part 4 of the series: A practical guide to migrating from the previous Next.js caching model to Cache Components. What changes, what breaks, and how Date.now() cost us several days on a real project.

How Revalidation Works with "use cache"

Part 3 of the series: The difference between revalidateTag, updateTag, and revalidatePath in Next.js Cache Components. When to use which, how to design cache tags, and how to integrate CMS webhooks for on-demand revalidation.

Data-Level vs. UI-Level Caching in Next.js

Part 2 of the series: Where to place the "use cache" directive in your Next.js application: on data functions, on components, or not at all. How data-level caching, UI-level caching, and Suspense streaming work together in Partial Prerendering.