Hi, I'm Sean.
Co-founder & CTO at B3, building a crypto agent & decentralized inference — previously Coinbase. I sweat the small details in software, and leave the good parts (components, free tools & writeups) out in the open here.
Components
all →
Dither
Bayer 4×4 ordered dithering on any image — 1-bit mono or per-channel to N levels — with an optional animated CRT subpixel mask. Canvas 2D, no deps. Extracted from ai-arena.

3D Cartridge
A draggable 3D game cartridge in pure CSS 3D transforms: spin it with a drag or swipe, snap to front/back, with the body color cast from an accent drop-shadow. Extracted from basement.fun.

Sparkle Field
A shimmering field of dots in a single element: a repeated dot mask intersected with an animated Perlin-noise mask via mask-composite, so the dots twinkle. No JS, no canvas.

Screen Recorder
Record your screen, a window, or a tab right in the browser with getDisplayMedia + MediaRecorder: live preview, a running timer, playback, and a webm download. Nothing leaves the device.

Network Status
An online/offline indicator on navigator.onLine and the online/offline events: a live pill plus a toast that slides in on every change and auto-dismisses.

Battery Status
A live battery readout on the Battery Status API: animated fill, color by charge, a charging bolt, and time-to-full. Falls back to a simulation where the API is missing.
Writing
all →
Read the recon list as a defense checklist
A list of email and social OSINT tools made the rounds framed for phishing. Flip it: the same tools are what an attacker runs before a targeted email, so run them on yourself first. What your address leaks, and how to shut it down.

Ordered dithering and a CRT mask, on a canvas
A Bayer 4×4 ordered dither that fakes more shades than you have, plus an animated CRT subpixel mask for the shimmering-phosphor look. Both are small canvas passes, no shaders. Pulled out of ai-arena.

Switch to cubic-bezier over ease and linear
A one-line upgrade for CSS animations: trade the default ease and linear for cubic-bezier(0.6, 0.6, 0, 1). It starts fast and settles slow, which reads as smooth. Push the curve past 1 and you get a bounce.

A sparkly backdrop from one div and mask-composite
jhey's CSS trick: intersect a grid-of-dots mask with a Perlin-noise mask using mask-composite, then animate mask-position. The dots twinkle, and it's a single element instead of thousands of animated nodes.

A draggable 3D game cartridge in pure CSS
No WebGL. A preserve-3d box with six faces, a drag that writes one rotation variable, and a drop-shadow trick that recolors a transparent PNG so one shell works for any accent. Pulled out of basement.fun.

One line of JavaScript for a real share sheet
The Web Share API hands a title, text, and URL to the operating system and opens the same native share sheet every app uses. Here's a share button that uses it, with a graceful fallback for desktop.