Home
  • How to Design Better File Structures: Part 3 - Folder Structure

    • August 6, 2025

    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.

    1. Concerns: Components of a project
      • Examples: docs, assets, work, exports
    2. Units: Sub-projects within a project
      • Examples: features, episodes, deliverables

    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 folders
    • assets/images: Only contains images
    • assets/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