A place where I carefully grow species of my favorite flower bindweed. In programmer terms -- all my pet-projects, most of which will be somehow be related to effect.
This repo uses mise to install cargo, bun, node etc, as well as to instate env
vars. Install it.
-
packages- the ones worth at least something. Some of them are even installable. Some are even usable.The ones I'm confident to be working. At the top are the ones I'm most proud of:
- effect-web-midi (published) — Effect wrapper for the Web MIDI API: typed streams of port state changes and MIDI messages, error-channel-annotated access requests, data-first and data-last APIs. Tested on Novation Launchpad X and KORG NanoPad.
- drizzle-fp (published) — Write Drizzle ORM table declarations in functional style and compose reusable table parts.
- joiners (published) — Join any Iterables with SQL-style semantics (inner, left, right, full, cross, and Venn diagram parts) and extreme TypeScript type inference.
- bliss-audio-ts (published) — Bun FFI bindings for bliss-audio (Rust); analyzes audio files into 23-dimensional feature vectors for similarity search and automatic playlist building.
- gitdl (published) — CLI + library to download any file or folder from any GitHub repo at any ref, without cloning the whole repo.
- effect-zstd (published) — Zstd compress/decompress as an Effect service; exposes stream operators for streaming compression pipelines.
- ts-key-not-enum (published) —
Type-safe constants for
KeyboardEvent.keynon-printable values (arrows, function keys, media keys, etc.), auto-generated from MDN. Avoidsconst enumso it works witherasableSyntaxOnly. - apache-superset-init (published) — One-command script to download and pre-configure Apache Superset for production Docker Compose: generates random secrets, enables PostgreSQL support, creates a named Docker network.
- archive-compress-encrypt-and-back (published) — CLI (ACE) to archive, compress, and encrypt directories and restore them back; a TypeScript rewrite of a bash script.
- effect-btrfs (published) — Effect wrapper around btrfs-progs CLI for Btrfs filesystem operations.
- tsconfig (published) — Strict, opinionated
TypeScript base config used across the monorepo; enables
erasableSyntaxOnly,isolatedDeclarations,verbatimModuleSyntax, and more. - backend-config (published) — Reusable Effect Tags for declaring which environment config values a layer depends on; catches missing values at startup rather than at first use.
- effect-helpers (published) — Miscellaneous Effect helpers: schema utilities, exec wrappers, stream combinators, OpenAPI annotations, and more.
The ones I less confident to be working about:
- effect-web-audio (published) — Effect wrapper for the Web Audio API (W3C spec).
- effect-web-mediacapture-streams
(published) — Effect wrapper for the Media Capture and Streams API
(
getUserMedia,mediaDevices). - ts-better-tuple — Type-safe tuple iteration
that preserves literal index types through
.map(),.entries(), and similar operations. - vscode-json-schemas-offline — VS Code extension bundling 1125+ SchemaStore schemas offline — full JSON/YAML/TOML validation with zero network requests at runtime.
- effect-command-executors — Extra
@effect/platform/CommandExecutorimplementations, including a sudo-backed executor with filesystem cache. - effect-npm-api — Effect
HttpApideclarations for the NPM registry API. - effect-npm-api-schema — Effect Schema definitions for objects returned by the NPM registry API.
-
apps- end-user apps. Some of them are good demos of how to use other packages.- trellisform/database (recommend checking
out - demo of
drizzle-fp) - next-midi-demo (recommend checking out - demo of
effect-web-midiand other audio stuff with effect. the juiciest part is in app/services) - Aside from the one above, in trellisform, there are also
api,backend,backend-better-auth-service,database-effect-schema,model. But not much interesting in all of them. They're only at a prototyping stage rn.
- trellisform/database (recommend checking
out - demo of
-
one-offs- packages, scripts I created to solve a single task and don't realistically expect to ever revisit or use again (hopefully). Many of them still are quite interesting and recommended to be checked-out as they might represent a demo usage of the other packages I made.- btrfs-partition-restoration — Exploratory scripts for recovering corrupted important files from a Btrfs partition.
- github-extract-issues — Bulk-extracts issues with comments from GitHub repos via Octokit; written during the monorepo migration.
- yt-music-export — Exports a personal library from YouTube Music.
- oxlint-plugin-effect-imports
(published) — ESLint/Oxlint plugin that enforces subpath imports from
Effect packages. Auto-infers
import * as Module from 'effect/Module'for PascalCase names andimport { fn } from 'effect/Function'for configured individual exports; supports aliases for JS built-in name conflicts and per-package overrides. - webref-idl-types — Type declarations
(
@types/webref__idl) for@webref/idl, the W3C's machine-readable Web IDL definitions. Provides typedlistAll()andparseAll()so you get structuredIDLRootType[]parse trees instead of raw strings.
-
scripts- a single package with all the random scripts I ever used. The one I use often isfix_package_jsons.tsorcleanup.ts. All of the scripts from there are automatically added to thePATHby mise so they are callable wherever in the monorepo you'd be. -
ideas- almost empty packages, or which have some exploration going on. Don't expect anything to be there except maybe some random ts files and Readme.