S

Open source

Things I built because I needed them.

Three of them, all still up. None was assigned; each one started as something I wanted and then kept, which is the only reason any of it got finished. The download numbers are small and shown as they are.

use-timed-flow

A tiny React hook to manage timed UI flows: auto-advance, pause, resume, reset, and loop, without timeout spaghetti.

Type

npm package · MIT

Installs

254

The API is deliberately small: pass steps, delay and loop, and get back current plus pause, resume and next. The hook owns the timer so a component never has to, which is the whole point, a carousel that pauses on hover is four lines instead of a useEffect cleaning up its own setTimeout.

Documented with two live demos rather than a README alone: a slideshow with a delay slider you can drag from 500ms to 5000ms, and a Pomodoro timer that shows per-step delays. Being able to feel the delay parameter explains the hook faster than any prose about it.

PDF to Link

Turn your PDFs into shareable links. Upload a file, get an instant link back.

Type

Tool · Cloudflare Pages

Link life

7 days

Uploads up to 10MB, viewable in the browser without downloading, and every link expires automatically after seven days, the expiry is the feature rather than a limitation, because the common case is sharing a document once and not wanting it to outlive the conversation.

Deployed on Cloudflare Pages, which is also where this site is heading: static assets on an edge network, no server to keep warm, nothing to cold-start.

Saviee Libraries

Explore and use lightweight libraries, powerful React hooks, and useful tools that simplify common tasks.

Type

Site

Repos

91

The home for the above. Its framing is a question rather than a pitch: “Have you ever needed simple libraries, powerful React hooks, or useful tools? Me too!” That is the honest reason any of it exists, each one started as something I needed and then kept.

It signs off “I’d love to hear your feedback” and points at Twitter for suggestions, which is a more accurate description of how I work than anything on my previous portfolio managed to say.