Skip to content

Lead with the account now that app.shell.online is live - #117

Merged
TeoSlayer merged 2 commits into
mainfrom
landing-signup-cta
Sep 12, 2026
Merged

TeoSlayer merged 2 commits into
mainfrom
landing-signup-cta

Conversation

@Alexgodoroja

Copy link
Copy Markdown
Collaborator

Why

The landing page still treated the web app as a footnote. The header carried an unstyled Web app text link between Use cases and the GitHub star count, and the hero offered Create an account as an underlined line tucked beneath the install one-liner. That hierarchy was deliberate while the CLI was the only way in — the CSS said so — but app.shell.online has launched and nothing on the page says so loudly.

What changed

Both entry points become real buttons in the site's accent green, which is the only filled accent on the page:

  • Header pill replaces the Web app text link and sits at the end of the nav, so it is on screen at every scroll position. It is the accent control rather than a second dark pill; two identically filled pills side by side read as one widget split in half.
  • Hero button leads the actions column at the same height as the install command directly below it, so the pair reads as a ranked choice rather than two controls arguing about which is the thing to press.

Both point at ${SIGNUP_URL} (https://app.shell.online/signup), unchanged.

Responsive

Below 760px the header drops its Copy install pill instead of the star count or the account button — the hero repeats that one-liner a screen down, and a phone is rarely where it gets pasted. Dropping it is what leaves room for the account button at 390px.

The two responsive rules that keyed off .marketing-links > a:last-of-type now name the elements they mean. The last anchor in the nav is no longer the GitHub link, so the old selectors would have silently swapped which element they hid. The docs nav shares .marketing-links and still has no classed GitHub anchor, so the :last-of-type arm is kept alongside the explicit one and that nav is unaffected.

Also

  • The <noscript> fallback gets the signup link it never had, next to the install command.
  • scripts/test-landing-seo.mjs pins both buttons and the no-script link, so a later refactor cannot quietly demote the account again.
  • .platform-signup went with the old text-link styling. Nothing in the repository referenced it.

Verification

npm run typecheck and npm test (vitest 79 passing, installer, docker, deploy guard, QEMU manifest, landing SEO, mobile controls, formula) all green.

Rendered against a local vite dev server and checked at 1440, 1040, 760, 520, 430, 390 and 375px. No horizontal overflow at any width (scrollWidth === innerWidth everywhere). The install command's text clipping at =420px is pre-existing and untouched — confirmed against origin/main.

1440px 375px
Header: Docs · Use cases · ★ GitHub · Copy install · Sign up free. Hero: green button above the install one-liner, See how it works below. Header: wordmark · Sign up free. Hero unchanged in order.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ChDYHbqrRKGq2hrrJYi2nD

The landing page still treated the web app as a footnote: an unstyled
"Web app" link in the header and an underlined "Create an account" line
tucked under the install one-liner. That made sense while the CLI was the
only way in. It does not now.

Both entry points become real buttons in the site's accent green, which is
the only filled accent on the page:

- The header pill replaces the "Web app" text link and sits at the end of
  the nav, so it is on screen at every scroll position.
- The hero button leads the actions column at the same height as the
  install command directly below it, so the pair reads as a ranked choice
  rather than two controls competing for the press.

Below 760px the header drops its "Copy install" pill instead of the star
count or the account button. The hero repeats that one-liner a screen
down, and a phone is rarely where it gets pasted; dropping it is what
leaves room for the account button at 390px. The two responsive rules that
keyed off `:last-of-type` now name the elements they mean, since the last
anchor in the nav is no longer the GitHub link.

The no-script fallback gets the signup link it never had, and
test-landing-seo.mjs pins both buttons plus that link so a later refactor
cannot quietly demote the account again. `.platform-signup` went with the
old text-link styling: nothing in the repository used it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ChDYHbqrRKGq2hrrJYi2nD
Comment thread scripts/test-landing-seo.mjs Dismissed
@TeoSlayer
TeoSlayer merged commit 4e8dc72 into main Sep 12, 2026
15 checks passed
@TeoSlayer
TeoSlayer deleted the landing-signup-cta branch September 12, 2026 12:57
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