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.
Should've Been a Blog Post (Source)
Should've Been a Blog Post (Source)
Should've Been a Blog Post (SBBP) downloads videos from Youtube, creates a high-quality transcript, and places that transcript alongside extracted images from the video. Snarky name aside, I love reading conference talks in this tool.
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. Currently dormant and much of the functionality I really wanted from this will be done by Glance (above), but I learned a lot, especially about embedding V8 in Rust.
Pic Store (Source)
Pic Store (Source)
This is an "image CDN" application which takes uploaded images, resizes and reencodes them in desired formats, and
store them on a CDN for use on the web. I originally wrote Effectum to power this project. (Better name pending?)
Most of the
images on this site were processed through Pic Store.
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, and most of the newer long-form writing as well.
Perceive (Source)
Perceive (Source)
Perceive was a semantic search experiment during December 2022 before RAG apps were dime-a-dozen, with a goal to catalog your files, browser history, and more, and make them all searchable through a single interface that understands what you mean, even if the right words aren't there.
httptreemux (Source)
httptreemux (Source)
I wrote a trie-based HTTP router library back in 2014 when I was learning Go. I'm no longer developing this, but 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.
- Fund the Rebuild 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 transforms 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.