Skip to main content
The Artifacts library at /artifacts lists everything people and agents made in a workspace: projects, dashboards, Pages with panels, Word documents, sheets, slide decks and designs. From the library you can search and filter artifacts, preview one without leaving the list, and open it to see its content, versions and history.
The library is off by default. Each part of it is switched on separately:The default production build sets none of these to true. Enable a workspace flag with crewship feature-flag enable <key>; see feature-flag. With NEXT_PUBLIC_ARTIFACTS_LIBRARY unset, /artifacts sends you to /pages. NEXT_PUBLIC_ARTIFACTS_DESIGN=true on its own also serves /artifacts.

Artifact kinds

Each artifact holds one kind of content. The kind decides what opens it and whether it has versions. The library groups kinds as Artifacts (many people at once) and Craft (one editor at a time). A Page with panels (monitors and queues that crews fill, see Pages) shows as a Dashboard, or as an App when it publishes an application. The card, the Kind chips on Home, the Kind filter in the side panel, its counts, the Preview panel and the artifact’s own header all use the same kind. The library knows a design system and an interactive app from the list itself, before you open them, so a design system is counted under Designs and an interactive app under Apps everywhere. Older searches and links keep working: kind:project finds Apps, kind:page finds the kind a Page with panels shows as. Each item in the library shows its version state:
  • Shared vN: people with access see version N.
  • Not shared: the artifact has versions, but none is shared yet.
  • No chip: the kind has no versions, such as an App made from a Page with panels.
Other chips mark an item as Private, Empty, Test or Archived.

Open the library

  1. In the sidebar, under Work, click Artifacts.
  2. The library opens on Home:
    • Needs attention lists up to six artifacts that need you, by one fixed rule (below). It is hidden when nothing does.
    • Below it, every artifact in view (all of them, or the folder you picked) as a Grid of cards or a Table. Kind chips above the list (All, Docs, Apps, Word and so on, each with a count) narrow it to one kind.
  3. On the left, the side panel has a search box, a Filter button, the main lists (Home, All artifacts, Needs attention, Recently opened), then Views and Folders.

The Needs attention rule

An artifact needs attention when one of these is true, checked in this order:
  1. Your recovered draft: this browser kept unsaved edits to a native Word document after its edit lock was lost. Only you see it, and only in this browser.
  2. Refresh failed: at least one of its panels failed to refresh and keeps its last confirmed data.
  3. Data is stale: at least one panel is past its refresh window, and you own the artifact.
Archived and test-made items never need attention. “Not shared yet” is not a reason. The list shows drafts first, then failed refreshes, then stale data, newest first within each, and stops at six. A proposal waiting for review or another person holding the edit lock shows in the open artifact’s status chip instead. The rule lives in components/features/artifacts-library/attention.ts. An empty workspace shows No artifacts yet with a New artifact button. If the workspace holds only blank items, the message says how many are in Empty and offers Show empty.

Find an artifact

Type in Search artifacts… at the top of the side panel. Text matches the name or the address (slug). You can also use these operators: For example, kind:dashboard is:shared sales finds shared dashboards whose name contains “sales”. If you search from Home, the library switches to All artifacts.

Filter

  1. Click Filter next to the search box.
  2. A block opens with the groups Kind, Who can open, Version and Owner. They start folded; click a group’s heading to expand it.
  3. Pick values: Who can open has Everyone with access and Private, Version has Shared version, Not shared yet and No versions. The count next to each value is how many items you would see if you picked it. Kind and Version values with no matching artifact are hidden unless you already selected them. Clear in the block’s header drops all filters.
  4. To close the block, press Esc or click Filter again. Chips under the main lists show the filters you set; click a chip’s remove button to drop that filter.

Views and folders

Views in the side panel:
  • Mine: artifacts you own.
  • Favorites: artifacts you starred.
  • Clean up: names that repeat with a number or date, such as “Smoke test 1”, “Smoke test 2”, “Smoke test 3”. It only suggests what to tidy up.
  • Test items: artifacts the server marks as made by tests or probes.
  • Empty: artifacts with nothing in them yet.
  • Archive: archived artifacts.
Empty, test and archived items appear only in their own view, never in All artifacts, Mine or Favorites. One exception: a blank item you created yourself with New artifact, such as a new Page with panels, stays in All artifacts, Mine and search, so you can find it again before crews fill it. It also stays in Empty. Clean up, Test items, Empty and Archive appear in the panel only when they hold something. Nothing in these views is deleted. Folders lists your folders with their item counts, and Unfiled for artifacts in no folder. Click a folder to list only what it holds; click it again to leave it.

Sort, group and layout

Above the list:
  • Sort: Last edited (the default), Name or Kind.
  • Group: None, Kind or Folder.
  • Layout: List, Gallery or Table. Table has the columns Name, Kind, Shared, Folder and Updated.
The view, search and filters are kept in the address (view, q, kind, access, version, owner, folder). A reload keeps them, and you can send the link to someone.

Preview and open an artifact

On a desktop, a click previews an artifact without leaving the list:
  1. Click an artifact. A Preview panel opens on the right with its kind, version, folder, who can open it, owner and when it was last edited. It also has Open and Share buttons and a star.
  2. To open the artifact, click Open or press Enter. In a wide window, where the preview sits beside the list, clicking the same row again also opens it. In a narrower window the preview covers part of the list, and a click outside it closes the preview instead.
  3. To close the preview, press Esc or click the close button.
To move through the list from the keyboard, press J for the next item and K for the previous one; the preview follows. On a phone, a tap opens the artifact directly. An open artifact has its own address, /artifacts/<id>, where <id> is the artifact’s permanent ID. Links in the older forms /artifacts?item=<slug>, /artifacts/<slug> and /artifacts/@<id> still work and move to the ID address. To go back to the list, click All artifacts or press Esc.

What the detail view shows

Every kind opens in the same frame. The folder panel steps aside while an artifact is open; the pin button at the top of the panel keeps it open beside every artifact.
  • The header reads Artifacts › folder › name. Click the folder (or All artifacts) to go back. The name opens the artifact menu, which holds every action: Share…, Copy link, Move to folder…, Add to favorites, Version history where the kind has one, and Info. An action you can’t use stays in the menu, greyed out, with the reason under it.
  • The status chip beside the name says what is happening, for example Saving…, Saved · v4, Jana is editing, Read-only or Stale · 1 panel. Click it for details. Saved appears only after the server confirms the version. A kind with no live signal shows no chip.
  • The right side of the header has Agent, Comments and History (each where the kind supports it) and Share.
  • The drawer on the right holds the kind’s own tabs plus Agent, Comments, History and Info. Info shows the kind, version, owner, folder, link and who can open the artifact and why. On a tablet the drawer covers the right side; on a phone it fills the screen.
  • Agent offers only what the server supports for that kind. Ask opens chat with the artifact as context and your request as an unsent draft. Edit appears for a native Word or Sheet when the server allows agent tasks and you can edit; it starts the Craft agent task. With no agent path at all, there is no Agent button.
On a phone the header shows only the back button, the name and the status chip, with Agent, Comments and ⋯ (the artifact menu). The body depends on the kind:
  • Project, Dashboard, Slides: the artifact viewer, with the tabs Preview, History and Comments and a version switch in its header. See Versions.
  • Design: the design canvas.
  • Page: the Page’s panels, shown in the detail view.
  • Native Word and Sheet, with NEXT_PUBLIC_ARTIFACTS_LIBRARY enabled: the Craft editor opens inside the detail when the server confirms editing is available. Readers without edit access get the shared preview. This mode has no full-view link; /pages/<slug> leads back to the artifact detail. Version history opens in the drawer.
  • Word outside that mode: a read-only preview of the saved version, with Open full view. When the Craft lease bar is enabled, it shows who holds the lease and offers Edit in a new tab.
  • Sheet outside that mode, and project kinds whose viewer is switched off: the name, kind and state, with Open full view.
If an address does not open, the frame says what the server answered: Sign in to open this artifact, You don’t have access or This artifact doesn’t exist, each with Back to Artifacts. Nothing of the artifact is shown behind these pages. If the server gives no clear answer, the library shows This artifact is not available.

Create an artifact

  1. New artifact in the top bar is a split button:
    • The main part starts the kind you last started from this button, its menu or the Home guide (the first kind you can make the first time). Press N in the library list for the same; it does nothing while you type or while a dialog is open.
    • The arrow (or Shift+N) opens the menu. Pinned lists up to five kinds; press 1–5 to start one. Recent lists up to three kinds you started lately that aren’t pinned. All kinds shows every kind, grouped Artifacts and Craft, with a Family filter. Find a kind searches names, editors (WordCraft, GridCraft) and file types (.docx, .xlsx, .csv); Enter starts the first result. A kind this workspace can’t create shows Off.
    • Click the star next to a kind to pin or unpin it. Edit reorders the pins and Reset to default brings back the first five kinds. A sixth pin is refused with Pinned is full (5).
    • Pins, recent kinds and the Home guide are your own preferences: they follow you across devices and are kept per workspace (the guide once for all). Nobody else sees them.
    Home shows the guide Two kinds of things live here until you click Got it; Show the guide on Home in the menu brings it back. Pick a kind there or Browse one family in the menu. App starts a project.
  2. In the New artifact dialog you can still change the kind. Kinds that this workspace can’t create are listed under Coming. Docs is offered when the server confirms the shared document format; Word when it confirms a Word editor (native Word wordcraft_native, the WordCraft SDK or commands); Sheet when it confirms native Sheet (gridcraft_native). A workspace that serves only the shared document format offers Docs, not Word: that document opens as Docs.
  3. Enter a Name. Pick a Folder, or leave it Unfiled. If an artifact of the same kind and name is already in that folder, a warning offers Open it instead.
  4. Under Start with, choose how to start:
    • Page with panels: Empty page. Click Create page. Crews add panels on their next run.
    • Design: Blank canvas. Click Create and edit.
    • Docs: Blank. Click Create and edit. The document opens at its own address and is listed under Docs. It is yours until you share it; then others with access write in it at the same time.
    • Word: Blank to open an empty document with you holding the lease, or Describe it to have an agent write the first draft. For Describe it, chat opens with your request as a draft; turn on Create document in chat, then send it.
    • Project, Dashboard, Slide deck: Describe it or From template. Click Continue in chat. Chat opens with your request as a draft. Turn on Create artifact project in chat, then send it to an agent. Without it, the message goes out as a plain chat message and no artifact is made. The agent creates the artifact unfiled; you can file it afterwards.
A new artifact starts as Only you until you share it. If you picked a folder, it starts as People with access to that folder. Who can create: an Owner, Admin or Manager, or a member with the page.create capability. The server checks this on every create. A member who can’t create, such as a Viewer, doesn’t see New artifact in the bar or in the empty library; this includes Project, Dashboard and Slide deck, which an agent makes for you.

Versions

Projects, dashboards, slide decks and designs keep immutable, numbered versions (v1, v2, …), and so do native Word documents and sheets. Each save by an agent or a person adds a new version. Two versions matter most:
  • Latest: the newest version. Its owner, and people with edit access, work on it.
  • Shared: the version other readers see. Until a version is shared, the artifact is a Draft and readers see nothing.
For projects, dashboards and slide decks, what you can see depends on your access: The steps below use the project viewer. Projects, dashboards and slide decks open in it.

View an older version

  1. Open the artifact. The viewer header shows the version switch: Latest v3 and Shared v2, for example. If nothing is shared, Shared shows — and can’t be selected.
  2. Click Shared to see the version readers get. A banner says You see the shared version v2, the one people with the link get. and names the latest version.
  3. For any other version, open the History tab and click View next to it. A banner says You are viewing v1. Latest is v3.; click Back to latest to return.
You can’t comment on an older version; comments go on the latest one.

Share a version

  1. Open the artifact and show the version you want to share. It is usually Latest.
  2. In the toolbar under the tabs, click Share (the link icon, not the Share button in the top row).
  3. The popover says People with access will see v3. Later versions stay private until you share them. Click Share v3.
  4. Shared v3 appears, and the header chip changes from Draft to Shared.
Only the owner can share a version. The top-row Share button controls who has access, not which version they see.

Restore an older version

Restoring never rewrites history. It copies an older version into a new version on top.
  1. Open the artifact and click the History tab. The list says, for example, 3 versions · restore makes a new version, nothing is deleted. Each row shows the version number, who saved it, its message and when, with Latest and Shared marked.
  2. Next to the version you want back, click Restore as new version.
  3. A notice says Restored v1 as v4 · nothing deleted. The new version’s message is Restore version 1, and its row says Restored from v1.
  4. The shared version does not change. To show the restored content to readers, share the new version.
Only the owner can restore. If someone saved a newer version while you were looking, the restore is refused and a banner says Someone saved a newer version while you were working. Nothing was overwritten. Reload, then try again.

History and storage limits

The history of each project, dashboard, slide deck and design has its own storage budget. The server configures history limits for native Word documents and sheets separately. Files with identical content are stored once per artifact. Restoring an older version therefore takes up almost no new space. The history is kept in full (keep-all): nothing is pruned or deleted automatically. A person with edit access works on the latest version only (latest-version-only). A reader who only sees the shared version gets that one version (shared-version-only), never the older ones. When a project’s history passes 80%, the owner sees a banner in the viewer, This project is close to its limit. It shows how much is used, for example 205 MB of 256 MB (80%), with a Review versions button that opens History. When a save would go over a limit, it is refused with HTTP 413, and the viewer shows Saving is paused: History is full, so this was not saved. Existing versions stay intact, and your draft comment stays in place. A version with more than 256 files is refused as invalid.

Favorites and recently opened

  • To star an artifact, click the star in the preview or in the detail view (Add to favorites). Click it again to remove it.
  • Favorites lists your starred artifacts. Recently opened lists the last ones you opened, newest first.
Both lists are personal. They follow you to other devices and nobody else sees them. Favorites and Recently opened leave out empty, test and archived items, except a blank item you created yourself.

Troubleshooting

Publish a Library and pin it in other projects

A Design System artifact is the Library. Saving a version does not change any other project: the Library’s owner chooses the published version with crewship page artifact library publish <slug> --version <n>. Editors keep saving draft versions; they do not publish. A project that uses the Library keeps its own copy of the published design-system.json, made with crewship page artifact pin set. The copy is a record the project owns:
  • restoring or editing the Library never changes it;
  • deleting the Library, or losing your access to it, keeps the copy;
  • losing access does block the next update;
  • everyone who can read the project can read the copy (tokens, Library name, and the font and licence files the pin carries), even without access to the Library, and the copy survives unsharing the Library. Pin only what all of the project’s readers may see.

What a pin carries

Tokens are closed literals (hex colours, pixels, plain font-family names), so they cannot reference other files. Besides design-system.json, a pin carries the Library’s font files and the licence files that let them travel:
  • Store a font in the Library as a text file with a font extension (.woff2, .woff, .ttf, .otf) whose content is a base64 data URL, for example data:font/woff2;base64,d09GMg…. The bytes must start like the format the extension names.
  • An optional fonts.json names each font’s family, weight and style, and may give its licence as an SPDX id:
  • A font is copied only with a redistributable licence:
    • an explicit license in fonts.json of OFL-1.1, OFL-1.0, Apache-2.0, MIT, UFL-1.0, CC0-1.0, Bitstream-Vera or BSD-3-Clause (any other id keeps the font out, whatever licence files say);
    • without one, a LICENSE, OFL or COPYING file next to the font titled with the SIL Open Font License 1.1, Apache License 2.0, the Ubuntu Font Licence 1.0, the MIT License or CC0 1.0 Universal;
    • without either, a licence file at the Library root only when it is a font licence (OFL or UFL). A root MIT or Apache LICENSE usually covers the repository’s code, so it never lets an undeclared font travel; declare the font’s license in fonts.json instead.
    Only the licence’s title line counts (for example SIL OPEN FONT LICENSE Version 1.1), at the start of a line; a sentence that merely mentions a licence, such as “not under the SIL Open Font License”, does not. The licence file is copied with the font.
  • A font without such a licence, over 1 MiB, or one that would take the pin past 4 MiB is listed with the reason and never copied. The 4 MiB covers every copied byte, the licence files included. Nothing is ever downloaded.
Publishing refuses a version whose fonts.json or font files are invalid. crewship page artifact pin files <slug> returns the carried files, bytes in base64; each copy is checked against its SHA-256 whenever its bytes are read. The pin itself, pin show and pin check list the files without loading the bytes. The project’s Library notice lists the fonts its pin left behind, with the reason. A pin made before fonts travelled with a Library holds the published version but no files. pin check then reports dependencies_missing together with update_available, and applying the same version copies the fonts without changing the tokens.

Previews render from the pin

A project that pins a Library previews with its own copy, never the live Library, so edits, restores and publications change nothing until someone applies an update:
  • a static project preview gets the pinned default theme as CSS custom properties, first in its <head> so the project’s own styles still win: --ds-color-<name>, --ds-space-<name>, --ds-radius-<name>, --ds-font-<name> and --ds-font-size-<name>, plus an @font-face for each copied font that fonts.json names. Use them as color: var(--ds-color-primary);
  • Slides can name pin tokens in an optional slides-library.json file in the consumer’s saved project. For example: {"schema_version":1,"background":"canvas","text_color":"ink","typography":"body"}. The first two names select color tokens; the third selects the text size, weight and font family. The preview, thumbnails and Present use the resolved values. A missing token or uncopied font keeps the saved styling for that property. The PDF still uses the saved deck.
Interactive and Dashboard previews do not apply the pinned theme yet. When the owner publishes a different version, crewship page artifact pin check reports update available with the token paths it adds, removes and changes, the font and licence files it adds, removes and changes, and the fonts it would leave behind with the reason. Nothing changes until someone with Edit on the project applies exactly the reviewed state with pin set --version <published> --if-pinned-library <library> --if-pinned-version <pinned>. Workspace administrators cannot pin a Library they reach only through their administrator role. Full reference: CLI: Library publication and pins.

Design System token preview

A Design System is a Project artifact whose version includes a file named design-system.json. It uses the same versions, access rules and sharing as Projects. It is separate from the collaborative Design canvas and does not apply tokens to another artifact automatically. The read-only preview needs NEXT_PUBLIC_ARTIFACT_DESIGN_SYSTEM=true in the web build, plus the Project server flag and a library or chat viewer enabled as described above. For example, build from source with:
  1. Ask an authorized agent to create a Project containing index.html and the token file, or supply those files through crewship page artifact create.
  2. Open the artifact in the library. The viewer badge reads Design System. It displays color swatches, typography samples, spacing and radius samples, and optional component names and descriptions. With the Library view (Design · Library), a system with more than one theme shows a theme switch beside the search box: each swatch and each component preview then uses that theme’s values. Every swatch shows the contrast ratio of white or black text on it (whichever is higher) and its WCAG 2 level (AAA, AA, AA large or Low), plus the colour’s usage note and, when the system has more than one theme, its value in every theme. The chat artifact pane lists every theme’s value and usage note too. Text styles are grouped when the file names groups. Files in the section list shows every file of the shown version with its path, type and size. View shows a file as plain text (the first 64 KiB of UTF-8 text; nothing is rendered or run) and Download saves it under its own name. The Library shows colors, typography, spacing, corner radius, components, the README and component previews; it has no shadows or assets section, so such files appear only under Files.
  3. Use the version picker to inspect retained token values you may read. The owner can restore an old version as a new version and share it separately. The preview has no token editor; publish a complete manifest to change it.
A minimal design-system.json is:

Themes (schema 2)

Schema 2 adds themes. A schema 1 file keeps working exactly as before; nothing converts it, and its download is the file as stored.
  • themes is required in schema 2: 1 to 8 entries with a unique id (a token name) and a name of at most 40 characters. The first theme is the default.
  • A colour is a hex value (the same in every theme), an alias such as "{surface}", or {"value": {<theme id>: hex or alias}, "usage": …}. The value must name the first theme; a theme it leaves out takes the first theme’s value. Naming a theme that themes does not declare rejects the file.
  • An alias names another colour and resolves in each theme separately, up to 16 steps. An alias to a missing colour, or a cycle, rejects the file.
  • usage is plain text of at most 280 characters.
  • A text style may have a group of at most 40 characters.
  • Aliases, usage, themes and group are rejected in a schema 1 file.
A file with a schema_version newer than this version of Crewship reads shows This Design System uses format version N, which this version of Crewship cannot show. The file is unchanged. instead of a partial view.

Limits

The file must be at most 32 KiB and have exactly one entry in the manifest. schema_version, colors, typography, spacing and radii are required; name and components are optional. Unknown fields or duplicate JSON keys reject the whole preview. Each token group permits at most 128 entries. Token names start with a lowercase letter and contain only lowercase letters, digits and hyphens, at most 48 characters; constructor and prototype are reserved. Colors are literal six-digit hex values. Spacing and radii are integer pixels from 0 to 4096. Typography requires integer size from 1 to 512 and optionally font_family (a plain font-family list), weight (100–900 in steps of 100), and line_height (0.5–4). The optional component list holds at most 64 uniquely named entries with plain-text names up to 80 characters and descriptions up to 280. Tokens cannot contain CSS expressions, markup or URLs. An invalid file shows This Design System file is invalid or uses an unsupported format. Saving a Project does not validate this preview format: correct the token file and publish a new complete version. With the preview flag off it remains a normal Project. A Slides manifest takes precedence over the Design System preview; keep these formats in separate artifacts.