Skip to content

feat(website): replace the Rspress site with the agent-device.dev product site - #3991

Merged
thymikee merged 40 commits into
mainfrom
website/product-web-design
Oct 28, 2026
Merged

thymikee merged 40 commits into
mainfrom
website/product-web-design

Conversation

@grabbou

@grabbou grabbou commented Oct 27, 2026 •

Copy link
Copy Markdown

Summary

Replaces website/ (Rspress) with an Astro + Starlight site, so agent-device.dev serves the landing pages and docs from this repo through the Vercel project agent-device-website (root website/, public previews).

  • Hero: "Open-source device layer for agents.", one centred column with the install command, GitHub stars and npm downloads, and a session that ends in evidence. Header: star count and docs search (same Pagefind index).
  • Every docs page has a text/markdown twin at /docs/<page>.md; check-doc-links fails a page without one.
  • deploy.yml publishes redirect stubs for oss.callstack.com/agent-device/*; old .md and llms*.txt URLs keep content copied from agent-device.dev, and the deploy fails until that site serves them.
  • Production loads today's trackers (Vercel Analytics, GA, Common Room). Templates is removed; /templates redirects home.
  • Fallow now analyses the site.

About 140 files, above the size guideline; one PR keeps the cutover one step.

Cutover: promote this head to production, move agent-device.dev and www to agent-device-website, then merge.

Validation

At 56786ff (rebased onto main) all 24 CI checks pass, including Integration Tests and Coverage, after a dogfooding pass with agent-browser on the preview; the later commits only guard the redirect deploy. Locally: lint, astro check, the site build, check-doc-links and the Fallow audit pass; browser tests cover the docs search (lazy load, retry, results), the star refresh and its rate-limit fallback, and every page width from 390 to 1440 px. The refactored loop scene's frames and the docs HTML were checked byte-identical.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Size Report

Metric Base Current Diff
Installed (including dependencies) 5.56 MB 5.56 MB -278 B
Package (unpacked) 5.56 MB 5.56 MB -278 B
Package (download) 1.69 MB 1.69 MB -2 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 43.3 ms 46.6 ms +3.4 ms
CLI --help 90.7 ms 89.4 ms -1.3 ms

@grabbou
grabbou marked this pull request as ready for review October 27, 2026 14:38
Copilot AI balanced review requested due to automatic review settings October 27, 2026 14:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 133 files

Tip: cubic used a learning from your PR history. Let your coding agent read cubic learnings directly with the cubic MCP.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread website/src/components/site/CopyCommand.astro Outdated
Comment thread website/src/components/site/CopyCommand.astro
Comment thread website/src/components/site/Marquee.astro
Comment thread website/src/site/llms.ts Outdated
Comment thread website/package.json Outdated
Comment thread website/og/og.html Outdated
Comment thread website/scripts/og.mjs Outdated
Comment thread website/src/site/npm.ts Outdated
Comment thread website/src/components/site/Tabs.astro Outdated
Comment thread website/ec.config.mjs Outdated
Copilot AI balanced review requested due to automatic review settings October 27, 2026 14:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@thymikee

Copy link
Copy Markdown
Member

Thanks for the site work. I found two problems at 26d37c3 that can break published docs URLs after merge. The checks are green (6 checks, 0 failing; the device lanes do not run because the diff touches no runtime code, and docs.yml covers the changed site routes). The PR has merge conflicts with main.

deploy.yml is deleted, so nothing deploys the docs to gh-pages any more. At the same time the README, the provider-testmu homepage, agent-setup.md, llms.ts and the check-doc-links PUBLISHED_SITE all point to https://agent-device.dev/docs/*. That domain is still served by the separate landing repo until Vercel points at this repo, and the oss.callstack.com/agent-device redirects are also deferred. From merge until cutover, oss.callstack.com stays frozen at the last Rspress build, and new links (including the README on npm and the testmu homepage) can reach a site with no /docs. Old /agent-device/docs/* URLs have no redirect. The rule should be: one deployed site serves every published docs URL at every commit on main. Please connect the Vercel project (root website/), show a preview deployment of this head, switch agent-device.dev in the same step, and add the oss.callstack.com/agent-device/* to agent-device.dev/* redirect in this PR. Otherwise keep deploy.yml until cutover. I did not fetch either domain, so this rests on the PR body and the code.

astro.config.mjs loses the per-page Markdown files. Rspress served llms.txt, llms-full.txt and a text/markdown /docs/<page>.md for every page. starlight-llms-txt emits llms.txt, llms-full.txt and llms-small.txt, and no route under src/pages builds /docs/[slug].md. LLM clients that fetch one page as Markdown will get a 404 after cutover. Please add a src/pages/docs/[...slug].md.ts endpoint over getCollection("docs") that returns the entry body as text/markdown, add a vercel.json header for it, and extend check-doc-links or a build assertion so every docs page keeps its .md twin. I did not build the site or run check-doc-links, astro check or check:affected; I rely on the author's report that they pass. Please show a build where a /docs/<page>.md URL returns the page body.

Not blocking, take or leave: (1) llms.ts and content.ts restate capability facts that the generated docs/capabilities.md owns, and no gate compares them, so a capability fact should have one source (a pointer to /docs/capabilities or bullets generated from the capability-matrix data); (2) check-doc-links.ts used to read the base from the build and fail when the home link did not prove it, and now hard-codes /, so reading the base from the build output and asserting the home link again keeps that guard; (3) the case in check-doc-links.test.ts became https://agent-device.dev-old/docs/retired, which is a different host and no longer covers the prefix boundary, so https://agent-device.dev/docs-old/retired would keep the intent; (4) mcp.json.ts makes every site build (Vercel, the docs-links gate, local check:doc-links) depend on registry.npmjs.org, and npm.ts also calls api.npmjs.org, so either note that dependency in docs/agents/testing.md or fall back to the last released version, and check response.ok before parsing; (5) the @types/node change in packages/daemon/package.json is a separate fix and could be its own chore commit; (6) index.astro brings the PR to about 6,900 production lines, above the 2,500 ceiling in docs/agents/pull-requests.md, so the Rspress to Starlight migration (with CI, redirects and .md endpoints) and the landing, showcase, cloud, templates and contact pages could be two PRs.

Would it be simpler to land the engine swap first? That means Starlight over the unchanged website/docs/docs, with the Rspress URL set including per-page .md, CI, a Vercel preview and the oss.callstack.com redirects, which I estimate at about 600 production lines. The landing pages would follow as a second PR. A smaller option is to keep Rspress and build the landing on its home page type plus custom pages, which keeps llms and .md for free but probably cannot match the new design without a theme fork. What would have to change first is a connected Vercel project with a preview deployment, and a decision on whether the oss.callstack.com redirects live in Vercel or as gh-pages stub pages.

The open inline threads still stand: copy fallback selection, copy aria-label, DevTools claim drift, node engine mismatch, hidden mobile nav, order comment wrong, contact form without JS, stripped underscores in descriptions, unused banner.jpg, FAQ platform element, Vercel install scope and server.json rebuild trigger. 13 lower-priority threads also still apply. I found no thread that should be resolved.

Before merge, please rebase onto main (eedc0df) and regenerate pnpm-lock.yaml, which is the only conflict and comes from #3980. Then run the cutover in order: a Vercel preview of this head, the oss.callstack.com/agent-device redirects, and the per-page /docs/<page>.md endpoints.

@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
agent-device-website Ready Ready Preview Oct 28, 2026 5:01pm UTC

Request Review

@thymikee
thymikee force-pushed the website/product-web-design branch from 26d37c3 to 7c5d3ee Compare October 28, 2026 11:12
Copilot AI balanced review requested due to automatic review settings October 28, 2026 11:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@thymikee

thymikee commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Taken over and updated at 7c5d3ee (rebased onto main; the lockfile matches the regenerated one).

Blocking items:

  • Published URLs across the cutover. The Vercel project agent-device-website (root website/) builds public previews of this branch. deploy.yml now publishes redirect stubs for oss.callstack.com/agent-device/* to gh-pages: each docs page and the home page point to the same path on agent-device.dev, and 404.html forwards any other path. The old docs/<page>.md, llms.txt and llms-full.txt keep serving content, copied from agent-device.dev. That copy fails until agent-device.dev serves them, so a merge before the domain moves keeps the old docs published. Cutover order: promote this head to production, move agent-device.dev and www from v0-agent-device, then merge.
  • Per-page Markdown. src/pages/docs/[...slug].md.ts writes # <title> and the body for every docs page, vercel.json serves /docs/*.md as text/markdown, and check-doc-links fails a docs page without its twin (with a test).

Notes: (1) llms.txt points to the capabilities page and agent-device capabilities --platform instead of restating facts; (2) the base is read from the build again and the home link must prove it; (3) the test uses https://agent-device.dev/docs-old/retired; (4) mcp.json checks the status before parsing, and an unreachable registry fails the build with a message that names registry.npmjs.org and calls it an infrastructure fault (docs/agents is at its size budget, so the note is not in testing.md); (5) the @types/node change was already its own commit; (6) kept as one PR, by the owner's decision.

All 36 inline threads have replies and are resolved. The PR body has the validation result: one local full-suite step failed 2 tests in untouched files, and CI is authoritative.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 11:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 2 files (changes from recent commits).

Tip: Get a Slack DM when cubic finishes reviewing your PRs. Connect Slack

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread website/src/pages/.well-known/mcp.json.ts Outdated
Copilot AI balanced review requested due to automatic review settings October 28, 2026 11:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 12:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 12:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 12:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 12:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 12:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 12:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

thymikee and others added 19 commits October 28, 2026 16:37
The landing and docs headers link to GitHub with the repository's star
count. The count is fetched once per build and baked into the HTML, so
it renders at once and without scripts. When the page is idle, the
browser refreshes it from the GitHub API, at most once per session in
ten minutes; when GitHub refuses, the built figure stays. On phones the
header keeps the stars and drops its GET STARTED, which the hero opens
with.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The setup window shows the npm install only; the skill is covered in
the agent setup docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Uppercase labels showed AGENT-DEVICE. The name is now set as typed
wherever it appears: the window tags (on the site and the social card)
and the closing wordmark use Geist Mono like the lockup, and a NameCase
component keeps the name, or a path that contains it, in its case
inside uppercase labels and the footers. The closing wordmark is sized
from Geist Mono's fixed advance. The docs sidebar group 'Using
agent-device' becomes 'Usage', since Starlight group labels are plain
uppercase text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Templates never shipped as a product. The page, its nav entry, the
contact form's template reason and the FAQ pointer to a template go;
the reasons grid has three columns. /templates, listed by the old
site's sitemap, redirects home.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The header's GET STARTED becomes a search button (icon only on narrow
screens, ⌘K or Ctrl+K anywhere) that opens the docs search in place: the
same Pagefind index and UI the docs header uses, in a dialog styled like
it. The Pagefind UI loads when the reader reaches for it, not with the
page. The hero keeps its GET STARTED.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The headline and lede say what the repo is: low-level device
infrastructure that agents use when asked to, through a CLI, MCP server
and typed API, working from compact UI snapshots so the same task costs
fewer tokens, and that agent products build on as their driver. The page
title, meta description, social card and banner follow. The headline's
second beat starts its own line, as on the card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…resh

- The docs search forgets a failed Pagefind load, so the next open tries
  again, and a click inside a result link closes the dialog.
- A refused GitHub refresh is cached for ten minutes like a count, so a
  rate-limited session stops asking on every page.
- The refreshed accessible label takes the product name from the server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The headline becomes "Open-source device layer for agents." The hero is
one centred column: the motto, the lede, the install command beside
GitHub stars and npm downloads (moved up from the used-by strip), and a
link to the docs. The zsh window goes, so the session starts higher on
the page, and each session ends with the agent's reply naming what it
brings back. The npm figure is fetched once per build. The social card
and banner follow, with the headline balanced across lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The lede now says agent-device gives coding agents what they need to
connect to and control mobile, web, TV and desktop devices and
simulators wherever they run, as a CLI, an MCP server and a Node.js API
that fits into agents' workflows. The meta description follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The loop scene moves out of the session panel to one layer behind the
whole hero: dimmed, a little larger (the hero's loop may grow to 340
cells), and rising into the fold, with its main track just above the
tabs and its top edge fading out under the lede. Accent sparkles,
placed at build time from a fixed seed, twinkle in the margins around
the headline; narrow screens show a third of them, and reduced motion
keeps them still. The stat chips get a solid background.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…wcase

USED BY TEAMS AT sits centred above the logos and links to /showcase,
replacing the separate SEE HOW THEY USE IT link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The lede says what agents get and where, plainly: control of mobile,
web, TV and desktop apps on devices and simulators, local or in the
cloud. The interfaces move to the meta description; the install
command beside the lede shows how to start.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Expo's entry leads with Expo Simulators, the remote iOS Simulators and
Android Emulators on EAS, which Expo's docs drive with agent-device, and
cites those docs and Expo's agent-device page. Expo opens the home
page's adopter stories, and Expo Simulators joins the hosted devices on
the home page and the Cloud page's providers, linking to Expo's docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…read

- Sparkles draw candidates until `count` survive the centre filter (48,
  not 38).
- An empty star count no longer takes a gap in the named GitHub chip.
- The npm downloads read loses its module cache: one caller, and under
  astro dev it kept a failed read until restart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ll label

- The loop scene's height follows the page width (8:5, at least 36rem)
  instead of the session, so switching Build, Verify and Profile no
  longer resizes and redraws it.
- The sparkles move to a layer across the whole window above the fold,
  outside the page frame.
- The install command gets an INSTALL label: beside it on wide screens,
  above it on phones, so the command keeps its full width.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The README tagline and banner alt text and the docs introduction use
the site's line: an open-source device layer for coding agents, local
or in the cloud, through a CLI, MCP server and Node.js API. Device
clouds documents Expo Simulators, which runs agent-device inside its
own sessions through eas simulator:exec.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Builds clear Astro's content cache (astro build --force): Vercel kept
  docs pages rendered under an older code-block config, so 24 of them
  linked a missing stylesheet and scrolled sideways.
- The hero sessions share one cell, so switching tabs no longer moves
  the page below.
- Hero transcripts run as written: Build closes iOS before Android;
  Verify saves the contact, waits for it, and writes the files its
  reply names.
- The cloud copy says which providers are built in and that evidence
  differs by provider; Expo Simulators links to its docs section and
  "can be driven" with agent-device.
- llms.txt: the site's positioning, cloud use, an install line, and e2e
  for stable suites (as the docs say since #4010).
- Source labels keep their case and wrap; the name never breaks; the
  phone menu closes on outside tap or Escape; search returns focus;
  contact defaults to "Something else"; Read the docs opens the
  introduction; stronger Kortix and MetaMask sources.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thymikee
thymikee force-pushed the website/product-web-design branch from 010b298 to 56786ff Compare October 28, 2026 15:43
@thymikee

Copy link
Copy Markdown
Member

I found no problems in the code at 56786ff. The three small issues from the earlier thread (the empty star count gap, the module-level npm lookup, and the inexact sparkle count) are now fixed. The dither size difference between the loop and the hollow scene is fine, because the 404 scene is shown alone on its own page.

Smoke Tests is still queued, not failed. This change touches only website/, README.md and docs Markdown, so it does not overlap with what those tests cover. There are no conflicts.

The four earlier inline threads no longer apply, so you can resolve them: the dither size thread is benign (#3991 (comment)), and the star count gap, npm lookup and sparkle count threads are fixed (#3991 (comment), #3991 (comment), #3991 (comment)).

I did not render or screenshot the hero tab switching, the sparkle layer stacking, or the INSTALL label wrap on phones. I also did not reproduce the stale Vercel build content that motivated astro build --force, and I did not fetch the Expo, MetaMask and Kortix source URLs or test the Expo Simulators behavior.

The deploy fetches the docs Markdown and llms files from agent-device.dev,
so on every push to main an outage there would fail unrelated commits.
It now runs for the docs, the redirect script, the site copy and llms
sources, and the workflow itself, and can be run by hand to republish
after the cutover.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 28, 2026 16:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 1 file (changes from recent commits).

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread .github/workflows/deploy.yml
Comment thread .github/workflows/deploy.yml
…it is live

- The deploy job runs only on main, so a manual run from a branch cannot
  publish that branch's script to gh-pages.
- The site serves the commit it was built from at /version.txt, and a
  push run waits until agent-device.dev serves that commit or a later
  one before it copies the docs, so a docs merge never republishes the
  docs from before it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 28, 2026 17:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@thymikee
thymikee merged commit e560224 into main Oct 28, 2026
24 checks passed
@thymikee
thymikee deleted the website/product-web-design branch October 28, 2026 17:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants