Skip to content

feat(home): hero CTA to the platform signup instead of the inline form - #189

Merged
sre-helmcode merged 3 commits into
mainfrom
feat/hero-signup-cta
Oct 15, 2026
Merged

sre-helmcode merged 3 commits into
mainfrom
feat/hero-signup-cta

Conversation

@sre-helmcode

@sre-helmcode sre-helmcode commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

What

Owner feedback: the signup form in the landing hero took too much space. The hero now has no form: only the existing headline and visual (glitch, dithered GPU illustration unchanged) plus two buttons:

  • Create account / Crear cuenta (primary) links to https://cloud.nan.builders/signup. A valid ?plan= on the landing URL is carried through (community | inference | premium | workspace | space), and the legacy ?premium=1 maps to plan=premium. Anything else is dropped and never echoed into the link. This is resolved in SSR, so the hero ships no JS of its own.
  • Log in / Entrar (secondary) links to https://cloud.nan.builders/.

The hero content is much shorter: the column is about 460px at 1440x900 and about 340-370px at 390px wide, versus roughly 1,000px with the form.

The models, footer and 404 CTAs, which pointed at the #signup hero anchor, now link straight to the platform signup. Pricing and nav already did.

Removed (dead code)

  • The hero form markup and its script (src/scripts/signup.ts)
  • The /api/signup Worker route (it is now a 404), src/lib/signupServer.ts, and the no-JS 415 page (src/lib/signupNoJs.ts)
  • The client validation in src/lib/signup.ts. It now keeps only the plan and link helpers used by the hero, nav, pricing and the community page.
  • Their tests and i18n keys (nan.hero.* form strings)

A grep confirms nothing else imports them. The privacy page still describes the profile data collected on cloud.nan.builders, and that text is unchanged and still accurate. CLOUD_API_URL is now documented only for the events pages, which still use it.

Tests

Written first:

  • src/tests/landing/heroCta.test.ts
    • the hero has no form or inputs;
    • CTA hrefs, ?plan= carry-through, the premium=1 mapping, and that unknown plans are dropped;
    • Log in URL, button copy in EN and ES, no line under the buttons, and that the old form strings are gone;
    • the dead files are deleted, and no link targets #signup or #waitlist.
  • src/tests/landing/heroCta.server.test.ts runs a real Astro dev server:
    • the SSR hero renders no form on /, /es, /?plan=workspace, /es?premium=1 and /?plan=gold;
    • hrefs are correct for each;
    • POST /api/signup returns 404.
  • Updated openSignup.test.ts (models, footer and 404 go to the platform signup), lib/signup.test.ts, and middleware.test.ts.

Results:

  • npm run build: passes
  • npx astro check: 0 errors, 0 warnings
  • npx vitest run: 85 files, 2446 tests, all passing
  • agent-browser at 1440 and 390, ES and EN: hrefs checked, no horizontal scroll

Deploy

Do not merge without the owner's go-ahead. This site deploys to prod on merge. No env changes are needed. /api/signup disappears, but nothing on the platform calls it.

🤖 Generated with Claude Code

barckcode and others added 2 commits October 15, 2026 19:59
Owner feedback: the hero signup form took too much space. The hero now
has a primary 'Create account' button to cloud.nan.builders/signup
(carrying a valid ?plan= from the landing URL, legacy ?premium=1 ->
plan=premium, resolved in SSR, no JS), a secondary 'Log in' button to
cloud.nan.builders/ and one reassurance line. The models, footer and
404 CTAs link straight to the platform signup.

Removes what only the form used: the hero form markup and script, the
/api/signup Worker route (now a 404), lib/signupServer.ts, the no-JS
415 page, the client validation, their tests and i18n keys.
lib/signup.ts keeps only the plan/link helpers used by hero, nav,
pricing and the community page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ARCHITECTURE.md, README.md and .env.example no longer describe the
hero form or /api/signup; CLOUD_API_URL is documented for the events
pages only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner correction: the hero keeps only the headline/visual and the two
buttons (Create account, Log in). Removes the line, its styles and the
nan.hero.reassure key; the test now asserts it is gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sre-helmcode
sre-helmcode merged commit bd16034 into main Oct 15, 2026
1 check passed
@sre-helmcode
sre-helmcode deleted the feat/hero-signup-cta branch October 16, 2026 11:32
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.

2 participants