Maxime Heckel's Blog
Shading Motion
On Rendering the Sky, Sunsets, and Planets
Shades of Halftone
Field Guide to TSL and WebGPU
On Shaping Light
Speaking at Figma Config 2025
Post-Processing Shaders as a Creative Medium
On Crafting Painterly Shaders
The Art of Dithering and Retro Shading for the Web
Moebius-style post-processing and other stylized shaders
Shining a light on Caustics with Shaders and React Three Fiber
Real-time dreamy Cloudscapes with Volumetric Raymarching
Painting with Math: A Gentle Study of Raymarching
Building a magical AI-powered semantic search from scratch
Beautiful and mind-bending effects with WebGL Render Targets
Refraction, dispersion, and other shader light effects
The magical world of Particles with React Three Fiber and Shaders
The Study of Shaders with React Three Fiber
Building a Design System from scratch
Everything about Framer Motion layout animations
Building a Vaporwave scene with Three.js
Cubic Bézier: from math to motion
First steps with GPT-3 for frontend developers
Building the perfect GitHub CI workflow for your frontend team
Migrating to Next.js
Static Tweets with MDX and Next.js
Advanced animation patterns with Framer Motion
Scrollspy demystified
The Power of Composition with CSS Variables
My first failed SwiftUI project
Guide to creating animations that spark joy with Framer Motion
Using Shortcuts and serverless to build a personal Apple Health API
SEO mistakes I've made and how I fixed them
Going native: SwiftUI from the perspective of a React developer
Build your own preview deployment service
The little guide to CI/CD for frontend developers
Immigrating to the US
The physics behind spring animations
Generate screenshots of your code with a serverless function
How to use Framer Motion with Emotion styled-components
Data Fetching with NextJS: What I learned
Learning in public
Fixing the dark mode flash issue on server rendered websites
How to fix NPM link duplicate dependencies issues
Running scheduled cross-browser end-to-end tests on Github CI
How I built my first custom ESLint rule
React Lazy: a take on preloading views
Automated UI accessibility testing with Cypress
Building a GraphQL wrapper for the Docker API
Switching off the lights - Adding dark mode to your React app
Getting started with Typescript on Gatsby
Rebuilding Redux with Hooks and Context
Asynchronous rendering with React
Using Flow generics to type generic React components
How to efficiently type your styled-components with Flow
How I got started with Kubernetes on GKE
React sub-components Part 3: Whitelisting sub-components with flow
React sub-components Part 2: Using the new Context API
React sub-components
Running Golang tests with Jest
No title
No title