Export

Store listings

Screenshots, tiles and the marquee from one take, at the exact sizes the Chrome Web Store wants.

A store listing is mostly images: screenshots at an exact size, a promo tile, a marquee. They come from one take of the real product, rendered at the pixels each surface demands and verified before you upload anything. The Chrome Web Store is spelled out here; Play, Shopify and the other galleries follow the same shape with their own numbers.

This loop runs in the CLI today. The export dialog covers single frames; exact-size sets are vos deliver.

  1. 1

    Record the shipped UI

    One take of the real product, staged like a set: real-looking data, the feature mid-story, never an empty canvas. Store policy is on your side here, and strict: misleading listing images are a removal-grade violation, so the honest capture is also the compliant one. Record at a large viewport; a small recording cannot honestly fill a 1280x800 screenshot.

  2. 2

    Cut it

    The usual take loop: vos plan the camera, adjust spans in the studio or in doc.json. The zoom apexes you end up with become the default screenshot moments, so a well-cut take is most of a well-shot listing.

  3. 3

    Deliver to the store's specs

    Shell
    vos deliver take --to cws --release "v2.1"

    One pass renders every Chrome Web Store asset from the verified spec table: up to five 1280x800 screenshots, the 440x280 promo tile, the 1400x560 marquee. Each artifact is checked against its spec (pixels, bytes) and kit.json beside them records what was made and what was skipped, with the reason in words. The icon is skipped on purpose: it is brand art, not footage. The screenshots are the real page at each moment, full bleed: the cut's zoom and the frame chrome are dropped for them (store policy says real UX and square corners); --composed keeps them when the composed frame is the screenshot you want. When the crop cuts an app's sidebar, pass --set 'frame.focus={"cx":0.3,"cy":0.5}'.

    Then re-measure the kit from its bytes, the same check a store runs:

    Shell
    vos validate take/kit/kit.json

    It names a .png that is really WebP, a size or a duration the manifest lies about, a still set under its count and a byte ceiling, per asset.

    Pick different moments with --times 4.2,11,18 when the apexes are not the story, or cut one still by eye:

    Shell
    vos frames take --frame 4.2 --size 1280x800
  4. 4

    Upload by hand, keep the take

    Uploads stay manual on purpose: a bad listing is expensive, so a human presses the button. What you keep is the take. Next release, re-record the same script and the listing regenerates from the new footage.