Photographer's RAW-to-web workflow — cull, edit, export, resize, compress, ship
You shot 400 RAWs at a wedding. The client wants 60 edited web-ready JPGs in a gallery by Friday. The flow from card to "live" has seven steps and four programs, and the last three — resize, compress, batch-export — are where most photographers burn a full evening because Lightroom exports one file at a time through a single-threaded pipe. Here's the honest end-to-end: ingest, cull, edit, export, then the browser-side batch finishing that takes 400 files from 180 MB each to 320 KB each in under three minutes.
The seven steps, honestly
- Ingest. Copy RAWs off the card to a dated folder on fast local disk. 10 seconds per card on USB 3.
- Cull. Flag keepers in Photo Mechanic, FastRawViewer, or Lightroom's library. 10-20 minutes for a 400-file shoot.
- Edit. Exposure, white balance, crop, retouch — Lightroom Classic, Capture One, or DxO PhotoLab. Time depends entirely on you.
- Export to JPG. One-click from the editor. Output: full-res JPGs, usually 5-12 MB each.
- Resize for web. 1600-2400px long edge for galleries, 1080x1080 for Instagram. This is where browser-side batch tooling wins.
- Compress. q=82 with 4:2:0 chroma. Drops 5 MB to 320 KB with no visible loss.
- Upload. Pixieset, SmugMug, a custom portfolio, an Instagram carousel.
Our role sits at steps 5, 6, and — for RAW-first shooters who skip Lightroom — an alternative path at step 4. We don't do culling, we don't do exposure correction, and we don't do retouching; those are specialty tools and always will be. What we do is batch the three mechanical steps that Lightroom's export dialog turns into a 30-minute coffee break.
Step 1 — Ingest, and why I don't recommend cloud-first
Phones and laptops have trained a generation to expect everything on iCloud or Google Photos. Don't do that for RAW files. A 25 MB Canon R5 RAW uploaded to iCloud over an average home connection takes ~20 seconds per file. 400 files = over two hours of your computer pinned to "uploading" before you've culled a single frame. Worse, iCloud converts HEIC/HEIF back and forth and iCloud Photos doesn't round-trip proprietary RAW formats well.
Copy to local SSD first. Backup to a NAS or external drive after the edit session. Cloud is the third copy, not the first.
Step 2 — Cull before you edit
The biggest time-saver in any photo workflow is ruthless culling. A 400-file wedding shoot contains maybe 60 delivery images. Editing all 400 is four hours of wasted work.
Photo Mechanic ($150, one-time) is the professional reference here — its ingest + cull loop is measurably faster than Lightroom's library module. FastRawViewer ($20) is the budget option and reads the embedded JPEG preview from the RAW so culling is near-instant. Lightroom's flag/pick system works fine but page-to-page is sluggish on 40MP+ files.
Aim for a cull rate around 85% (keep 15%) for event work, 50% for portrait sessions, 20% for landscape. Under-cull and you drown the edit stage; over-cull and you miss the hero shot.
Step 3 — Edit (we don't do this)
The RAW editor is where tone, color, and crop happen. These are irreducibly specialist tools because each one ships its own demosaic algorithm, color science, and lens-correction database. Honest choices:
- Lightroom Classic ($9.99/mo). Industry standard. Best AI masking in 2026 (subject, sky, background, people, objects). Catalog-based.
- Capture One Pro ($14.92/mo). Preferred by studio and commercial shooters. Better tethering. Session-based feels lighter than LR's catalog. Sharpest default rendering on Sony and Fujifilm.
- DxO PhotoLab 7 ($229, one-time). DeepPRIME XD is the best noise reduction on the market. One-time buy appeals if you hate subscriptions.
- RawTherapee (free). Open-source. Steep UI, exceptional output quality, zero cost.
- Apple Photos (free, Mac). Good enough for the casual case. RAW support is decent; masking is basic.
Any of these will export to JPG at full resolution. That JPG is the input to our batch pipeline. Which editor you use doesn't matter to us — we receive any JPG, ProRes, or modern RAW.
Step 4 — Export to JPG (with a note for RAW-direct shooters)
Most editors export JPG at q=90-100 with 4:4:4 chroma by default. That produces 5-12 MB per image for a 45MP camera. Keep those settings — you're saving the master JPG now and will recompress for web later. Don't let the editor do double duty; do resize-for-web in a dedicated pass.
If you're a hobbyist who doesn't use a RAW editor — say you shoot CR2 on a Rebel and just want web-ready JPGs without buying Lightroom — drop the RAWs straight into our CR2 converter or NEF converter. We demosaic in the browser with libraw, apply a neutral tone curve, and output JPG. It won't match a graded Lightroom export but it's a reasonable auto-develop for social or quick proofs.
Step 5 — Resize for web (the first high-leverage step)
A 45MP export is 8192x5464 pixels. No web display shows a photo that big. A typical gallery shows 1600-2000px. Instagram re-encodes anything bigger to 1080x1080 with its own dismal compressor, so you want to deliver exactly 1080x1080 and skip the re-encode.
Our resizer handles this as a batch: drop the folder, pick a preset, download a ZIP. Under the hood we run Lanczos resampling (the sharp, reference-quality choice) and we preserve EXIF by default so copyright and camera metadata survive. 400 files finish in about 90 seconds on a laptop.
- Client gallery: 2000px long edge, preserve ratio.
- Portfolio / website: 1600px long edge.
- Instagram feed: 1080x1350 portrait, cover-crop.
- Instagram carousel square: 1080x1080, cover-crop.
- Story / Reel: 1080x1920 vertical.
- Print proofs at 4x6: 1200x1800 at 300 DPI.
Step 6 — Compress (the second high-leverage step)
A 2000px JPG at editor-default q=95 with 4:4:4 chroma is still ~1.2 MB. Drop to q=82 with 4:2:0 chroma and the same image is 320 KB — almost 4x smaller, visually identical. Our JPEG compressor runs MozJPEG in your browser with these as the defaults. Chain it directly after the resize step.
Order matters. Always resize first, then compress. Filesize scales with the square of dimension ratio, so a 2x dimension cut is a 4x byte cut before compression even runs. Compressing the 8192px master before resizing wastes the compress pass on pixels you're about to throw away. See the resize-first rule for the math.
For a deeper dive on the quality curve and chroma subsampling, our compression guide has the q=85 vs q=95 numbers.
Step 7 — Upload
Your delivery platform — Pixieset, SmugMug, ShootProof, Instagram, a custom Next.js portfolio — receives the finished 320 KB files. They upload in minutes instead of hours because they're already right-sized. The client sees the gallery same-day.
How our batch pipeline compares — honestly
Lightroom has a Publish Services feature and an Export dialog that can do resize + quality in one pass. It works. But it's single-threaded on the export pipe, and exporting 400 full-res master JPGs plus a separate 400 web-size JPGs means running the dialog twice. Here's where each tool actually lands:
| Tool | Cost | Where it wins | Where it loses |
|---|---|---|---|
| FireConvertApp (batch resize + compress) | Free | 400-file folder drop, in-browser, no upload, preserves EXIF, one pass from master JPG to web-ready output, presets for every social platform and gallery size, chains resize to compress automatically | Not an editor — won't fix exposure or color. You need a RAW editor first for anything beyond neutral auto-develop |
| Lightroom Classic Export | $9.99/mo (Photography plan) | Already where your edits live; sharpen-for-output profiles; publish directly to Flickr/SmugMug/Facebook; watermark option; consistent with the rest of your catalog | Single-threaded export is slow on 400+ files; resize math uses pixels OR long-edge but not both intuitively; two passes needed for master + web; export presets don't chain |
| Squoosh (Google) | Free | Best-in-class single-image quality tuning; side-by-side before/after; shows file size delta live as you drag quality | One file at a time — not built for batch; no folder-drop flow; see full compare |
| TinyPNG / TinyJPG | Free up to 20/mo, $25/yr paid | Strong compressor; simple API for automation; mature free quota | Uploads every file (privacy concern for client work); caps batch size on the free tier; no resize; see full compare |
| Photoshop Image Processor | $22.99/mo (Photography plan) | Pixel-accurate output, color-managed, scriptable via Actions, can run custom adjustments during the batch | Overkill for the resize+compress job; Actions have a learning curve; PS is slow to launch for a quick pass |
| ImageMagick / sharp CLI | Free | Fully scriptable; reference tooling; runs on a headless server for automated pipelines | Terminal-only; no UI for client-by-client presets; easy to ship wrong output with the wrong flag |
| XnConvert | Free (personal) | Desktop batch tool for Windows/Mac/Linux; 500+ formats; mature | Dated UI; slower than browser-side WASM for large batches; no per-preset chaining to compressor |
Honest summary: keep Lightroom or Capture One for the edit, use our resizer and compressor for the finishing pass. Squoosh is great for tuning one hero image; TinyPNG is fine if you don't mind the upload and the quota.
A concrete 400-file wedding workflow, timed
- Ingest (10 min): two 256 GB cards to SSD.
- Cull in Photo Mechanic (25 min): 400 to 72 keepers.
- Edit in Lightroom (2h 30min): tone, WB, crop, one-click presets.
- Export master JPGs (6 min): full-res, q=95.
- Resize batch in browser (90 sec): 2000px preset.
- Compress batch in browser (60 sec): q=82, 4:2:0.
- Upload to Pixieset (3 min): zipped, fast.
Total hands-on time: about 3h 20min. Steps 5-7 combined are under 6 minutes. Swap Lightroom's two-pass export-at-2000px-and-compress flow in at step 5 and the same batch takes 20-30 minutes, depending on your CPU.
Works well / doesn't work
Works well
- Batch resize + compress after Lightroom or Capture One export
- Instagram-ready resizing to 1080x1080, 1080x1350, 1080x1920 with cover-crop
- Privacy-sensitive client work (nothing uploads; runs in your browser tab)
- Direct RAW-to-JPG for CR2/CR3/NEF/ARW/RAF/DNG when you don't use a full editor
- Preserving EXIF metadata (copyright, camera, lens, settings) through the batch
- Chaining resize to compress in one folder drop
Doesn't work (well) yet
- RAW editing — no exposure, WB, or tone curve adjustments. Use a RAW editor for that
- AI masking or subject-aware crop — not in the batch resizer; coming
- Watermarking — not built in; use Lightroom export for watermarked versions
- Tethered shooting — outside scope; use Capture One or Lightroom
Common questions
Can I skip Lightroom entirely?
Only if you don't need exposure, white balance, or tone curve adjustments. For social snapshots from a hobbyist shoot, our RAW-to-JPG converters auto-develop with a neutral curve and the result is usable. For paid client work, you need a real editor.
What long-edge size for client galleries?
2000-2400px. Covers retina laptops, preserves enough detail for clients to view at near-full-screen, lands around 300-500 KB after q=82 compression. Don't go bigger unless the gallery offers paid downloads — you're just handing away the full-res file.
Should I sharpen for output?
Yes, but do it in Lightroom at the export stage, not after resize. LR's "Sharpen for Screen" applies unsharp-mask tuned to the output size. Our resizer doesn't add sharpening because after Lanczos there's usually no visible loss to recover. If you're working direct-RAW-to-JPG without LR, add a light USM in the compressor step (roadmap feature).
What about AVIF or WebP for galleries?
AVIF is ~50% smaller than JPG at matched quality, WebP ~20% smaller. In 2026 browser support is universal for both. Gallery platforms like Pixieset still prefer JPG because downloaders expect it; custom portfolios should ship AVIF with a JPG fallback via <picture>. See the AVIF vs WebP breakdown.
How do I handle vertical shots in a 1080x1080 batch?
Our resizer cover-crops centered by default, which works for 90% of portraits (face goes center). For full-body or environmental portraits, switch to "contain" with a white or brand background, or use a 1080x1350 portrait preset instead.
Is it safe to upload client photos to your tool?
We don't upload. Our resize and compress both run via WebAssembly in your browser — the file never leaves your laptop. That's a real benefit for NDA client work, pre-release product shoots, and personal family photos.
What RAW formats do you support?
Canon CR2 and CR3, Nikon NEF, Sony ARW, Fujifilm RAF, Adobe DNG (universal), Olympus ORF, Panasonic RW2, Pentax PEF. We use libraw compiled to WASM, so support covers every body libraw supports (~800+ cameras). See CR2 and NEF tools.
Ready?
Shoot it, cull it, edit it, export JPG. Then drop the folder into our resizer, chain to the compressor, and upload. Three minutes instead of thirty. Free, in your browser, no upload, no watermark, no sign-up. If you shoot RAW and skip Lightroom, start at Canon CR2 or Nikon NEF instead.