Skip to content

Add /publish — app-store submission wizard#33

Merged
Alexgodoroja merged 8 commits into
mainfrom
publish-page
Jun 18, 2026
Merged

Add /publish — app-store submission wizard#33
Alexgodoroja merged 8 commits into
mainfrom
publish-page

Conversation

@Alexgodoroja

Copy link
Copy Markdown
Collaborator

The publish UI moves into the website (Nav + Footer): a multi-step wizard that POSTs to the submission API on the VM (CORS-locked to the website origin).

  • io.pilot. prefix enforced; backend page explains the ${TOKEN} secret placeholder.
  • methods as multi-row cards: field headers, info-icon tooltips, structured params builder, required latency + reference (fast<5s / med<=15s / slow<=1m), per-method description, and a LIVE help + pilotctl preview (POST /api/preview).
  • split Listing (store fields + app description + requires-binary + URL) and Vendor (vendor + how-agents-use + capabilities) pages; review table.
  • API base via PUBLIC_PUBLISH_API (.env, gitignored). Admin dashboard stays on the VM.

Verified locally: website :4321 → API :8098 (CORS allowed); live preview + submit → case created.

The publish UI now lives in the website (Nav + Footer), a multi-step wizard
that POSTs to the submission API on the VM (CORS-locked to the website origin):
- io.pilot. prefix enforced; backend page explains ${TOKEN} secret placeholders;
- methods as multi-row cards with field headers, info tooltips, a structured
  params builder, required latency + reference (fast<5s/med<=15s/slow<=1m),
  per-method description, and a LIVE help + pilotctl preview (POST /api/preview);
- split Listing (store fields + app description + requires-binary + URL) and
  Vendor (vendor + 'how agents use this' + 'capabilities') pages; review table.
API base via PUBLIC_PUBLISH_API (.env, gitignored).
@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown

🚀 Preview deployed to Cloudflare Pages

Alex Godoroja and others added 7 commits June 17, 2026 15:57
…d DOM)

The wizard DOM is built client-side via innerHTML, so Astro's component-scoped
<style> (which only tags build-time markup) never matched it — the page looked
unstyled. Make the block is:global and namespace every rule under #publish so it
applies to the runtime DOM without leaking into the rest of the site.
…form

- stepper now lays out on a single line (was wrapping 'Review' under step 1).
- the form is forced LIGHT + larger and fills the screen (the site defaults to a
  dark theme, which made the form unreadable); bigger type, wider 1060px layout.
- split the presentation from the form: /publish is an intro (hero + bulleted
  requirements/disclaimers + how-it-works + 'Publish your app now' button); the
  button opens the big form view; 'Back to overview' returns. No internal details.
- copy now refers to your 'app' throughout (lede, requirements, how-it-works,
  backend explainer, placeholders); example secret renamed ${WEATHER_TOKEN}.
- the io.pilot. prefix + 'installs as' no longer use the monospace font; they
  match the rest of the form (Inter Tight).
…methods

- all green buttons (Next, Submit, 'Publish your app now') now match the site's
  primary button (the cookie Accept): mono, uppercase, accent, same font.
- form state persists across reloads (view + step saved to localStorage); you no
  longer get bounced to the intro and lose your place.
- 'Your app installs as io.pilot.' chip: forced light bg + dark text so it's
  readable on the light form (the global code style was theme-dependent/dark).
- methods card tidied: aligned 4-col header (name/verb/path/latency), latency
  reference line, full-width description, a divider, and an aligned params table.
- new Email step (step 1/7): collect email → send code → verify, calling
  /api/email/start + /api/email/verify; advances on success
- segmented 6-digit OTP input (auto-advance, paste-to-fill, backspace,
  auto-submit on the 6th digit), code auto-fills in dev/placeholder mode
- submission carries email + verify_token; vendor contact = the verified email
- wizard steps keyed by name (not index) so ordering is robust
- move the latency reference text into the Latency tooltip
- fix Back/Next scroll reset; persist the verify token across reloads
…lish

- Email step now just collects the publisher email (no verification code) —
  the backend no longer gates submit on a verified token
- Backend step: app-type choice — HTTP API (available) vs CLI/binary (coming soon)
- remove the now-redundant "ships a binary" listing field
- app-store page: replace the two "Install Pilot" CTAs with "Publish your app" → /publish
@Alexgodoroja Alexgodoroja merged commit 1488c16 into main Jun 18, 2026
2 checks passed
@Alexgodoroja Alexgodoroja deleted the publish-page branch June 18, 2026 04:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant