Skip to content

Anyone asking how to organize references by project is usually expecting a single rule — folders, always, or tags, always — and the honest answer is that the two solve different versions of the same problem. A project whose files genuinely belong to it and nowhere else is a folder. A project that shares assets with two others, or reuses a location library across an entire season of work, needs something that doesn't force one file to live in only one place. Most real libraries end up using both, and deciding which applies to which project is the actual skill here, not memorizing one convention and applying it everywhere.

The reason this needs deciding at all, rather than defaulting to whichever structure a different tool trained you to expect, is that both folders and tags cost something different. A folder is free to search — in: scopes to it with no setup — but assumes a file belongs to exactly one place. A tag costs a moment of applying it by hand but lets a single file answer to as many projects as actually use it. Neither is more "correct" than the other; they're suited to different shapes of project, and the steps below work through both.

Step 1: Default to a folder when a project owns its files outright

If a shoot, a client job or a piece of work produces references that belong entirely to it, a dedicated folder is the simplest structure and the one that needs the least explaining to anyone else who opens it later.

~/Projects/Harbor-Campaign
  • Location scouts
  • Approved
  • Boards
  • coii-thumbnailswritten by Coii Ref
  • coii-proxieswritten by Coii Ref
  • coii.dbwritten by Coii Ref
A self-contained project folder — sources, approved picks and boards all live together, and the whole thing moves or archives as one unit.

Registering that folder as part of the wider workspace means everything inside it is searchable the moment it's indexed, with no separate import step for each new project — the folder itself is the only setup required.

Neither approach requires deciding on a library-wide policy before starting a single project. A photographer with one recurring client and a dozen one-off jobs can run folders for the one-offs and a tag for the recurring client's work, in the same workspace, without either choice interfering with the other — the app has no concept of a library-wide organizing scheme to violate, only files, folders, and tags applied to individual files.

Step 2: Scope a search to one project with in:

Once several project folders exist side by side, in: keeps a query from returning results outside the one you're actually working in.

/in:~/Projects/Harbor-Campaign rating:>=4 -is:favourite
in~/Projects/Harbor-Campaignrating>=4notisfavourite
27 items
Everything worth a second look on this project alone, scoped by folder so nothing from another project's shoot mixes in.

That scoping is free — it doesn't require a project-specific tag or any setup beyond the folder already existing where it does. For a project whose files genuinely stay inside its own folder, in: is often the only project-level filter that's ever needed.

Both structures answer the same underlying question — "what belongs to this project" — using entirely different mechanisms, which is precisely why they compose rather than compete: a folder answers it by physical location, a tag answers it by an explicit label applied per file, and a single project can lean on either or both depending on how its own files actually behave.

Step 3: Reach for a tag when a file serves more than one project

A folder assumes exclusive ownership, and not every file has that. A location library reused across a season, a texture set that shows up in three unrelated jobs, or a recurring model's turnaround sheet — none of those want to be duplicated into every folder that references them. A tag handles that case directly: apply project-atlas to a file without moving it anywhere, and it shows up in that project's searches without leaving wherever it already lives.

/tag:project-atlas -tag:archived rating:>=3
tagproject-atlasnottagarchivedrating>=3
21 items
A tag reaching across folders to gather a project's files — including ones that also belong to another project and were never moved to get here.

Whether a project is folder-based or tag-based isn't an either-or across the whole library; it's a call made per project, based on whether its files are actually exclusive to it.

A project can also change which approach fits it partway through its own life — a job that started as a single self-contained shoot and grew into something drawing on a shared asset library doesn't need to be rebuilt from scratch when that happens. The folder stays exactly where it is; a tag gets added for the shared pieces once they're actually needed, layered on top of a structure that was already working fine for everything else.

Step 4: Keep the project's boards inside its own folder

A canvas saved outside the project it belongs to is easy to lose track of the moment the project wraps. Saving it inside the same folder — a Boards subfolder is a reasonable convention — means the project's layout work travels with everything else the moment that folder gets archived, backed up or handed to someone else.

harbor-hero-moodboard.coii-canvas
The project's board, saved inside the same folder as the images it draws from — nothing about it lives anywhere separate to remember later.

Sharing a board without a cloud account and keeping a board under version control both assume this: a board that already lives inside its project's folder is one file away from being sent or tracked, rather than something to hunt down first.

Step 4b: Naming a project folder so it sorts the way you'd expect

A short, consistent naming pattern for project folders — client name first, or date first, whichever gets used more often when scanning a folder list by eye — makes a growing set of project folders easier to scan without opening any of them, which matters more the moment there are enough active and recently finished projects sitting side by side that alphabetical order alone stops being enough to find the right one quickly.

Step 5: Save a view per active project instead of retyping the scope

A project that's being searched repeatedly over weeks is worth turning its in: query into a saved view once, rather than retyping the same folder path every time a search starts. The view re-parses on open, so renaming the project folder is the only thing that would ever require updating it.

Step 6: Archive a finished project without losing what's in it

A project that's done but staying in the active workspace can be tagged archived rather than moved, which keeps it searchable but easy to exclude from day-to-day results with a simple -tag:archived. A project leaving active work entirely is better moved onto an archive drive registered as its own workspace — either way, because the project's files, tags and boards live together in one folder, archiving is a move or a tag, not a multi-step export.

Step 7: Combine both inside a single project when it needs it

A folder-based project isn't limited to in: alone once it's underway — a tag for status within that project, draft or approved, layers on top of the folder scope without contradicting it. in:~/Projects/Harbor-Campaign tag:approved is a normal query, folder and tag together, and it's a reminder that the folder-versus-tag decision above is about how a project relates to the rest of the library, not a rule about what's allowed inside one project's own folder.

/in:~/Projects/Harbor-Campaign tag:approved type:image
in~/Projects/Harbor-Campaigntagapprovedtypeimage
16 items
A folder scope and a status tag together — the folder keeps this project separate from the rest of the library, the tag tracks where each file stands inside it.

Step 8: Bring a new collaborator up to speed on the structure

Handing a project folder to someone who's never worked in this library before goes faster when the structure inside it is self-explanatory — consistent subfolder names, a board that's easy to find because it's always in the same place relative to the images. Nothing about that consistency is enforced by the app; it's a convention worth deciding on before the second project exists, since retrofitting a naming pattern onto folders that have already diverged is far more work than starting with one.

Step 6c: A single asset library shared by every project

Some references never belong to one project at all — a swatch library, a standing set of brand assets, a texture archive built up over years and drawn on by whatever's currently active. Those are worth their own root, registered independently of any individual project folder, tagged by category rather than by project, and reached from inside a specific project's search only when a project tag is deliberately combined with one of the shared library's own tags.

A worked example: one recurring location across four projects

A studio location shot repeatedly across a year of unrelated client work is the clearest case for a tag over a folder — the images don't belong to any one project, and copying them into four separate project folders would mean four copies to keep in sync every time a new shot gets added.

/tag:studio-b-location type:image
tagstudio-b-locationtypeimage
64 items
One location's full set of references, tagged rather than duplicated into every project that's used it — one file, findable from four different project searches.

Tagging the location once and letting each project's own tag sit alongside it — tag:project-harbor tag:studio-b-location on the handful of files that are both — covers the overlap without either project owning files it shouldn't.

Step 9: What changes when a project outgrows its folder

A project that starts small and grows — a single shoot that becomes a season-long campaign, say — doesn't need its structure rebuilt from scratch. The folder it started in keeps working exactly as it did; what usually needs adding is a status tag once "everything in this folder" stops being specific enough, or a split across more than one drive once the project's raw footage alone outgrows the drive it started on. Both of those layer on top of the original folder structure rather than replacing it, which is the practical benefit of starting with the simpler option: growing into tags or multiple drives later costs a query adjustment, not a reorganisation of files that already exist.

Common mistakes worth avoiding

Forcing every project into a folder, including ones that share assets with others, is the most common one — it leads to the same file copied into several folders, which then drift out of sync the moment one copy gets tagged or rated and the others don't. The opposite mistake is tagging everything and never using folders at all, which works but loses the free scoping that in: provides for a project whose files genuinely are exclusive to it. And leaving a project's board in a separate, general "Boards" folder outside any project structure — convenient in the moment, and the first thing that goes missing when the project itself gets archived or handed off.

Deciding which projects get which treatment, quickly

For anyone starting a new project and unsure which structure fits, the question worth asking is simply: will anything in this project ever need to be found from a search that isn't scoped to this project alone? If the answer is no — a self-contained shoot, a one-off job with no shared assets — a folder is the right and simpler choice. If the answer is yes — a recurring location, a shared prop library, an ongoing client whose work spans several distinct jobs that still need to be told apart — a tag, or a folder with a tag layered on top for the shared pieces, is worth the extra step of applying it by hand. That one question settles the decision faster than trying to reason abstractly about the tradeoffs each time a new project starts.

What to do as the number of active projects grows

A consistent subfolder pattern — sources, approved, boards — repeated inside every project folder makes each new project fast to set up and easy to navigate without relearning its structure. For projects that lean on tags instead, keeping the tag vocabulary to one tag per project, rather than a project tag plus several sub-tags, keeps -tag:archived and similar exclusions simple even once dozens of projects, active and finished, share the same workspace.

Organizing reference images on a Mac covers the broader structure this fits into, and setting up saved views covers step five in more depth. What a smart folder is and tags versus folders for images are worth reading for the wider version of the folder-or-tag question this page answers per project rather than once for the whole library. Or try it on your next project — thirty days, every feature, no card and no account, is enough to set up one project folder and one cross-project tag and see which shape actually fits the work.

Questions

Should each project get its own folder, or should I use one tag per project?
Both, for different cases. A dedicated project folder works when the files genuinely belong to one thing; a tag works when a file — a shared asset, a recurring location — serves more than one project at once.
How do I search within just one project?
Scope the query with in: pointed at that project's folder, which narrows a search to that root without affecting how the rest of the library is searched.
Where should a project's canvas live?
Inside that project's own folder, alongside the images it references. That way archiving or moving the project folder carries the board with it automatically.
What's the right way to archive a finished project?
Tag it archived if it's staying in the active workspace, or move its folder onto an archive drive as its own workspace if it's leaving day-to-day search entirely — either keeps the project's files and canvases together.