- desktop: Growth chart, Health and portfolio sparklines and the rollout bar drawn with visx (responsive width, crosshair tooltip with real values, arrow keys, theme tokens, no animation); icons from lucide-react behind the existing Icon names; empty states are lucide icons on token tiles; store marks are generic lucide icons; stars are lucide; the brand mark moves to ui/brand.tsx as the one allowed inline SVG - fixtures: app icons and store art stand-ins are PNGs rendered by tools/fixture-art.ts (lucide on gradients) - site: icons are lucide's own files in site/img/icons (tools/site-icons.ts, with the ISC licence) shown as CSS masks; the journey diagram is rendered from docs/diagrams/journey.mmd by tools/diagrams.ts (Mermaid CLI), with a tall variant for phones - tests/no-handmade-svg.test.ts fails on new inline SVG drawing in apps/desktop/src and site/*.html - desktop bundle: 598.7 -> 695.5 kB minified, 174.6 -> 206.0 kB gzip
72 lines
2.2 KiB
Text
72 lines
2.2 KiB
Text
---
|
|
title: From zero to “Submit for review”
|
|
---
|
|
%% The journey diagram (docs/img/journey.svg, site/img/journey.svg and the tall site/img/journey-tall.svg for phones).
|
|
%% Edit this file, then run: bun tools/diagrams.ts (Mermaid CLI; the tall variant turns each row into a column)
|
|
flowchart TB
|
|
subgraph before["Google Play + App Store, one config, your AI agent"]
|
|
direction LR
|
|
s1["`**1 · Config**
|
|
storebound.config.ts
|
|
and store/*.md texts, one
|
|
section per language
|
|
LOCAL`"]:::local
|
|
s2["`**2 · App records**
|
|
bundle id registered;
|
|
Play app + App Store
|
|
Connect record created
|
|
API · UI`"]:::api
|
|
s3["`**3 · Products**
|
|
in-app purchases with
|
|
regional prices, review
|
|
screenshots, testers
|
|
API · UI`"]:::api
|
|
s4["`**4 · Listings**
|
|
name, subtitle, texts,
|
|
keywords, contact, in
|
|
every language
|
|
API`"]:::api
|
|
s5["`**5 · Questionnaires**
|
|
Data safety, age rating,
|
|
encryption · IARC, target
|
|
audience, App Privacy
|
|
API · UI`"]:::api
|
|
s1 --> s2 --> s3 --> s4 --> s5
|
|
end
|
|
subgraph ready["Store art, a last check, your own click"]
|
|
direction LR
|
|
s6["`**6 · Privacy & icons**
|
|
policy page, privacy
|
|
manifest scan, every
|
|
icon from one artwork
|
|
LOCAL`"]:::local
|
|
s7["`**7 · Store art**
|
|
screenshots, previews,
|
|
feature graphic: render,
|
|
check, upload
|
|
LOCAL · API`"]:::local
|
|
s8["`**8 · Validate**
|
|
offline check, then a
|
|
read-only store report:
|
|
blockers in fix order
|
|
API · LOCAL`"]:::api
|
|
s9["`**9 · You press Submit**
|
|
Play Console: Send changes for review
|
|
App Store Connect: Submit for Review
|
|
Releases and rollouts stay yours too
|
|
YOU`"]:::you
|
|
s6 --> s7 --> s8 --> s9
|
|
end
|
|
before --> ready
|
|
legend["`**API** a storebound command (also an MCP tool)
|
|
**UI** a skill walks your agent, or you, through the console
|
|
**LOCAL** runs on your machine
|
|
**YOU** your own click: storebound never presses Submit`"]:::legend
|
|
ready ~~~ legend
|
|
|
|
classDef local fill:#0c2a3f,stroke:#38bdf8,color:#e2e8f0,stroke-width:1.5px
|
|
classDef api fill:#1e1b4b,stroke:#818cf8,color:#e2e8f0,stroke-width:1.5px
|
|
classDef you fill:#052e1c,stroke:#4ade80,color:#f0fdf4,stroke-width:2px
|
|
classDef legend fill:#0f172a,stroke:#334155,color:#cbd5e1,stroke-dasharray:4 3
|
|
style before fill:#111a2e,stroke:#334155,color:#94a3b8
|
|
style ready fill:#111a2e,stroke:#334155,color:#94a3b8
|