Hi 👋🏻, I'm Stefan

I care personally about great developer experiences and write about Monorepos, TypeScript, Frontend Architecture, Web Technologies.
ALL ARTICLES

Vanilla Web - Part 1
Let me take you on a journey with me to build SPAs with Vanilla Web. No frameworks, no runtime dependencies, just pure JavaScript and TypeScript. Let's figure out a way to build web components without a huge DX downgrade. We might re-invent the wheel, but we will do it in a way that is fun and educational.

Monorepos with PNPM Workspaces
PNPM is not just a modern package manager but also a great tool for managing lean monorepos. Learn how to set up and use PNPM workspaces from scratch including TypeScript Project References for building and typechecking incrementally.

Introduction to Frontend Monorepos
Commonly used in large enterprise codebases by companies likes Meta, Google & Microsoft, monorepos are a way to manage multiple projects within a single repository. This article introduces the concept of monorepos, their benefits, and the most popular tools used to manage them.

Creating a TypeScript ES Lint Plugin
Learn how to create a custom typescript-eslint rule for your TypeScript project. If you ever wanted to enforce a certain pattern in your codebase, this article is for you. I will show you how to create a custom rule based on a real-world example.

Incremental Builds with Nx
If you have a monorepo with multiple projects and libraries, you might run into the problem of long build times. This article explains how incremental builds with Nx work under the hood and we will explore Nx's internal codebase to understand how it works.

Refactoring at Scale
Refactoring a large codebase can be a daunting task. In this article, we will explore some strategies for refactoring at scale using the TypeScript Compiler API to programmatically analyze and transform TypeScript code.

Module Boundaries with Nx
Module boundaries are a great way to enforce architectural rules in your monorepo and manage dependencies. They allow you to define strict boundaries, which can be used to enforce architectural rules and prevent accidental dependencies between modules.