Open source
I have been working with open source since 2004 as I started contributing to Blender↗. Later on I was a part of the group that established the core team of webpack↗. Besides working on well-known projects, I have developed numerous small projects of my own. Given there are too many to mention, I have highlighted several I consider interesting on this page. You can find more behind my GitHub profile↗.
Frameworks
As I realized the approach of Antwar is too constraining and I wanted to learn Deno↗, I decided to start working on Tailspin↗. The initial idea was to combine the ideas of a static site generator with a design system tool but the initial attempt was a technical dead end. In Gustwind, I started from a JSON definition for components due to its simplicity. Later on I understood it’s not fun to author and ended up developing a HTML dialect called HTMLisp↗. This site has been rewritten using the approach and likely there are still many fun features to add (interactive editing on web etc.).
Antwar was my first serious static site generator. I developed it around React and webpack to develop this website and other smaller projects. The unique feature at the time had to do with interactive components which could include small pieces of React code to avoid the problem of having to hydrate the whole webpage. Later on this idea has been formalized as the idea of islands architecture.
Reactabular was perhaps the first headless table component built for React. It was built during the time when headless didn’t exist at a time. Although the project started from my personal interest, its development was later funded by Kenandy↗. If funding appeared, I would be happy to modernize the library.
Libraries
After getting exposed to Tailwind↗, I started thinking it would be a good idea to do the same but for state. Sidewind was born out of this experiment and it includes a small (~5k) runtime for managing state. As a unique feature, it implements the basic idea of resumability. In other words, it is able to construct its state from the initial HTML markup. It is possible I’ll rewrite the project as a compiler one day.
As I was writing my webpack book, I realized it is difficult to explain how to construct webpack configurations in a simple way. To allow composition, I wrote webpack-merge. I consider the project feature complete and I am thankful to Google for supporting my efforts with a one-time $3000 grant from their infrastructure fund.
The development of colorjoe color picker was motivated by a need to find a light picker that doesn’t rely on static images. The solution was to use CSS to generate gradients and let the browser compose them. Although the project is old, it is still somehow relevant even today.