Technical overview
Built for
privacy.
DENOIR is a fully client-side photobooth. Every photo is captured, processed, composed, and downloaded on your device. No server sees your camera. No server touches your photos.
Privacy pipeline
MediaDevices.getUserMedia()Browser requests camera permission. No data leaves yet.
<video> + MediaStreamLive preview rendered directly to a <video> element.
Canvas API (drawImage + filters)CSS filters applied per frame. Processed on the GPU locally.
canvas.drawImage(video)A single video frame is drawn to an off-screen canvas.
ImageData manipulationPixel-level effect (grain, mono, VHS) applied via getImageData.
OffscreenCanvas / HTMLCanvasElement3 frames composed with borders, typography, date, and brand.
canvas.toBlob() → JPEGFinal image encoded to JPEG (~90% quality) on your device.
URL.createObjectURL() / Web ShareFile handed directly to the browser. Never touches a server.
Result
Your photos never leave your device.
Tech stack
What DENOIR never does
See it in action.
Enter Booth