Note: This article focuses on folder structure design. For the foundational principles and philosophy, see Part 1: Philosophy and Good Practice. For file naming conventions, see Part 2: Naming Your Files Properly.
Folder structure design
You want to package your files in a way that is easy to both understand and navigate. There are many ways to structure folders. A good way to keep things clean is to organize them by concerns and units.
- Concerns: Components of a project
- Examples:
docs
,assets
,work
,exports
- Examples:
- Units: Sub-projects within a project
- Examples:
features
,episodes
,deliverables
- Examples:
A concern should be nested at the level where it is most relevant. It can belong to the project as a whole or to a specific unit.
video-project assets video-project_logo.png video-project_hero.jpg docs video-project_outline.pdf episodes episode-1 assets episode-1_thumbnail.png docs episode-1-script.pdf work exports
In this example, both our project and the first episode have a docs
and assets
folder. These folders have different contexts and should be kept separate.
Single unit or repeating unit
It's important to understand the difference between a single unit and a repeating unit.
- Single unit: Project with one main deliverable. The project itself is the unit.
- Examples: movie, presentation, wedding planning
- Repeating unit: Project that has repeating deliverables. The project itself might have deliverables, but it has episodes as repeating units.
- Examples: TV show, podcast series, album with many songs, quarterly reports.
This distinction will help you decide between a single unit structure and a repeating unit structure.
1. Single unit structure
Let's say the project is to produce a video for a client. The deliverable is one video, a single unit.
video-project_name docs script.md storyboard.pdf assets footage raw proxies audio music sfx vo graphics fonts work project-name_v001.prproj project-name_v001.aep exports project-name_1080p_v001.mp4 project-name_4k_v001.mp4 project-name_web_v001.mp4
2. Repeating unit structure
Now if we produce a video series instead and we deliver multiple videos on a recurring basis, we have a repeating unit. Our structure will grow as we add more episodes by creating new episode folders and files. Each episode is treated as a sub-project with its own structure.
video-project project_name docs README.md assets graphics fonts luts episodes episode-1 (this is a repeating unit) assets footage raw proxies audio music sfx vo work project-name_episode-1_v001.prproj project-name_episode-1_v001.aep exports project-name_episode-1_1080p_v001.mp4 project-name_episode-1_4k_v001.mp4 project-name_episode-1_web_v001.mp4
One item type per folder
A good rule of thumb is to have one item type per folder. This is a good way to keep your file structure clean and easy to understand.
Item types can be grouped by their purpose, format, file type, etc. Just make sure not to mix different item types in the same folder.
assets images client-name_project-name_logo_001.png client-name_project-name_hero_001.jpg videos client-name_project-name_trailer_001.mp4 client-name_project-name_teaser_001.mp4
assets
: Only contains foldersassets/images
: Only contains imagesassets/videos
: Only contains videos
If you have more files, or if you expect there will be multiple increments of the same file, you should add more subfolders for each item.
assets audio music client-name_project-name_music_001.mp3 sfx client-name_project-name_sfx_001.mp3 images cover client-name_project-name_cover_001.jpg logos client-name_project-name_logo_001.png client-name_project-name_logo_002.png hero client-name_project-name_hero_001.jpg client-name_project-name_hero_002.jpg videos episode-1 trailers mov client-name_project-name_episode-1_trailer_001.mov client-name_project-name_episode-1_trailer_002.mov mp4 client-name_project-name_episode-1_trailer_001.mp4 client-name_project-name_episode-1_trailer_002.mp4 teasers mov client-name_project-name_episode-1_teaser_001.mov client-name_project-name_episode-1_teaser_002.mov mp4 client-name_project-name_episode-1_teaser_001.mp4 client-name_project-name_episode-1_teaser_002.mp4
This stays very readable and will still scale easily with hundreds or even thousands of files.
If you don't use enough subfolders, things will quickly become hard to visually scan:
assets client-name_project-name_cover_001.jpg client-name_project-name_episode-1_trailer_001.mp4 client-name_project-name_episode-1_trailer_001.mov client-name_project-name_episode-1_trailer_002.mp4 client-name_project-name_episode-1_trailer_002.mov client-name_project-name_episode-1_teaser_001.mp4 client-name_project-name_episode-1_teaser_001.mov client-name_project-name_episode-1_teaser_002.mp4 client-name_project-name_episode-1_teaser_002.mov client-name_project-name_logo_001.png client-name_project-name_logo_002.png client-name_project-name_music_001.mp3 client-name_project-name_sfx_001.mp3 client-name_project-name_hero_001.jpg client-name_project-name_hero_002.jpg