Exploring the depths of the web.
Hi I'm Maxime, and this is my blog. In here, you'll find all the articles I wished I had when I was learning about web development, shaders, real-time 3D on the web, and more.
Each piece I write aims to dive deep into the topics I'm passionate about, while also making complex topics more accessible through interactive playgrounds, visualization, and well detailed walkthroughs. My goal is to give you the tools and intuition to explore further on your own.
2025
Post-Processing Shaders as a Creative MediumPost-Processing Shaders as a Creative MediumFeb 04Feb 042024
On Crafting Painterly ShadersOn Crafting Painterly ShadersOct 29Oct 29- The Art of Dithering and Retro Shading for the WebThe Art of Dithering and Retro Shading for the WebAug 06Aug 06
- Moebius-style post-processing and other stylized shadersMoebius-style post-processing and other stylized shadersMar 26Mar 26
- Shining a light on Caustics with Shaders and React Three FiberShining a light on Caustics with Shaders and React Three FiberJan 23Jan 23
2023
Real-time dreamy Cloudscapes with Volumetric RaymarchingReal-time dreamy Cloudscapes with Volumetric RaymarchingOct 31Oct 31- Painting with Math: A Gentle Study of RaymarchingPainting with Math: A Gentle Study of RaymarchingSep 12Sep 12
- Building a magical AI-powered semantic search from scratchBuilding a magical AI-powered semantic search from scratchJun 06Jun 06
- Beautiful and mind-bending effects with WebGL Render TargetsBeautiful and mind-bending effects with WebGL Render TargetsMar 14Mar 14
- Refraction, dispersion, and other shader light effectsRefraction, dispersion, and other shader light effectsJan 24Jan 24
2022
The magical world of Particles with React Three Fiber and ShadersThe magical world of Particles with React Three Fiber and ShadersNov 08Nov 08- The Study of Shaders with React Three FiberThe Study of Shaders with React Three FiberJul 26Jul 26
- Building a Design System from scratchBuilding a Design System from scratchMay 10May 10
- Everything about Framer Motion layout animationsEverything about Framer Motion layout animationsMar 08Mar 08
- Building a Vaporwave scene with Three.jsBuilding a Vaporwave scene with Three.jsJan 25Jan 25
2021
Cubic Bézier: from math to motionCubic Bézier: from math to motionNov 02Nov 02- First steps with GPT-3 for frontend developersFirst steps with GPT-3 for frontend developersSep 28Sep 28
- Building the perfect GitHub CI workflow for your frontend teamBuilding the perfect GitHub CI workflow for your frontend teamAug 03Aug 03
- Migrating to Next.jsMigrating to Next.jsJun 29Jun 29
- Static Tweets with MDX and Next.jsStatic Tweets with MDX and Next.jsJun 01Jun 01
- Advanced animation patterns with Framer MotionAdvanced animation patterns with Framer MotionApr 20Apr 20
- Scrollspy demystifiedScrollspy demystifiedMar 09Mar 09
- The Power of Composition with CSS VariablesThe Power of Composition with CSS VariablesFeb 02Feb 02
- My first failed SwiftUI projectMy first failed SwiftUI projectJan 19Jan 19
2020
Guide to creating animations that spark joy with Framer MotionGuide to creating animations that spark joy with Framer MotionDec 15Dec 15- Using Shortcuts and serverless to build a personal Apple Health APIUsing Shortcuts and serverless to build a personal Apple Health APINov 02Nov 02
- SEO mistakes I've made and how I fixed themSEO mistakes I've made and how I fixed themOct 13Oct 13
- Going native: SwiftUI from the perspective of a React developerGoing native: SwiftUI from the perspective of a React developerSep 16Sep 16
- Build your own preview deployment serviceBuild your own preview deployment serviceAug 25Aug 25
- The little guide to CI/CD for frontend developersThe little guide to CI/CD for frontend developersJul 28Jul 28
- Immigrating to the USImmigrating to the USJun 26Jun 26
- The physics behind spring animationsThe physics behind spring animationsJun 23Jun 23
- Generate screenshots of your code with a serverless functionGenerate screenshots of your code with a serverless functionJun 09Jun 09
- How to use Framer Motion with Emotion styled-componentsHow to use Framer Motion with Emotion styled-componentsMay 12May 12
- Data Fetching with NextJS: What I learnedData Fetching with NextJS: What I learnedMay 05May 05
- Learning in publicLearning in publicApr 21Apr 21
- Fixing the dark mode flash issue on server rendered websitesFixing the dark mode flash issue on server rendered websitesApr 16Apr 16
- How to fix NPM link duplicate dependencies issuesHow to fix NPM link duplicate dependencies issuesMar 31Mar 31
- Running scheduled cross-browser end-to-end tests on Github CIRunning scheduled cross-browser end-to-end tests on Github CIMar 10Mar 10
2019
How I built my first custom ESLint ruleHow I built my first custom ESLint ruleNov 19Nov 19- React Lazy: a take on preloading viewsReact Lazy: a take on preloading viewsSep 24Sep 24
- Automated UI accessibility testing with CypressAutomated UI accessibility testing with CypressJul 09Jul 09
- Building a GraphQL wrapper for the Docker APIBuilding a GraphQL wrapper for the Docker APIMay 28May 28
- Switching off the lights - Adding dark mode to your React appSwitching off the lights - Adding dark mode to your React appMar 05Mar 05
- Getting started with Typescript on GatsbyGetting started with Typescript on GatsbyFeb 05Feb 05
2018
Rebuilding Redux with Hooks and ContextRebuilding Redux with Hooks and ContextDec 04Dec 04- Asynchronous rendering with ReactAsynchronous rendering with ReactNov 06Nov 06
- Using Flow generics to type generic React componentsUsing Flow generics to type generic React componentsOct 16Oct 16
- How to efficiently type your styled-components with FlowHow to efficiently type your styled-components with FlowOct 09Oct 09
- How I got started with Kubernetes on GKEHow I got started with Kubernetes on GKEJun 19Jun 19
- React sub-components Part 3: Whitelisting sub-components with flowReact sub-components Part 3: Whitelisting sub-components with flowMay 01May 01
- React sub-components Part 2: Using the new Context APIReact sub-components Part 2: Using the new Context APIApr 16Apr 16
- React sub-componentsReact sub-componentsFeb 26Feb 26
- Running Golang tests with JestRunning Golang tests with JestJan 10Jan 10