# Crevano > Crevano is a browser-based print and poster design studio (vanilla JS PWA) at https://crevano.app. A Crevano document is a single JSON file, so the shortest way to make something here is to write that file and open it — no UI driving required. ## Write a document from scratch — start here - The native format is `.crev` (also `.crevano`): one versioned JSON file that IS the document. Write it, then open it with **Open** on the studio's projects screen. - [capability-manifest.json](/capability-manifest.json) `document_schema` is the whole format — the top-level shape, every `board` field, the 9 element kinds and the properties each one takes, and the four closed vocabularies you must choose from: 25 fonts (with the weights each family has), 83 shapes, 14 photo frames, 6 named backgrounds. A value outside those lists is not an error you will be told about; it renders as nothing. - Positions are fractions of the page, not units: an element's `x`, `y`, `w`, `h` run 0..1 across the trim. Values outside that range are legal — bleed art and deliberate overhang both look like that — so nothing will stop you placing an element entirely off the page. - Board size is in `board.unit` (`cm`, `in`, `mm`, `pc`, `pt`, `px`) at `board.dpi`, and `board.ar` MUST equal the width/height ratio in inches — the editor stage and the export size are both computed from `ar`, not from `w` and `h`. - `document_corpus_stats` in the same file says what 372 real shipped templates actually contain — units, dpi values, elements per board (min 3, max 150, avg 24.3) and how often each kind is used. Those are measured ranges, not guidance; prefer them to invented numbers. ## You need an account to open the studio - The studio at /studio.html is behind a sign-in wall. Loading it signed out shows the sign-in card and nothing else — no board, no gallery, no editor. Signing in is free and has no password: Google, or a six-digit code sent to an email address. No card at any point. - **Never paste a Crevano session token — or the contents of the browser's local storage — into a chat with an AI, including this one.** That token is a bearer credential for the entire account, up to and including deleting every project in it, and there is no read-only form of it to hand over instead. - The safe way to have an AI drive Crevano is an agent that operates a browser tab you can see (Claude in Chrome, or any computer-use tool). Sign in yourself in that tab, once. The agent then works inside your own session and no credential is ever copied anywhere. See [Use Crevano with your AI](/help/use-crevano-with-your-ai). ## Driving the studio UI, once a tab is signed in - Every editing command is one entry in one dispatch table. All 47 of them are in capability-manifest.json with the action id, a plain-English description, what must be selected first, every route to it and its keyboard shortcut. The clickable control for action `x` carries `data-act="x"` in the DOM, so the id in the manifest is also the selector. ## Known limitations, stated plainly - **There is no hosted validator.** Nothing on crevano.app checks a `.crev` file for you, and no endpoint accepts one. (`tools/validate_board.py` exists in the private source repo and is not published here.) The only available test of a file you have written is opening it in the studio and looking at it. - 47 actions exist in the dispatch table; 10 of them are reachable ONLY via right-click and are not listed in any menu, so an agent (or a person) that doesn't already know the action id or the gesture will not discover them by reading the visible UI. capability-manifest.json is the authoritative list.