# Build brief — a focused alternative to Dazz Cam

> **Verdict:** Yes, for personal use · **Buildability:** 72/100 · **Category:** Photo Editing
> **Source:** https://www.canitbevibecoded.com/dazz-cam
> Independent editorial assessment from Can It Be Vibe Coded? Not affiliated with, endorsed by, or derived from Dazz Cam. Verify current pricing and capabilities before acting.

## Context

**Dazz Cam** — Shoot through emulated film stocks, disposables, CCD digicams, and VHS camcorders. It currently costs $6.99/mo.

A film look is a color pipeline: white balance shift, tone curve, channel bias, grain, vignette, bloom. Core Image gives you every one of those primitives on-device, and an agent can wire a live Metal-rendered viewfinder, a camera carousel, and full-resolution capture in one session - this entry's prompt reproduced the core loop as a working iPhone app on the first shot. What you cannot one-shot is a decade of taste: Dazz's dozens of stocks are tuned against thousands of reference photos, and the difference between a filter and a look people recognize is exactly that tuning.

This brief describes a focused, single-operator replacement for the part of Dazz Cam that is genuinely reproducible. It is deliberately narrower than the product it replaces, and it says so in writing. Build the useful core; do not pretend to have rebuilt the rest.

## What you are building

A SwiftUI iPhone camera app with a live-filtered Metal viewfinder, a snap carousel of nine film looks including a date-stamped VHS mode, full-resolution filtered capture, import-and-develop for existing photos, and a film roll gallery.

- Apply deterministic edits and batch operations to photos you own.
- A responsive interface with real empty, loading, success, and error states.

## Requirements

### Functional

- A Mac with Xcode and a physical iPhone - the simulator has no camera.
- A free Apple Developer account to sideload; 99 USD/year only if you want it on the App Store.

### Non-functional

- Accessibility: semantic markup, labelled controls, visible focus, and reduced-motion support.
- Security: server-side secrets, validated input, and no credentials in the client bundle.
- Reliability: retries with backoff on external calls, and a clear failure state when a provider is down.
- Portability: the operator can export their data and leave without losing it.

## Implementation brief

Build me a vintage film camera app like Dazz Cam for iPhone. Requirements:

- SwiftUI + AVFoundation + Core Image (Metal-backed), no third-party packages. Full
  Xcode project from an empty folder: portrait-only, camera + photo-library usage
  strings in Info.plist.
- The viewfinder itself renders through the active film look in real time (30fps+),
  never a plain preview with an overlay.
- Each look is one data struct - temperature, tone curve, channel bias, saturation,
  grain, vignette, bloom, optional chroma shift - so a new camera is data, not code.
  Ship nine: neutral, faded 80s negative, instant film, warm Gold 135, gritty B&W,
  Y2K CCD digicam, neon-violet 3D, expired film, and VHS with a burned-in orange
  date stamp.
- Horizontal snap carousel above the shutter to switch cameras with haptics; shutter
  press animation, flash toggle, front/back flip. Captures run at full sensor
  resolution through the same pipeline and land in an in-app film roll.
- Import-and-develop: pick any library photo, preview it through every camera, save.
  Film roll is a grid with Share / Save to Photos / Delete.
- On-device only: no accounts, no analytics, no network calls. Handle denied
  permissions with a Settings shortcut.
- README with build steps and how to add a film stock; a unit test proving a fixed
  image through a fixed stock is deterministic. Build it and fix errors before
  finishing.
- Out of scope: video modes, effect lenses, and Dazz's full stock library - this is
  nine good looks, not forty.

## Delivery standard

- Inspect the repository first, then write a short implementation plan before writing code.
- Deliver the smallest complete end-to-end workflow first; every primary control must work against persisted data.
- Use real validation and storage; never substitute fake dashboards, decorative controls, hard-coded success states, or mock integrations.
- Include responsive layouts plus genuine empty, loading, success, validation, and failure states.
- Keep secrets server-side in environment variables, provide .env.example, and never commit credentials or user data.
- Add structured logs around every external call and return actionable errors without leaking sensitive details.
- Write unit tests for the core logic and one automated test of the main user journey.
- Finish with a README covering setup, architecture, data location, backups, tests, deployment, and known limitations.

## Acceptance criteria

- [ ] A clean install starts the app using only the README and .env.example.
- [ ] The primary journey works from first visit through saved result, reload, edit, export, and deletion where applicable.
- [ ] Invalid input, missing configuration, provider failure, and an empty database each have a usable state.
- [ ] The interface works at 390px and 1440px, is keyboard navigable, and shows visible focus on every control.
- [ ] Tests, type checking, linting, and a production build all pass with no ignored failures.
- [ ] No part of the interface implies a live integration, security guarantee, or scale capability that was not actually built and verified.

## Non-goals

Do not build these, and do not claim to have replaced them:

- Dozens of hand-tuned film stocks refined over years of color work.
- The polished video modes - 8mm, camcorder wobble, stabilization.
- Special-effect lenses like fisheye, prism, and starburst done well.
- Ongoing filter drops that chase whatever look TikTok wants this month.
- One-tap install for friends who will never sideload anything.

## What you still own after launch

- Run migrations, backups, restores, and dependency updates.
- Test the critical journey after every model, API, or hosting change.
- Monitor failures and fix the edge cases a first prompt will miss.

## Risk

**Manageable.** A personal version is realistic if you test the critical journey and keep reliable backups.

Editorial confidence in this assessment: high. No reviewed project implementation is linked yet.

## Prior art

Working open-source software you can read, fork, or borrow from before starting:

- [GPUImage3](https://github.com/BradLarson/GPUImage3) — Metal-based real-time image and video filtering framework for iOS - the plumbing half of this app as a library

---

Generated by [Can It Be Vibe Coded?](https://www.canitbevibecoded.com) · Full report: https://www.canitbevibecoded.com/dazz-cam
