Blog · 11 articles
Notes on the craft.
Long-form on systems architecture, microfrontends, WebGL / shaders, and on-device AI. Search by title, tag or topic — the filter is live, no submit button.
Showing 11 of 11
- 6 min
A design file you can diff is harder than it sounds
Why readable FNX was not enough: Fanta's 25,311-line diff, overwritten source edits, and the move to project files as the authority.
- fanta
- shipaton
- build-in-public
- rust
- 7 min
What 40,000 nodes taught us about Fanta's canvas
We opened a 128 MB, 40,141-node Figma file in Fanta, then followed the copies, image decodes, saves, and agent responses that made large designs hard to use. Here are the measurements and the work still left.
- fanta
- shipaton
- build-in-public
- rust
- 8 min
Shipping Fanta to the Mac App Store: the unglamorous build log
A dated account of Fanta's first Mac App Store submission path: RevenueCat products and account identity, a rejected package, a processed build, and the checks still between us and a public release.
- fanta
- shipaton
- build-in-public
- revenuecat
- 7 min
Why we built Fanta on top of a code editor
How our 2024 browser-canvas experiments and 2026 native editor fork shaped Fanta's readable design files, canvas, and agent workflow.
- fanta
- shipaton
- build-in-public
- rust
- 33 min
Carnegie Hall, rebuilt from a seating chart
How I turned a flat ticketing map into a complete Stern Auditorium: 2,758 seats, four tiers of gilded parapets, vaulted ceilings and hundreds of real light fixtures. I did it by building tools instead of sculpting.
- technical-art
- houdini
- blender
- python
- 12 min
Parsing documents without uploading them
A procurement pipeline that never leaves the tab: PDF, DOCX and XLSX to editable Markdown, PP-OCRv6 on ONNX Runtime Web inside a module worker, and the canvas shims nobody warns you about.
- onnx
- ocr
- wasm
- web-worker
- 15 min
Rendering Brilliance
A visual tour of the cubemap-based diamond shader — how a faceted gemstone becomes a single texture lookup, and what that gets you. Eight interactive figures, plain-English asides, and the optics that hold it all together.
- graphics
- shaders
- webgl
- three.js
- 17 min
Building a 3D ring configurator in Expo
The complete story of Lumière: loading GLBs on device, composing rings from parts at runtime, a custom refractive gem shader, porting the whole thing to the browser — and the audit that found a stranger's email address inside a binary before I made it public.
- expo
- react-native
- three.js
- r3f
- 23 min
Making AI feel realtime with hybrid segmentation
Segmentation is the substrate for nearly every AI photo workflow worth shipping in 2026 — inpainting, object swaps, controlled generation. Here is how to make it feel instant on the web by splitting SAM2 across a notebook on the user's hardware and a decoder in their browser.
- sam2
- onnx
- webgpu
- segmentation
- 4 min
Running ONNX models in the browser without losing your weekend
A working recipe for shipping image segmentation in a tab — Web Workers, WASM, pre-encoded embeddings, and the small things that decide whether the demo is fast or felt-fast.
- onnx
- wasm
- ai
- web-worker
- 1 min
Welcome to the new blog
A short tour of the new MDX-powered writing setup, complete with syntax-highlighted code blocks rendered by Shiki at build time.
- meta
- next.js
- mdx