Hey, I'm Alex 👋

I'm a frenchy freelance web developer with a bunch of years of experience.
I'm pretty good with TypeScript/React/NodeJS.
I'm also a core contributor to Panda CSS

More about me

I care a lot about type-safety and performance. I'm no Andarist or David Blass but I still consider myself decent on those topics!

I love building dev tools:
I've made npm packages, Vite plugins, VSCode and Typescript client plugins (or with a LSP!) but also chrome/firefox extensions

    I've acquired skills that I wish I didn't, after having dug many rabbitholes to fix annoying issues.
  • Did you know you can't use `pnpm`/`yarn` workspace features when publishing a VSCode ext through the official CLI? ( made my own CLI to fix that 😅)
  • Did you know `export = someObject` is valid syntax ?
But that also taught me a lot about some stuff that most web dev don't care about, like overall performance tricks and how to profile/debug apps or how to test/benchmark your TS types, or even how to extract a specific type and output it in another file since I played a lot with ASTs (and made my own HiR for Panda extractor!)

I'm often finding myself in a situation where I first started working on an app but ended up making a library around a use-case that could help in that app and then I just forget about the app entirely/for a while and focus on the lib instead. That's how I started working on Panda CSS! (see box-extractor)
  • ❤️ I'm a huge fan of state machines (xstate!), local-first and sync engines
  • ❤️ Anything related to Vite or Tanstack
  • ❤️ I still love CSS-in-JS. Not the outdated emotion-based stuff (styled-components etc) but the modern libraries (Panda CSS, StyleX, Tamagui, Tokenami..)

  • 🌶️ If you need to mock an internal module, I think you've probably done something wrong.
  • 🌶️ Drizzle is not type-safe, you're looking for Kysely if you want that. Drizzle schema-building API / migrations / db push and studio are pretty cool tho! Use both and you get the best of both worlds.
  • 🌶️ NextJS should have just invested in Vite, just like... every single meta-frameworks have for years. 😅
  • 🌶️ SSR is nice if you really need the extra speed on initial load but SPA are also just fine, especially if your website is not public.
  • 🌶️ AI (LLMs) is a cool tech for `autocomplete on steroids` or summarizing stuff; I don't buy the vibe coding stuff though.
  • 🌶️ web3 (especially anything related to NFTs) were always 99% scam. 🤷

Featured opensource projects

Panda CSS

🐼 Universal, Type-Safe, CSS-in-JS Framework for Product Teams ⚡️

npm package • AST manipulation with ts-morph • Landing page with Astro

@pandabox/unplugin

Panda distributed as a Vite plugin, with optional macro support

Bundler plugin (unplugin) • AST manipulation with ts-morph

Atomic CSS Devtools

A devtool panel for debugging Atomic CSS rules as if they were not atomic.

Browser plugin (Chrome/Firefox) built with WXT • Panda CSS • Ark-UI

tw2panda

Easily migrate code from tailwind to Panda CSS

Online playground • CLI • VSCode plugin • Panda CSS • xstate

typed-openapi

Generate a headless Typescript API client from an OpenAPI spec

Online playground • CLI • Panda CSS • OpenAPI

openapi-zod-client

Generate a zodios API client from an OpenAPI spec

Online playground • CLI • Chakra-UI • OpenAPI • Zod • Zodios