- A TypeScript library that provides an
ADTtype utility to conveniently author tagged union types as a versitile alternative to Typescript'senumkeyword, which is deprecated 1 2 3 and limited, asenumvariants cannot define their own structured data.
- A TypeScript library that provides an
- A TypeScript library that provides an alternative to traditional
try-catchblocks by providing asafewrapper-function which executes a given callback and returns either its value or any potentially thrown errors to promote resilient and explicit error handling patterns; inspired as an inverse to Rust'sunsafeblocks.
- A TypeScript library that provides an alternative to traditional
- A TypeScript library that provides utility types for writing tests for types (with
Expect,Equal,NotEqual, andbranch); neatening intersected type interfaces (withIdentity); intersecting members of union types (withIntersect); and other useful inferences and modifications (e.g.Mutable,Modify,ArrayItem).
- A TypeScript library that provides utility types for writing tests for types (with
- A lightweight, zero-dependency, declarative, TypeScript-based web UI framework that uses signals for efficient, hyper-targeted state updates instead of using a virtual DOM. Components are expressed as simple functions, or as generators, that may use
yieldto assign disposers to run when unmounting.
- A lightweight, zero-dependency, declarative, TypeScript-based web UI framework that uses signals for efficient, hyper-targeted state updates instead of using a virtual DOM. Components are expressed as simple functions, or as generators, that may use
- A TypeScript library that provides a
Resultprimitive inspired by Rust's equivalent. This library is deprecated in favour of pb.safe which uses a union with theErrorbuilt-in type instead of returning a "boxed" value, leading to more concise function signatures with reduced impact to publicly exported interfaces.
- A TypeScript library that provides a
- A working guide of API design tips, discussing RESTful API versioning, methods, route naming and structuring, collection pagination, response structuring, headers, errors, validation reporting, simple token-based authentication and sessions, and other concepts.
- My personal toolchain containing my configuration files for Zsh, Neovim, Tmux, LazyGit, Kitty, and others scripts in
/bin.
- My personal toolchain containing my configuration files for Zsh, Neovim, Tmux, LazyGit, Kitty, and others scripts in
- A tool that uses
fzfto quickly switch between per-local-projecttmuxsessions. Inspired bytmux-sessionizer.
- A tool that uses
- A wrapper that isolates JS/Node-related commands within a Docker container to reduce exposure to supply-chain incidents. Will dynamically create and run a Docker image containing
node(versioned per your project'sengines.node, if specified), andnpm,yarn, andpnpmpackage managers. Mounts the current directory, ports are exposed with a:[PORT]argument.
- A wrapper that isolates JS/Node-related commands within a Docker container to reduce exposure to supply-chain incidents. Will dynamically create and run a Docker image containing
- A wrapper that provisions Neovim with all required external dependencies for tree-sitter, fuzzy-finders, LSPs, and autocomplete, rather than install everything globally. Also supports copying to the system clipboard from a Neovim buffer within the container.
- A wrapper around
yt-dlpthat will dynamically create and run a Docker image withyt-dlpandffmpeg. Forwards all given arguments. Mounts the current directory for downloaded/output. Easily mounts$HOME/cookies.txtas--cookiesargument, rather than exposing the entire browser via--cookies-from-browser. I use Cookie-Editor.
- A wrapper around