Hey, I'm Stephen

I'm a founder, engineer, designer, and game dev in California ☀️

now

I'm starting Paper to help you design, share, and ship. Paper puts code components onto a design canvas so you can import your real design system, use shaders, and export flex layouts.

2022

WorkOS acquired my startup Modulz. At WorkOS I led product engineering from early PMF into high-growth scale-up and launched AuthKit, the world's best login.

2018

I co-founded Modulz to bridge the gap between designers and developers. Along the way we created Radix, accessibility-first React components.

2015

I launched ecommerce sites for Marmot, then moved to NYC to lead front-end engineering for Newell Rubbermaid.

In 2015 I also wrote my first book:
Game Development with Swift

Stephen Haney backpacking in the Sierras. A mountain lake is in the background.

Projects

Summoners.io

Browser-based trading card game based on Hearthstone and Slay the Spire

Games Babylon.js WebGL

ZooDrop.io

A fun take on the suika watermelon game, published by Poki

Games Three.js WebGL

DearDiary AI

Turn your journal into music.
A first-place winner of the Google Magenta hackathon.

Machine Learning NLP Music

Technical Posts

Running playwright on fly.io with bun

Quick setup guide to running playwright on fly.io with bun.

Playwright Bun Fly.io

Self-hosting plausible web analytics

Get predictable flat pricing for web analytics by self-hosting

Analytics Self-hosting

Saving AVIF images from Photoshop on MacOS in 2023

AVIF is amazing: better file size, image quality, and transparency

Photoshop AVIF

Get contenteditable plaintext with correct linebreaks

Browser bugs lead to incorrect results from the .innerText API

Browsers

React Styled Components in IFrames

How to use Styled Components inside nested IFrames

React CSS-in-JS

SKSpriteNodes anchorPoint in Swift and SpriteKit

A how-to guide on using anchorPoint in SpriteKit

Swift SpriteKit

Upside Down SKPhysicsBody when Loaded From Texture

Working around a bug in SpriteKit's physics engine

Swift SpriteKit

Event Triggers and Event Listeners in Swift, Updated Swift 6.2

Introducing a library for event based patterns in Swift

Swift

Camera Shake with SpriteKit in Swift

Creating a juicy camera shake effect in SpriteKit

Swift SpriteKit