Skip to content

refactor(demos): promote the account demo to a top-level /demos section - #44

Merged
montycheese merged 7 commits into
mainfrom
refactor/demos-top-level
Aug 4, 2026
Merged

refactor(demos): promote the account demo to a top-level /demos section#44
montycheese merged 7 commits into
mainfrom
refactor/demos-top-level

Conversation

@montycheese

Copy link
Copy Markdown
Contributor

Moves the account-abstraction demo out from under Vibenet into its own top-level section.

before after
/vibenet/demos /demos
/vibenet/demos/account /demos/account
Demos = a child of Vibenet in the sidebar Demos = top-level sidebar item

What changed

  • git mv for all 21 files, so history is preserved. Imports rewired in one pass: shared UI (app/components/ui/*) moved one level closer, and Vibenet's client library one level further away. The demo still runs on Vibenet and keeps consuming vibenetApi — no duplication.
  • app/demos/layout.tsx (new) carries over what the section used to inherit from app/vibenet/layout.tsx: the max-w-5xl content column and MaintenanceBanner. The banner is deliberate, not incidental — a demo is unusable while the devnet is down, so the signal is still relevant.
  • Breadcrumbs: /demos/* renders Demos / <Demo> via its own branch instead of being special-cased inside the Vibenet handler.
  • Redirects: /vibenet/demos and /vibenet/demos/:path* → 308 permanent. Both were in the published sitemap, and the site-wide announcement banner links the account demo, so existing links and search results keep working rather than 404ing.
  • Repointed the announcement banner, the Vibenet "Try It Out" CTA, and the upgrades data entry. Titles now follow the · Base Chain convention.

Verification

typecheck, lint, test, build, docs:check all pass. Against a production build:

  • /demos → 200, /demos/account → 200
  • /vibenet/demos308/demos; /vibenet/demos/account308/demos/account (also confirmed following the redirect in a browser)
  • /vibenet, /vibenet/faucet → 200 (unaffected)
  • Sidebar: Demos renders top-level and highlights on both routes; Vibenet's submenu is now Overview / Faucet / Explorer
  • Breadcrumb on the demo reads Demos / Account, parent links to /demos
  • Demo UI renders and is interactive (accounts, signer keys, transact, apps, activity)
  • Zero /vibenet/demos links left anywhere in the rendered DOM; all three demo CTAs point at /demos/account
  • Only console error is the Vercel Analytics script 404, which is expected outside Vercel and pre-existing

Demos were nested under Vibenet (/vibenet/demos), which framed them as a
Vibenet feature rather than a surface of their own. They now live at /demos
with the account-abstraction demo at /demos/account, and Demos is a top-level
sidebar item instead of a Vibenet child.

- git mv preserves history for all 21 files. Imports rewired: shared UI moved
  one level closer, and Vibenet's client library one level further away — the
  demo still runs on Vibenet and keeps consuming vibenetApi rather than
  duplicating it.
- app/demos/layout.tsx carries over what the section previously inherited from
  app/vibenet/layout.tsx: the content column and MaintenanceBanner, which is a
  functional signal since a demo is unusable while the devnet is down.
- Breadcrumbs: /demos/* now renders Demos / <Demo> instead of being handled by
  the Vibenet branch.
- /vibenet/demos and /vibenet/demos/:path* permanently redirect. Both were in
  the published sitemap and the site-wide announcement banner links the account
  demo, so existing links and search results keep working.
- Repointed the banner, the Vibenet feature CTA, and the upgrades data entry;
  titles now follow the "· Base Chain" convention. Updates llms.txt.
@cb-heimdall

cb-heimdall commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
omni-ui Ready Ready Preview Aug 4, 2026 5:19pm

Request Review

Demos may run on any of our test networks, not just Vibenet, so nothing at the
section level should assume one.

- /demos description no longer says "running on the vibenet developer network";
  each demo now states its own network.
- DemoHeader's default eyebrow was hardcoded to "Base Vibenet · Demo", which
  every future demo would have inherited. Defaults to "Base · Demo"; a demo
  names its network by passing `eyebrow`.
- Move Vibenet's MaintenanceBanner from the section layout down to the account
  demo's layout. At the section level it would show a Vibenet outage notice on
  a demo that does not use Vibenet; the demo that depends on the devnet owns
  that concern. No visual change while Vibenet is healthy.
- Drop an unused DemoHeader import from AccountDemo, and a stray double period
  in the demo description.

Vibenet references inside the account demo itself are unchanged — it genuinely
runs there. Updates llms.txt.
The breadcrumb derived its label from the URL slug and only uppercased the
first character, so a future demo at /demos/smart-wallet would have rendered
"Smart-wallet". It also ignored the demo's real name, letting the crumb and the
index card drift apart.

Extract the catalogue from app/demos/page.tsx into app/demos/catalogue.ts —
plain data, no server-only imports, so the client AppShell can read it too —
and add demoLabel(slug), which prefers the catalogue entry and degrades to a
title-cased slug for anything unregistered. Adding a demo is now one entry that
drives both the card and the crumb.

Rendering is unchanged: /demos/account still reads "Demos / Account", via the
new shortTitle field.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we're making these changes, should we change the title to be 'EIP-8130 · Demos' to match the format of how the other subpages do their titles?

Page titles follow two shapes: a section root is "{Section} · Base Chain"
(Snapshots · Base Chain, Vibenet · Base Chain) and a page inside a section is
"{Page} · {Section}" (Faucet · Vibenet, Explorer · Vibenet). Two titles did not.

- /demos/account was "EIP-8130 · Base Chain", naming the spec rather than the
  demo and pointing at the wrong section. Now "Native Account Abstraction ·
  Demos". Documented on DemoEntry.title so the next demo follows it.
- The upgrade detail page separated with a pipe, "{name} | Base Upgrades",
  where every other title in the app uses a middle dot. Now "·", matching its
  sibling changelog pages.

Written out in full rather than composed from a parent title.template: the
llms/agents generator resolves a template to its `default`, so a child page
would publish its bare title while the browser rendered the composed one.
@montycheese
montycheese requested a review from mbeutt-cb August 4, 2026 17:25
@montycheese
montycheese merged commit f5e6f64 into main Aug 4, 2026
11 of 12 checks passed
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.

3 participants