For the first half of my career, most of my work has been in proprietary code bases. I'm steadily growing my open source contributions, and the more substantial ones will show up here.
Ergo (Source)
Ergo (Source)
Ergo is a low-code task engine built with Rust and Svelte. Think IFTTT or Zapier, but the task behavior is customizable through Javascript and tasks can be represented as state machines or as a DAG. Future work will involve task templates that take an easy configuration and internally compile down to state machines.
Logseq Note Exporter (Source)
Logseq Note Exporter (Source)
Export selected pages from a Logseq graph. I use this to populate the notes and journals sections on this site.
Fund The Rebuild (Source)
Fund The Rebuild (Source)
This site brought attention to GoFundMe campaigns that were started in the wake of the 2020 riots. Currently dormant, but it was developed in a day and a half, and in the end was also useful in seeing how quickly I could get an MVP up and running.
Palette Transformer (Source)
Palette Transformer (Source)
Transform a color palette to fit any other color you want! I put this together after doing it manually once, and I wrote about the initial experience and the theory behind it here.
httptreemux (Source)
httptreemux (Source)
I wrote a trie-based HTTP router library back in 2014 when I was learning Go. Its performance focus and flexible routing options have gained a small following, including some commercial users.
Other Minor Projects
- codemirror-json5 is an NPM package providing JSON5 language support for the excellent CodeMirror editor component.
- Sorters is a compact package for generating Javascript array sort comparators that handle things like null values, descending sort, and multi-level comparisons. I wrote this as I've been moving away from heavyweight utility packages.
- SWR XState is a stale-while-revalidate data fetcher built with the XState state machine library. Originally developed for internal use at my company, it provides automatic periodic refreshes with browser focus tracking, exponential backoff, and other nice features. I also wrote an article about the implementation.
- Svelte Zoomable is an experiment in zoomable UI and advanced transitions in Svelte. This was a fun way to get better at understanding Svelte transitions, but ultimately I would favor a more traditional SVG zooming approach with some kind of level-of-detail based render switching, instead of pushing the limits of Svelte's transition system past what it was really good for.