File and Layer Organization in Figma: A System That Works in a Year
Main chat
A chat for vibe coders: news, guides, live cases, marketplace, and finding executors.
Open the Figma file you made a year ago. Find the final version of the main screen. Set the time.
If it takes more than thirty seconds, you have no system. You have a warehouse. And that's OK: that's what 80 percent of the files I've logged in for reviews, audits, and project transfers look like. "Final", "Final-2", "Final-real", "do not touch", "Tuesday copy", frames without names, components in three places, the page "trash" that nobody deletes because it's scary.
The problem isn't laziness. The problem is that organizing a file seems like a “for later” task – as long as you’re alone in the project and remember where everything lies. And then a new designer comes in, the developer is looking for a current layout, you come back in six months and it turns out that “then” never came.
Why is it even important
30-50% of design work consists not of design, but of search: where is the latest version, what is agreed, which components are alive, which are dead. This tax is not visible in one sprint, but it accumulates.
What breaks when a file is not structured:
- The developer takes an outdated layout - the feature goes into production with an error
- New designer spends first week 'finding what'
- You're afraid to refactor the component because you don't know who's using it
- Presentation to the customer is a search among 40 frames of the one that “here is this one, but without a header”
- After a year, the file becomes an archaeological dig, and it’s easier to start over
The good news is that a system that survives a year or more is not built with ten plugins or a strict 80-page guideline. It consists of five or six decisions made once and applied everywhere.
The principle that determines everything else
Before any naming rules and page structure, one question is: **file for whom? **
A file for oneself and a file for a team are different genres. In the first you can keep drafts, experiments, artifacts of thinking. In the second, anything that is not labeled as “WIP” is the default source of truth.
In practice, it means two things:
- In the command file, there should be a visible boundary between “ready” and “working.” Not by intuition, but by page, frame, or title color.
- Any person who opened the file for the first time should understand in a minute: what is relevant here, what is the draft, what is the archive.
If this boundary is not clearly expressed, no structure of layers will save. People will copy drafts into production because they look the same.
Page Structure: First Layer of Protection
Figma pages are the most underrated tool in the organization. You can see them immediately when you open them, they set the navigation and they cost almost nothing (unlike components that need to be supported).
The basic structure that works on projects from landing to product on hundreds of screens:
- ** - Cover** - cover with name, status, links responsible
- ** - Readme** - what is in the file, how is it arranged, where to look
- ** Comp Components / Styles** - Library if it lives in the same file
- ***** Ready for dev** - what is put into development is frozen
- ** ✦ In progress** - current challenges
- ** Explorations** – Searches, Options, Discussions
- Archive is old, but it is a pity to remove
- **× Trash ** - something that will be deleted in a month
The symbols before the name are not decoration. This is a grouping by gaze: the same prefix = one category. When the pages become 20, without prefixes, the list turns into mush.
Anti-patterns that occur almost everywhere
- Pages "Page 1", "Page 2", "Page 3" - Figma by default, no one renamed
- Ten pages of "iteration-1" ... "iteration-10" without specifying what iterated
- One page "Design" on 400 frames
- The page "old" next to "new" - after six months it is not clear which of them is relevant
- Archive inside the active page (old header frames next to workers)
Questions for page structure audit
- Can the person who opened the file for the first time find the current screen in a minute?
- Is it clear what is frozen and what is in the work?
- Is there a page that is scary to visit? Why does it exist?
- If you delete the Archive page, will anyone notice? When?
If the answer to the last question is “nobody ever,” it can be deleted. An archive that is not accessed is not an archive, it is an emotional ballast.
Name of layers: where the boundary of the reasonable passes
The most common mistake is trying to rename everything. The designer sees “Rectangle 47”, is horrified and spends an hour brushing a tree of layers that no one will ever get to.
The truth is that the Rectangle 47 layer inside the finished Button / Primary / L component doesn’t bother anyone. The name matters where you look at it: frames, components, auto-leaut containers, instances that you search for.
Where names must be meaningful:
- Top-level frames are what gets into previews and navigation
- Components and their variants are searched in the library
- Auto-Leyout containers, if the logic is inside (header, content, footer)
- Any layers referenced by the prototype or interaction
Where names are not to be touched:
- Vectors inside icons
- Decorative elements inside the finished component
- Technical groups that the designer does not open
Anti-pattern: “combing for the sake of combing”
If you rename Group 12 to Group container, you’re wasting your time. The name should answer the question “what it is and why”, not “as it is called in Figma by default”.
Components: the main trap of scale
A component is a promise of support. Each created component you undertake to update, document and keep abreast of system changes. So the rule is simple: don’t create a component until you need it three times.
Premature componentization is the most expensive bug in a Figma file. After six months, you have forty components, of which fifteen are used once, eight are never used, and the rest are mutated without a parent update.
When a component is needed
- The element repeats in three or more places with the same behavior. n
- Change of the element should automatically diverge on layouts
- The element has states (hover, disabled, error) or variants
- The item will go into the code as a reused component
When a component is not needed
- A unique screen that exists in one place
- Illustration on landing
- Marketing block with specific text
- An experiment that probably won’t survive
If in doubt, don't do it. Turning a frame into a component in six months is easy. Untangling the tangle of unused components is almost impossible.
Workflow: Hygiene that keeps a file alive
Structure is not a one-time cleaning, it is a regime. Without it, any system falls apart in a quarter.
Once a week (5 minutes)
- Transfer from
In progresstoReady for dev - Remove or archive experiments to which you have not returned
- Check that new frames have meaningful names
Before hendoff to the developer
- Frame has a clear name and is marked with status
- All styles used are from the library, not local
- No detached instances where a component should be
- The prototype leads to actual screens, not black draft
- Cover tells you where to look for this layout and who is responsible for it
Once a quarter
- Go through the components, throw out the dead
- Check if the
Explorationspage has grown to a separate universe - Ask developers: What do they discover most often? This is the battle part of the file
Diagnostics: Signs that the file has begun to rot
You don't have to wait for disaster. Several symptoms that are visible immediately:
- You open the file and take more than a minute to find the right screen
- In the chat with the developer regularly appears “where relevant?”
- There are components on the
Componentspage that you don’t remember - In the file live local styles that duplicate library
- The frame is called
final_v2_real_final - No one but the author can explain the structure of the file
Any of these signs is a reason to stop and spend an hour on the audit. Not for full refactoring, but for spot cleaning of the most sick place.
Common mistakes that occur in almost everyone
- The design is right in the library file. The library is the library. Work models are separate.
- Copy the component instead of using the instance. After a month, the copy lives its own life, the discrepancy accumulates.
- **Switching off auto-leiat to "move quickly."**Hi, manually rearrange the entire frame in a week.
- **Styles just for themselves. If the color is not in the library, it does not exist for the team.
- Archive, which put everything in a row. Archive without rules is a dump with a beautiful name.
Questions for reviewing your file
- If I go on vacation tomorrow, will a colleague be able to continue working without calling me?
- Which page makes me anxious when I open it? Why?
- How many components have been used in the library in the past month?
- What will the developer open first if they link to the file?
If you don’t know the answer to the last question, that’s the task for the next hour. Cover, Readme, clear navigation. The file should explain how to use it.
Advanced Scenarios: When the System Starts Playing on You
A database is a page structure, a name, a library. Then the next level begins: the file that works as a team, undergoes a redesign and does not break when an AI agent enters it through MCP.
Screenplay: Redesign on top of a live product
The most dangerous situation is when you remake what is already in the market. The temptation to open an existing file and “fix right here” ends the same way: after a week, no one knows which screen is relevant.
Working pattern:
- Create a separate file
Redesign / Checkout v2, do not touch the combat - In Cover you write: what we rework, why, start date, who decides
- On the page
Current statecopy current screens as a reference - frozen, do not edit - Work goes on the
Explorationspage, thenIn progress, thenReady for dev - When the design is accepted, you transfer the finished file to the combat file by one committ, the old redesign file is archived with reference to the result
The main rule: do not hold two versions of the truth at the same time. At any given moment, one file is the source, the rest are drafts.
Scenario: Design system lives separately
As soon as there are more than thirty components, the library goes to a separate file, or better yet, to a separate project. Battle mockups connect it as a published library.
What not to do in a library file:
- Draw specific product screens
- Store experiments and sketches
- Publish a component that is still under discussion
Every library publication is a release. It should have a changelog (you can directly page in the file), a responsible and understandable reason. Otherwise, in six months, the team is paranoid: “update or break?”
AI and MCP: What changes when an agent enters a file
AI tools and Figma MCP servers read a file the same way a new designer would read it, but without intuition or calling you. If the structure is “well, I remember,” the agent will generate debris.
The agent sees well
- Meaningful Frame Names and Components
- Auto layout and variables instead of magic numbers
- Related styles and tokens, not local values
- Clear layer hierarchy without
Group 47 / Frame 12 / Rectangle 3
The agent sees poorly or does not see at all
- Arrangements in the designer's head
- Context: “We only use this button in B2B”
- What screen is relevant if there are five of them with similar names
- Prototype connections as meaning, not as arrows
The practical conclusion: the cleaner the structure, the more useful AI is. A dirty file turns an agent into a generator of confident hallucinations - it gives the code by random detached instance, and you catch it in PR.
File Readiness Checklist for AI/MCP
- All battle screens lie on the same page with a clear prefix
- The
Ready for devpage has no duplicates or outdated versions - Used components - from the library, without detached
- Colors, typography, indentations - variables, not raw values
- Cover or Readme tells you which pages to read and which to ignore
The last point is underrated. If you haven’t noticed that Explorations is a garbage dump, the agent will honestly read it and offer to implement a sketch from four months ago.
Command context: file as contract
You can work alone on any file, even a bad one. In a team, a file becomes an interface between people. And like any interface, it has a cost to use.
Roles and areas of responsibility
- Owner file - one person responsible for structure and hygiene
- Contributors - work according to the accepted system, do not open their pages without approval
- ** Readers (PM, developers, QA) - come for a specific answer, do not need to understand your logic
If the file does not have an owner, it becomes common, and therefore no one. A quarter later, there are four Explorations pages from different people and three parallel libraries.
How to explain the structure to the team
Not on a call, not in a Slack message that gets lost. On the Readme page inside the file itself:
- Where the actual design lies
- What does each status mean (
WIP,Review,Ready for dev,Shipped) - Where not to climb and why
- Who should I go to
This is the same documentation as the repository. Without it, the new man spends a week on archaeology instead of work.
How to check the quality: review the file, not just layouts
Design review is usually about pixels and screen logic. But once in a sprint, it’s useful to review the file itself – separately from the content.
Questions that work:
- Can a new person find an up-to-date screen in 10 minutes?
- How many clicks from Cover to the most important flow?
- Is there a page that no one has visited in the last month? Why is she still alive?
- What components have been updated in the last two weeks and why?
- If you open a file from a developer’s phone, will he know where to look?
A good practice is to watch a file once a quarter with the developer who uses it. Not design, but navigation. His "I'm always lost here" is worth more than any internal audit.
Anti-teamwork patterns
- File fortress. One person knows the structure, the rest are afraid to touch. He goes on vacation, the project gets up.
- File democracy. Everyone winds up their pages and components "as convenient." In a month, chaos without a master.
- Silent refactoring. Owner renamed half the pages, didn't tell anyone. Half the team is in panic looking for yesterday's mockups.
- Readme in words. "I told you on stand-up" - does not work. After a week, no one remembers.
Segment summary
Advanced level is when the file is clear not only to you, but also to a colleague, developer and AI agent with equal ease. This is achieved not by magic, but by boring things: one owner, explicit statuses, Readme inside the file, regular review of the structure. If a new person or MCP agent enters your file tomorrow and does a meaningful action without question, the system works.
Consolidated checklist: a system that will survive a year
One general list to open it in six months and quickly understand where the system started to go. Not for the first time creating a file, but for regular verification.
Structure and navigation
- Cover answers where to look in 5 seconds
- Page prefixes set order, not the alphabet
- Archival pages are in the archive, not "temporarily" next to the battlefield
- Between Cover and any battle screen – no more than two clicks
- Frame names are read as points in Jira, not as Frame 248
Layers and components
- Groups only where they carry meaning, not laziness
- Auto layout is everywhere the element can stretch
- There are no detached instances left after the “quick edit”
- Icons and buttons are from one library, not three historical ones
- All colors, font sizes and indentations are variables
Status and hygiene
- Each page has clear status: WIP, Review, Ready for dev, Shipped
- There are no two versions of the "final" screen without an explicit mark, which is combat
- Older quarter and not used - in archive or delete
- Readme inside the file has been updated in the past two months
If on any of the points the answer is "well, almost" - this is the area where in six months the pain will begin.
Anti-patterns that break the system slowly
Big catastrophes are immediately visible. Small habits that accumulate for months are dangerous.
- "I'll brush my hair later." Never. If you didn't comb your hair the same day, you won't comb it.
- Two screens with the same name in different places, both look combat. Developer guesses.
Group 47layer. One of these is a small thing. One hundred of them is a file that is scary to enter.- Component for the sake of the component. Cured up the option, used once, forgot. After six months in the library two hundred components, really alive — twenty.
- ** "I have my own approach." ** Local naming logic, understandable only to the author. On a team, it's a tax that every new person pays.
- Hidden dependence on Figma plugin. Half of the structure is based on a plugin that will stop working tomorrow or become paid.
- File museum. Everything is saved for memory, nothing is deleted. After a year, it is no longer a working tool, but an archaeological layer.
Questions for the review - myself and the team
Not retro at the end of the quarter, but at a moment when something seems uncomfortable. A convenient moment is the best time for an honest answer.
- If I opened this file for the first time, would I understand what's going on here?
- What three pages am I afraid to touch? Why?
- What do I do with my hands every week and can I remove it?
- Is there a screen called the same in two places?
- What was the last time I used “as is” without editing? Which one is half-determined?
- If a developer opens a file without me, will he collect a feature or come with questions?
- If an AI agent reads a file, will it take battle screens or pull drafts?
The last two questions are litmus. The file in which the system actually works answers yes to both. The file you hold on to is none.
What to do right now
Don't do everything. It’s a bad idea – big refactorings of design files are stalled on day three.
- Open the current working file and set the timer for 20 minutes
- Start or update the Readme page: where combat, where garbage, to whom to go
- Rename the five most frequent pages by clear prefix
- Remove or archive what you don’t need – without pity
- Re-calend every two weeks for the same 20 minutes
A system that works a year from now is not one that has been perfectly assembled once. This is one that someone invests a little bit in regularly. Twenty minutes every two weeks is cheaper than a week of rowing before launch.