blognotescareersnippetsprojectsphotographymusic
  • use-animated-markdown-content.tsanimate the rendering of markdown content, usually from an llm
    Jul 8, 2025
  • retryable.pysimple wrapper for retrying a function a few times
    Mar 17, 2025
  • a_logging_contextan implementation for logging variables within a given context.
    Mar 5, 2025
  • http-api.ts, logging.tsbase class & loggers for building http api clients
    Feb 18, 2025
  • storage-in-memory.ts, storage-interface.tsa generic key-value storage interface backed by many implementations
    Feb 13, 2025
  • use-image-average-color.tsxget a box shadow and average color from an image url
    Dec 24, 2024
  • use-companion-window.tsxuse document-in-picture api via react hook
    Nov 23, 2024
  • etch-canvas.tsxa dynamic canvas which renders custom etches
    Jul 15, 2024
  • mailersend emails with cloudflare and mailchannels
    Jul 5, 2024
  • http-errors.tsergonomic http errors as ts errors
    Jul 5, 2024
  • lignes.roomates.tsa sample implementation for a lignes model
    Jun 18, 2024
  • recording-state.tsxrecord input from mic to zustand
    May 31, 2024
  • use-current-color-value.tsxuse the current css color of a passed ref or the document
    May 24, 2024
  • sh.tssmall nodejs sh wrapper
    May 19, 2024
  • waitgroup.py, waitgroup_test.pya simple wait group written before discovering asyncio.TaskGroup
    Apr 8, 2024
  • cacheable.tsan extensible class which provides caching methods
    Mar 25, 2024
  • responsive-dialog.tsxquick hack for a responsive dialog-drawer built on components from ui.shadcn.com
    Dec 22, 2023
  • use-relative-timestamp.tsxa react hook for formatting timestamps relative to now
    Dec 1, 2023
  • debug-with-context.tssimple debug function which logs its caller
    Jun 13, 2023
  • on-process-exit.tsa utility function for executing callbacks on process exit in nodejs
    May 12, 2023
  • ticker.tsa simple non-blocking wrapper around setTimeout
    May 12, 2023
  • print-interfacePretty print an interface in golang
    Apr 18, 2023
  • useResizeObserver.tsxWatch a container for changes using the ResizeObserver API
    Feb 16, 2023
  • useWaveform.tsxGenerate a waveform on a Canvas element, by passing in a url. Extracted from an early draft of de's personal site.
    Jan 25, 2022