Daguerrify
A browser photo editor for local JPEG/PNG adjustments, comparison and export.
Local browser editor / WebGL2 required
Problem & audience
Basic photo adjustments do not need an upload service. Daguerrify keeps editing local to the browser and renders adjustments from the original image.
Someone making simple JPEG/PNG adjustments with supported browser hardware, without uploading images to a backend.
My role
Independent project developer, implementing the Svelte interface, editor state, GLSL image pipeline and export workflow.
Implemented features
- Local JPEG/PNG import with exposure, contrast, relative temperature, tint and saturation controls.
- Original presets, before/after comparison and bounded undo/redo.
- JPEG/PNG export rendered at the original image dimensions.
Engineering decisions
- Uses a non-destructive, versioned settings document and groups edit gestures in bounded history.
- Pairs CPU reference math with a linear-light WebGL2/GLSL rendering pipeline.
- Validates image imports and applies conservative size/memory limits instead of accepting unlimited inputs.
Testing & validation
- Repository unit tests cover editor history, color math, image import limits and export behavior.
- Documented validation includes Svelte/TypeScript checks, unit tests and Playwright browser tests.
- During this update, Svelte/TypeScript checks passed without warnings and all 71 unit tests passed. Desktop and mobile demo captures show an actual preset and exposure adjustment; the full Playwright suite was not rerun.
Current scope & limitations
- JPEG/PNG only: no RAW processing, layers, masks or AI image editing.
- Edits are not persisted after reload; persistence and tiled export are roadmap items.
- No broad color-management guarantee or crop/rotate tools.

