A disposable camera on your own phone
Latent began as a camera for one wedding, so guests could take candid photographs on their own phones. It opens in the browser, so taking part does not require an app installation or an account.
The disposable-camera constraint shapes the experience. Guests have a limited number of shots, and each photograph stays hidden after the shutter is pressed. There is no preview or retake. When the hosts open the gallery, the individual rolls become a shared collection of moments from the event.
From a camera to a keepsake
The camera keeps attention on the viewfinder, the shutter, and the shots remaining. The gallery turns the photographs into a contact sheet of numbered prints. Guests can open a photograph, move through the collection, like their favourites, and save framed keepsakes.
Sage and ivory surfaces, quiet typography, and the print framing carry through the whole flow. The gallery carries the disposable-camera idea through to the photographs guests take home.

The public demo uses sample photographs. Photo credits.
Keeping the event private
The event application separates the interface from the media path. Next.js runs the guest and admin screens, while Supabase holds session, photo, quota, and gallery-release state. Photographs live in a private Cloudflare R2 bucket and are accessed through short-lived signed grants.
Captured JPEGs go directly from the browser to a Cloudflare Worker. The Worker applies the frame, creates the image variants, and returns a signed receipt. The application verifies that receipt before committing the photograph to the database. This keeps photo bytes out of the application server and lets repeated upload attempts resolve to the same photograph.
Hosts can control guest access and gallery release, moderate photographs, and export the event archive through a separate admin interface.
Try the public demo
The demo at snap.ltanaka.me uses the same camera, gallery, photo viewer, and keepsake renderer with generic Latent branding. You can explore the sample gallery without opening the camera, or grant camera permission to try taking your own shots.
Demo photos and likes stay in memory on your device for that session. They do not join the private event gallery. The demo shows the experience without exposing wedding photographs or opening the event administration to visitors.