Skip to content

Doc type

Store listings

Both store pages, checked before you upload.

A store listing lays out an app’s Google Play and App Store pages: the screenshots for every device, the icon and feature graphic, the store text in each locale. You check it against the stores’ rules, edit the text in place, approve it, and get the fastlane folders to upload.

"type": "storelisting"

Switch between Google Play and the App Store. Each store has its own page: a Shared section, then a section per device row, each set with its count against the store’s maximum.

What it’s for

Everything the two stores ask for, on one page.

One HTML file per shot renders at every set’s size, so a change lands in each set at once. Sizes and limits come from a dated rules file, never from the agent.

  • Screenshots

    Watch, phone and tablet sets at each store’s sizes; TV, desktop, XR and car as optional rows.

  • Store text

    The name, descriptions, keywords and release notes per locale, each with its limit.

  • Locales

    Text, captions and captures per locale, with machine translations badged MT.

  • Variants

    App Store custom pages and A/B tests, Play custom listings and experiments.

  • Ads

    Google App campaign text and images, Apple Ads variations and the search asset.

Features

What you can do on the page.

Switch locales, with machine translations flagged

The locale menu switches the text, captions and captures, and counts each locale’s machine-translated strings. An MT string keeps its badge until you accept it.

See the store preview and the ads

Sections shows every set by device. Store preview draws the product page and a search result at phone width, as a mock; Ads holds the campaign text and images.

Edit the store text, then save it as a draft

Each store text and caption is a field with its counter, red past the store’s limit. Save turns the changed fields into drafts the agent writes into the doc.

Set the caption font

The Typography panel at the top of Text sets the captions’ font, weight, size, spacing and alignment, from the fonts installed on your machine.

Pick a caption style and a layout

The Style tab offers five message styles (M1–M5) and five layouts (L1–L5) per platform, each with its evidence. A pick re-renders every shot live.

Take the colours from an image

Drop an image on the Colors tab and its colours become the palette. Each text pair shows its contrast ratio against 4.5:1.

Check the listing against the stores’ rules

The build checks text limits, set counts, sizes, alpha, locales and mock-up UI against a dated rules file. The Checks tab lists each finding and shows the shot it is about.

Compare a custom product page with the default

A tab per custom page or A/B test lists what it changes against the default page. Compare to default puts each set’s default shots beside the variant’s.

Drop a real screenshot into a set

A set with room ends in a Drop PNG slot with its size. The page and the server check the PNG’s size and alpha; it stays a draft until the agent records it.

Export the fastlane ZIP

Export to… writes the fastlane ZIP, the same files in plain folders, a PDF or an HTML file. The key counts the files as it renders each PNG at its store size.

Undo and redo any draft

Every draft is a step of one undo history that a reload keeps: a Save of text, a style pick, a colour, an upload. Undo and Redo name the step.

Approve the listing

Approve listing counts the MT strings not yet accepted and the shots with mock-up UI, and names the variants it covers. The agent then exports the ZIP for you.

Works on every doc

Comments, revisions and approval, the same on every type.

See every shared feature
  • Pin a comment on any element

    Point at a node, a row or a button and write a note. The pin stays on the element.

  • Follow a comment to Resolved

    Notes go from Pending to Open when sent, and to Resolved when the agent’s revision says it dealt with them.

How the agent uses it

The agent writes JSON. The server draws the page.

The agent writes one shot file per screenshot, the store text per platform and locale, and the captions as strings. It never types a size or limit: those live in assets/store-rules.json.

python3 <skill>/scripts/build.py new storelisting docs/store/acme-fit.bluedoc.json --title "Acme Fit: store listing"
python3 <skill>/scripts/capture.py docs/store/acme-fit.bluedoc.json --dry-run
python3 <skill>/scripts/build.py docs/store/acme-fit.bluedoc.json
python3 <skill>/scripts/serve.py open docs/store/acme-fit.bluedoc.json
python3 <skill>/scripts/build.py docs/store/acme-fit.bluedoc.json --listing acme-fit.zip
acme-fit-listing.bluedoc.json · a shot
{  "id": "today",  "title": "Today",  "device": "shot",  "fidelity": "hifi",  "sets": ["play/phone", "play/tablet7", "play/tablet10", "appstore/iphone-69", "appstore/iphone", "appstore/ipad"],  "recipe": { "targets": ["web"], "route": "today", "locales": ["en-US"] }}
acme-fit-listing.design/today.html · the shot
<main class="shot" data-bd="today">  <h1 class="shot-cap" data-bd="cap" data-l10n="today.title">See your week at a glance</h1>  <div class="shot-frame" data-bd="frame">    <div class="shot-ui" data-bd="ui">      <main class="screen safe stack gap-4" data-bd="screen">…</main>    </div>  </div></main>

The page renders the one file at every set’s frame. The caption is the string today.title in listing.strings, so each locale swaps it; the agent never uploads to a store.

Install

Pick your agent.

Each one installs the same skill from the GitHub repository.

claude plugin marketplace add andreiverdes/bluedoc
claude plugin install bluedoc@bluedoc

Inside a session the same commands are /plugin marketplace add andreiverdes/bluedoc and /plugin install bluedoc@bluedoc. Start a new session to load the skill.

Needs: Python 3.9 or later on PATH · git, for code reviews · gh, only to import GitHub review threads.