My Digital Photo Workflow

I’ve been wanting to write this article about my photography workflow for a while, but with it being constantly refined and me struggling to get my thoughts down, it’s taken a while. So here is exactly how I process my digital photo assets with Canon gear, Lightroom Classic, and Apple Photos. It’s the workflow I’ve refined over years of shooting, and it’s designed to be fast, predictable, and family-friendly at the sharing end. Nothing here is theoretical—this is what I actually do every week.

My goals and ground rules

I keep one catalogue and one source of truth. Lightroom Classic (LrC) is my asset manager and editing environment, and my Synology NAS holds the masters. Apple Photos (Photos) is purely for distribution—what the family sees on their phones, iPads, and Apple TV. It contains a subset of the photos in LrC and only those photos that are good enough to share – it is effectively my published work. I don’t physically delete rejects; I remove them from working Collections but keep the files on disk. Every photo I keep in Lightroom carries a policy keyword—Externally Processed—so I can see at a glance what’s been brought from LrC to Photos.

Where everything lives

All originals live on the NAS: Canon RAWs, iPhone photos, videos, exports—everything. I work on a MacBook Air and use Synology Drive with pinned folders so current projects are available offline. The catalogue and previews are on the laptop’s SSD for speed; the images themselves sit in project folders on the NAS under top-level categories: Trips & Travel, Events, Outings, and General.

How new photos arrive (and how I avoid the loops)

Nearly all roads lead through the iPhone because it keeps everything simple when I’m out and about. I’ve set Lightroom Mobile on the phone to auto-add from the Camera Roll, i.e. any new images that are in Apple Photos. Any time I transfer Canon RAWs to the iPhone, they land in Photos first and Lightroom Mobile immediately picks them up and pushes them to Adobe Cloud. I’ve got 20 GB of capacity there—not heaps, but enough for short bursts while I process on the Mac.

For the Canon transfer itself I default to Wi-Fi via the Canon Camera Connect app, configured to pull RAW-only. If I’m shifting a big batch, I’ll use a cable or a card reader and import RAWs straight into Photos; same destination in the end. I’ve also used the CC&C app when it’s more convenient; again, it deposits RAWs in Photos and the chain takes care of the rest.

Any photos that I have taken on my iPhone will also be picked up by LrC on the iPhone, so the flow is very similar to the Canon camera route. I tend to shoot mostly in RAW (DNG) on the iPhone.

Back on the Mac, Lightroom Classic syncs and downloads those images into my “Lightroom Sync” intake location as dated subfolders. From there I move the folders to their proper place on the NAS within the Folders panel (never in Finder). During this window I have double cloud safety—iCloud and Adobe Cloud—until I clear the queue.

It’s worth pausing here and just going back to the final point above. By pushing images into Photos to begin with (in addition to photos taken on the iPhone), then end up in iCloud Photos almost instantly and that is the first backup. When I then pull them into Lightroom on the iPhone and it uploads those imported photos into Adobe Cloud, that is my second backup. They remain until I have uploaded them, via LrC, to my NAS.

There’s one booby trap you only need to step on once to remember forever: after I publish JPEGs to Apple Photos, those same JPEGs try to sneak back into Lightroom Mobile on the iPhone because of auto-add. To avoid this “JPEG backflow,” I either quit LrC and quickly delete those just-published JPEGs in Lightroom Mobile before reopening LrC, or I toggle auto-add off during publishing and turn it back on afterwards. That keeps the cloud clean and my Adobe quota intact. The important thing is that only RAWs make it from Lightroom on the phone to LrC on the Mac.

Filing and naming so I can find anything

I like to start from truly bare RAWs—no import preset, no auto looks. New downloads hit a “New Photos” intake area, then I drag-move them to the correct category on the NAS (Trips & Travel, Events, Outings, or General). I immediately rename the folder to YYYY-MM-DD – Description, for example, “2025-11-08 – Fireworks in Tring”, under Outings/2025. I then create a Collection with the exact same name and drag the images into it. That mirrored structure means the Folders panel and Collections panel always agree, and I can drive everything from Collections without wondering where anything lives on disk. There are collection sets that closely mirror the original NAS folders to keep it consistent.

Processing: how I get from raw capture to finished keepers

I open the new Collection, select all, and apply my look preset that includes Adobe’s Adaptive Colour. That gives me a consistent baseline without crushing individual images into the same mould. Then I step through one by one in the Develop module. I crop first—composition decisions make all other edits faster—then I tweak exposure, contrast, and white balance. During this stage a rate the images. I have Auto Advance set up in LrC so star ratings move me forward automatically.

My rating rules are simple and unambiguous:

  • 4★ means “share this” (it will go to Apple Photos).
  • 3★ is “technically fine but not a hero” (alternates, context).
  • 2★ is a technical fail—motion blur, missed focus, etc.

At the end of the pass I filter to 2★ inside the Collection and remove those from the Collection only. I never delete from disk; I might still want the frames for reference or a future composite.

Metadata and tagging without wasting time

I set copyright and author metadata in-camera, so it’s already embedded in the RAWs when they hit Lightroom. I prefer to finish processing first and then tidy metadata so I don’t waste energy on 2★ images.

Three Smart Collections drive the cleanup:

  1. A library-wide view of photos that do not contain the keyword “Externally Processed”—my policy guardrail.
  2. All 3★/4★ photos with no GPS—keepers must have a place.
  3. All 3★/4★ photos that haven’t been processed by Anyvision (John R. Ellis’s plug-in), which I use to auto-generate descriptive keywords. It also adds the keyword Anyvision so I can see what’s been tagged.

For GPS I’ll copy coordinates from adjacent frames (sync only the GPS field) or use the Map module and drag the images onto the correct pin. Address Lookup is handy to fill City/State/Country. On export I remove location for anything sensitive. I have geotagging in my cameras, or at least using the Camera Connect app to set the location on the camera, and therefore most images do not need any adjustment to their coordinates as they are already tagged.

Anyvision’s Classify feature adds content keywords in one go. I tend to leave Anyvision to it, and don’t need to change anything in the keywords once it’s completed its processing. One shortcut, particularly useful for older images that I may be working on, is that Anyvision can attempt to identify where an image was taken. That is why in some cases I will run it before reviewing those images that are missing location information. When those three Smart Collections are empty for the set, I’m done.

When mobile editing makes sense

If the images first appear on the iPhone or iPad, I’ll often do quick edits there—crop plus a preset—so I can share a version to Messages or socials without waiting to get back to the desk. I copied my LrC presets to Lightroom (desktop)on the Mac and they sync to Mobile, so looks match. When I open LrC, the edits arrive with the images and I resume the usual process. No forks, no sidecars, no drama.

Publishing to Apple Photos without tears

After a fair bit of searching and zero joy trying to connect LrC directly to Apple Photos, I landed on a plug-in called LRPhotos. It’s brilliant. I set up LRPhotos Publish Services, one for each of my top-level Collection sets—Events, General, Outings, and Trips & Travel—so albums inside Photos track collections inside Lightroom.

When I have finished processing a LrC collection and metadata is tidy, I filter the Collection to 4★, right-click the appropriate LRPhotos group, and create a Published Collection with those selected photos. I give it exactly the same name as the Lightroom Collection. Before I publish, I go into Apple Photos and delete the original RAWs for that set so I don’t end up with mixed RAW/JPEG duplicates (although sometimes I may do it afterwards). Back in LrC I add a green colour label to the photos being published—just before I publish—so the label change doesn’t immediately mark them for republishing. Green means “this photo is in Apple Photos.” Then I hit Publish. LRPhotos creates a matching album and uploads the JPEGs using my standard settings: sRGB, quality ~90, no resize, Screen/Standard output sharpening. Titles, captions, and keywords go with them; I almost always include GPS location data.

Once the album lands in Photos, I select the new images and move them to the Shared Library so the whole family sees them. Then I run the JPEG backflow guard on the phone (delete those new JPEGs from Lightroom Mobile before reopening LrC, or toggle auto-add off during publishing) and the loop is clean.

Updating albums later without breaking things

Edits happen. When I change an image that’s already been published—or when I remove or add something in a Published Collection—Lightroom shows it under “Modified Photos to Re-Publish.” I hit Publish, and LRPhotos does something clever: it tags the previous Apple Photos items with keywords indicating out-of-date or deleted. That produces duplicates at first, but it gives me a safe broom. LRPhotos cannot delete anything from Apple Photos anyway.

I keep a Smart Album in Apple Photos that catches anything with those LRPhotos keywords. After a republish I open that Smart Album and delete everything inside it. That clears the stale versions and leaves just the fresh ones in the target album. If I want to share to the broader family I move the imported photos to the Apple Photos shared library. It’s not true “replace in place,” but in practice it achieves the same outcome with very little effort and a lot of transparency.

Using Adobe Cloud on my terms

I’m tight with Adobe Cloud: full-res arrives there when I import via the phone, and I clear it as soon as the batch is safely on the NAS and in the catalogue. For ongoing access I rely on Smart Previews, which don’t count against the 20GB storage quota. I regularly sync 3★ and 4★ keepers to the cloud as Smart Previews so I can browse and do light edits on mobile. For older shoots I’ll batch up Collections by event and sync those too. In LrC I mark Collections yellow while they’re pending processing, flip them green when done, and then turn off sync for the Collection. The Smart Previews stay available even after the switch is off. If a synced Collection contains 2★ rejects, I remove those from the cloud so only quality (and any deliberately pending items) remains visible on the phone and iPad.

Why this works for me

This system gives me the freedom to shoot on Canon, hand off quickly through the phone when needed, and still keep an iron-clad archive with predictable naming and structure. Lightroom Classic stays the brain; the NAS stays the heart. Apple Photos is simply the face the family sees. With LRPhotos, versioning is safe and obvious. With the Externally Processed keyword and a few laser-focused Smart Collections, nothing falls through the cracks. And because I never really delete, I can revisit decisions without digging through bins.

It isn’t flashy, but it’s resilient. I can step away for a month and pick it up again with zero relearning. That’s why this workflow works for me: it gets out of the way, even when life doesn’t.

Forests

I do love a good forest. I recently spent a couple of weeks in Germany, a country covered in beautiful forests, and had the chance to go walking amongst the trees.

German forests tend to have wide, graded paths that can be used by walkers, cyclists, and any vehicles that need access. Even on a miserable day after a good drenching it’s still possible to walk amongst the trees without getting covered in mud.

On my first walk, about 5.5km around the forests of Winterberg, I took my Canon G5x II with me and grabbed some shots.

Below are some the photos from that grey Spring day:

It’s nice to see a working forest, complete with saw mill, and this one is healthy. I say that because the last German forest I explored was in the Hartz mountains where an invasive beetle has been destroying the trees. This particular beetle does seem to prefer evergreen trees and doesn’t seem to have either made it into the Hochsauerland where these photos were taken, or found the right sort of trees to get a good feed.

Sawmill outside Winterberg

I should mention that when I set out on this walk I was actually looking for the source of the Ruhr river, which ends as a significant tributary to the Rhein, meeting it in Duisburg. In fact the Ruhr river has given its name to an entire industrial region in Western Germany, so it’s not too insignificant and I thought it would be worth hunting down its source.

The source of the Ruhr River… that’s it!

I’ll finish with a few more photos taken on another walk to the same spot, but on a slightly more cheerful day and with my Canon 90D in hand: