# How KopiMark works

> The mental model behind KopiMark — workspaces, projects, pages, text nodes, statuses, and how the Figma sync keeps your design and copy aligned.

_Source: https://kopimark.com/docs/concepts/how-kopimark-works/_

KopiMark sits between your Figma file and your team. Designers keep working
in Figma; everyone else (writers, translators, reviewers, PMs) works on the
copy and assets inside KopiMark, on top of the same design.

This page is the short explanation of how the pieces fit together. If you'd
rather get hands-on first, start with [Getting
started](/docs/getting-started/).

## The hierarchy

KopiMark organises work in three nested layers:

- **Workspace** — your team. Holds members, billing, glossary, and domain
  whitelist. Every account has at least one workspace.
- **Project** — one body of work, usually mapped to one Figma file. Holds
  its own languages, statuses, fonts, members, and export config.
- **Page** — one Figma page inside a project. This is the editor surface
  where copy and translations live.

Inside a page, each text or image you see on the canvas is a **node** —
imported from Figma and bound to its original Figma node id, so re-syncs
match cleanly even when the file evolves.

## What lives where

| Layer | What you manage there |
|---|---|
| Workspace | Members, roles, billing, workspace glossary, domain whitelist |
| Project | Languages, statuses, custom fonts, translation settings, folders, API tokens, exports |
| Page | The canvas itself: text edits, translations, comments, statuses on nodes |
| Profile (yours) | Figma personal access token, cache-only toggle, your name and avatar |

A common surprise: **fonts and glossary are project-level (or
workspace-level)**, not editor-level. If a font isn't rendering the way you
expect, the fix lives in [Project Settings →
Fonts](/docs/guides/custom-fonts/), not in the editor.

## The Figma sync

KopiMark doesn't run inside Figma; it reads Figma's API and renders its own
copy of the design. That means two things matter:

1. **You import a Figma file once**, then re-sync when the design changes.
   KopiMark keeps the node structure (text, layout, images) but re-uses your
   existing copy edits and translations wherever the node ids still match.
2. **All renders are KopiMark's** — when a translator types a longer string,
   the canvas shows that longer string at the real font, size, and box. No
   "looks fine in the spreadsheet, breaks in Figma" surprises.

Live syncs require a **Figma personal access token**. Without one, KopiMark
falls back to a pre-built cache for the demo project, but you'll need a
token to bring in your own files. See [Connect
Figma](/docs/guides/connect-figma/).

## Text nodes and revisions

Every text node on a page is independently versioned. When you edit, your
new copy becomes the latest revision; the prior copy stays in History.
Translations work the same way per language.

This is what makes KopiMark safe for review: nothing is overwritten silently.
A reviewer can always see what the previous wording was, who changed it,
and when.

## Statuses

Statuses are how KopiMark models "is this copy ready?". They're defined
per project (so a marketing project and a product project can use different
workflows). The first status is the default — newly-edited nodes pick it up
automatically.

Statuses are also the link between a node and a teammate: assigning a
status to someone fires a notification, which is the most reliable way to
hand work off. See [Statuses and
approvals](/docs/guides/statuses-and-approvals/).

## Comments

Comments are **pinned to canvas coordinates**, not attached to a node.
That's intentional — a reviewer can flag the whitespace between two
sections, or a button that isn't a text node, without forcing you to invent
an anchor.

Threads can be resolved, replied to, and mentioned in. Mentions trigger
both an in-app bell notification and (by default) an email. See [Review
with comments](/docs/guides/review-with-comments/).

## What KopiMark is not

A few things KopiMark deliberately doesn't try to be:

- It's **not a Figma plugin**. Designers don't need to install anything.
- It's **not a translation memory or TMS**. It does AI drafting, glossary
  enforcement, and per-language review — but it doesn't store fuzzy
  matches across customers.
- It's **not a CMS**. The export step is how copy reaches your codebase or
  CMS.

## Where to go next

- [Figma sync and cache-only mode](/docs/concepts/figma-sync-and-cache/) —
  what changes when your Figma seat is limited.
- [Roles and workspaces](/docs/concepts/roles-and-workspaces/) — who can do
  what.
- [Connect Figma](/docs/guides/connect-figma/) — the setup most users
  stumble on.

---

## All documentation

_The full docs index, in case the answer lives on another page. Fetch any item as raw Markdown by appending `.md` to its URL, or grab everything at once from https://kopimark.com/llms-full.txt._

### Start here

- [Introduction](https://kopimark.com/docs/)
- [Getting started](https://kopimark.com/docs/getting-started/)

### Concepts

- [How KopiMark works](https://kopimark.com/docs/concepts/how-kopimark-works/) _(this page)_
- [Figma sync and cache-only mode](https://kopimark.com/docs/concepts/figma-sync-and-cache/)
- [Roles and workspaces](https://kopimark.com/docs/concepts/roles-and-workspaces/)

### Guides

- [Connect Figma](https://kopimark.com/docs/guides/connect-figma/)
- [If your Figma seat is limited](https://kopimark.com/docs/guides/figma-seat-and-rate-limits/)
- [Invite your team](https://kopimark.com/docs/guides/invite-your-team/)
- [Translate with AI](https://kopimark.com/docs/guides/translate-with-ai/)
- [Review with comments](https://kopimark.com/docs/guides/review-with-comments/)
- [Statuses and approvals](https://kopimark.com/docs/guides/statuses-and-approvals/)
- [Custom fonts](https://kopimark.com/docs/guides/custom-fonts/)
- [Export copy](https://kopimark.com/docs/guides/export-copy/)
- [API and developer tokens](https://kopimark.com/docs/guides/api-and-developer-tokens/)

### Settings

- [A tour of Settings](https://kopimark.com/docs/settings/tour/)
- [Profile settings](https://kopimark.com/docs/settings/profile-settings/)
- [Workspace settings](https://kopimark.com/docs/settings/workspace-settings/)
- [Project settings](https://kopimark.com/docs/settings/project-settings/)

### Reference

- [Plans and limits](https://kopimark.com/docs/reference/plans-and-limits/)
- [Keyboard and canvas](https://kopimark.com/docs/reference/keyboard-and-canvas/)
