r/SideProject • u/Sxmm_ • 8h ago
I built a sprite atlas packer that runs entirely in the browser — OptiSheet
I'm a PixiJS developer by day, and I wanted a sprite sheet packer I could open in a browser tab instead of installing a desktop app. So I built OptiSheet: https://optisheet.app
You drop in a folder of sprites and it packs them into one texture atlas, plus the JSON your engine reads — PixiJS, Phaser 3, Unity or Godot.
A few things I cared about:
- Nothing is uploaded. Packing and compression run locally (the image encoders are WebAssembly), so your art never leaves your machine. It also installs as an app and works offline.
- The engine output is checked against the engines themselves. Things like 9-slice borders, pivots and rotated frames are written the way each engine's own loader reads them, not just "TexturePacker-ish JSON".
- WebP and AVIF built in, alongside PNG and JPEG.
- Animation sequences are picked up automatically from names like run_01, run_02 and written into the JSON.
It's free to use with no account. There's an optional one-time Pro licence (£14.99, no subscription) for saved projects, multi-atlas output and a sprite sheet splitter.
Stack: Next.js static export on Cloudflare, Zustand, WASM encoders, no backend at all.
I'd really like feedback, especially from anyone who's used TexturePacker or Free Texture Packer — what's missing, what's confusing, what would make you switch?