HolleySTUDIO home
Wedding · Portrait · Commercial · Drone

Lightroom exports. The rest is automated.

We built a full photography operations system for our own studio — Holley Creative — and it runs in production. GPS stripped. Copyright embedded. Three responsive sizes. Portfolio published. In under five minutes from a single CLI command.

It's now available as a custom build for photographers who shoot 10+ sessions per year and are losing hours to post-production admin.

91%

Faster than manual export → publish workflow

3

Responsive image sizes generated per photo

$0.05

AI alt text + category for 100 images

0

GPS coordinates in any delivered file

Built for us first. Available for you now.

The portfolio at holley-creative.com runs entirely on this system.

Every image on that site was processed by the same CLI pipeline we're offering here — GPS stripped, copyright injected, three WebP derivatives uploaded to Cloudflare R2, reviewed in the admin grid, and published to the portfolio in a single workflow. This is not a demo. It's a live production system we run on every shoot.

The real problem

Lightroom is the easy part. Everything after is the problem.

Post-shoot admin kills the weekend

After a wedding, you spend 45+ minutes per shoot: culling in Lightroom, exporting, uploading to a CDN, copying URLs, updating your portfolio, re-doing EXIF. Before any editing happens.

Your GPS coordinates ship with every photo

Default JPEG exports embed the exact GPS location of every shot. Lightroom doesn't strip this automatically. If you shoot at a private estate or client's home, that data goes public the moment you share the file.

Your files have no authorship

Copyright in a watermark is visual — copyright in the file metadata is legal. Most photographers deliver images with no embedded copyright, Artist, or licensing fields. The file says nothing about who made it.

Portfolio updates are manual busywork

Drag → upload → copy URL → paste into CMS → publish. Repeat for 40 images. Then a client asks for a full-res download link and you start over. There's no connection between what you uploaded and what's in the database.

What we build

Photography Operations System

A custom system built around your Lightroom workflow. You export. One command handles everything from there — derivatives, EXIF cleanup, copyright, CDN upload, admin review, and portfolio publish. Every image is traceable from source file to live URL.

$4,500– $8,500

Flat rate. Scoped to your specific workflow, stack, and delivery requirements.

Scope my system →

What's included

  • CLI intake pipeline: folder of Lightroom JPEGs → 3 WebP derivatives → Cloudflare R2 CDN in one command
  • EXIF privacy layer: GPS stripped, camera serial removed, copyright + artist + licensing fields injected on every file
  • Three responsive image sizes per photo: 400px (mobile/grid), 1200px (portfolio display), 2400px (lightbox/download)
  • Admin review grid: approve, reject, caption, and AI-suggested alt text for each image before it goes live
  • AI classification: Claude vision suggests category and writes accessibility alt text — ~$0.05 per 100 images
  • One-click publish: approved images → portfolio item with srcset, structured DB record, and full audit trail
  • Batch-complete notification: email when CLI finishes so you know when to review, without manual checking
  • Client gallery delivery: access-token links with expiry, download resolution control, and view tracking

The workflow

One command. Every photo handled.

01

Export from Lightroom

Use your existing export preset. JPEGs at 95% quality, sRGB. Drop them in a folder. That's your only job.

02

Run the CLI

One command: intake-batch --folder ~/exports --label "Smith Wedding" --batch-key smith-wedding-2026. Everything else is automatic.

03

Review & publish

Open the admin grid. Approve photos, check AI alt text suggestions, set categories. Hit Publish. The portfolio updates instantly.

The stack

Built on tools that last.

No subscription-based gallery platforms with $30/mo price hikes and plugin breakages. Your images live on your Cloudflare R2 bucket, your database, your domain.

Lightroom Classic (export preset — no plugin required)
Cloudflare R2 (CDN — no egress fees)
exiftool-vendored (EXIF filter + copyright injection)
sharp (WebP at 400 / 1200 / 2400px, parallel generation)
Claude Haiku Vision (AI category + alt text suggestions)
Supabase PostgreSQL (intake audit trail, review workflow)
Next.js Admin (approve/reject grid, publish flow)
n8n (batch-complete email notification)

Not another gallery subscription

Own your infrastructure.

Gallery platforms (Pixieset, ShootProof, Pic-Time)

  • $25–65/month, every month, forever
  • Plugin reliability issues at 5,000+ image catalogs
  • Your images on their CDN — you can't migrate without re-uploading
  • No EXIF privacy control — GPS handling varies by platform
  • No admin review stage before client delivery
  • No traceability from source file to published image

Custom Photography Operations System

  • One-time build cost. Your R2 storage is ~$0.015/GB/month
  • No plugin — Lightroom export to any folder, CLI handles the rest
  • Your Cloudflare R2 bucket, your CDN, your domain
  • GPS stripped from every file before upload — enforced, not optional
  • Admin review grid before any image goes live
  • Every image traceable: source SHA-256 → R2 key → portfolio URL

Not ready to commit to a full build?

Start with the AI Quick-Win Pilot — $500 flat.

We build the EXIF cleanup + derivative pipeline for one shoot worth of images. You run it, see the output, verify it works for your workflow. Full credit toward the full system if you proceed.

Case study

Read how we built this for our own studio.

The full technical breakdown — stack, outcomes, and the pipeline from Lightroom export to published portfolio — is documented in our case studies. Holley Creative is the live proof of concept.

Read the case study

Common questions

Do I need to change my Lightroom workflow?

No. You keep your existing export preset. The only change is where you export to — a folder the CLI can read. Everything from that folder forward is automated.

What happens to my original files?

The CLI only reads your source files — it never modifies them. The processed WebP derivatives are what gets uploaded to R2. Your originals stay in Lightroom and on whatever backup drive you use.

Can I control what EXIF data is stripped vs. kept?

Yes. The default strips GPS, camera serial numbers, and lens serials. It preserves camera make/model, lens model, aperture, shutter, ISO, and focal length — the data that establishes creative context without privacy risk. You can configure what's kept and what's removed.

What does 'client gallery delivery' mean in practice?

After you approve images in the admin grid, you can publish them to a password-free, access-token gallery link with an expiry date and download resolution control. The client gets the link; you control whether they can download at 400px or 2400px, and whether the link expires.

Can this be built for my existing website?

Yes. The system is stack-agnostic on the delivery side. The admin pipeline and R2 storage work regardless of where your portfolio lives. We can deliver images to any CMS or static site.

How long to build and deploy?

Typically 3–5 weeks from scoping call to first real shoot processed. Week 1: infrastructure setup (R2, Supabase, env). Weeks 2–3: CLI + derivatives pipeline. Week 4: admin review UI. Week 5: testing with real images from your camera.

You edit the photos. The system handles everything else.

Built and used in production at Holley Creative — available as a custom build for your studio.