storebound/docs/diagrams/journey.mmd
CRT 035efa9fa1 No hand-written SVG: visx charts, lucide icons, Mermaid journey diagram
- 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
2026-10-11 08:49:30 +08:00

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