A sampling of the core technologies I have become talented in. There are always more things to learn, but I have found a lot of the underlying skills here to be transferrable as I explore new technologies.
Unhappy with the quality of various time trackers and finding a constant situation of each different app having some factors I love, and others I hate. I'm setting out to make one that works for exactly what I need it for: Tracking time across different clients and tasks that allows easy export for invoicing.
Of course, why do any side project without using the most bleeding edge technologies? So this is made with Tauri + Solidjs with TypeScript and Rust.
Tauri uses the devices native webview (as opposed to bundling a browser) allowing for smaller application size, rendering a frontend in the webview and connecting it to a runtime powered by Rust to handle interfacing with the OS and file systems.
Here I use Solidjs to power the front end, for it's many benefits and performance characteristics, and because it's the hot thing (at the time of writing).
This is my attempt at recreating Spotify but with some (imho improved) UI/UX as well as extend it with additional features.
This project is built on top of a custom scaffold I put together I call a PETT App.
At the core is Preact (a lightweight React alternative) coupled with some custom utilities and the Spotify API and Web Playback SDKs to enable a powerful native-like experience.
This is complemented by esbuild for 🔥 BLAZINGLY FAST 🔥 build times. So fast there isn't a need for a special dev server.
Note: This project is still a work in progress and is not accessible by users that have not been manually approved. This is a restriction imposed by Spotify. For access, just message me!
This is a very simple package that allows you to register hotkeys to run functions, or update state easily in response to key presses!
Includes Types, and is fully compatible with Preact/React useEffect
hooks
A simple implementation of an LRU cache that expires items with Weak References to allow the cache items to continue to be reused until garbage collected.
Implements the entire Map
api, allowing easy drop in usage in existing apps using Maps to cache responses.
A simple, lightweight global state manager, now with 100% more Signals!
Perfect for enabling simply access to globally available state from anywhere in your app, only as needed.
This reduces the build size of the AlpineJS module by ~20%
Fixes a bug preventing the use of await
in expression that used block level constructions through the use of an Async IIFE
Improves the performance of the DOM diff'ing algorithm, optimized for the most common scenarios.
Refactors initialization to gracefully handle multiple init calls and enabling options to delay initialization until the UI is needed.