Skip to content

feat: replace the site with a "Launching soon" page - #31

Merged
vedantlavale merged 8 commits into
mainfrom
feat/coming-soon
Sep 27, 2026
Merged

vedantlavale merged 8 commits into
mainfrom
feat/coming-soon

Conversation

@vedantlavale

Copy link
Copy Markdown
Owner

Until the redesigned billy launches, main serves one page: the billy mark, a "Launching soon" heading with a looping blue doodle video showing through the letters (react-bits MaskedHeading), and "A whole new billy is on its way."

What changed

  • One page. app/page.tsx is the coming-soon page. Every other route is gone: editor, dashboard, login, signup, auth callback/actions, and the three /api routes, plus proxy.ts (Supabase session + waitlist gating) and the components/libs only they used.
  • Old links still land. /editor, /dashboard, /login, /signup, /auth/* and the old /api routes redirect (307) to /. Anything else gets a small on-brand 404. The PostHog /api/metrics rewrite is untouched.
  • New brand bits. Favicon and apple icon from the new brand, Geist for type, public/brand/mark.svg.
  • Heading fill. public/coming-soon/fill.mp4 (8s seamless loop, 1600px, no audio, ~1 MB) plus a poster frame. Billy's sky-blue tile gradient with white doodles from the new landing page drifting across.
  • MaskedHeading added via npx shadcn@latest add @react-bits/MaskedHeading-TS-TW (adds the @react-bits registry to components.json), using the settings from the customizer. Three fixes to the vendored file:
    • 'use client', since it uses hooks.
    • The settings ref is written in a layout effect instead of during render (react-hooks/refs lint error).
    • The word spacer after:content-['\\00a0'] rendered as the literal text \00a0 under Tailwind v4, adding ~400px after each word and splitting the heading onto two misaligned lines. It's now after:content-['_'].

Checks

  • next build passes; the app is now /, the 404, and the icons.
  • ESLint: no errors (one no-img-element warning for the small logo).
  • Checked in the browser at 1440px and 390px: heading centered on one line, video playing through the letters; /editor returns 307 to /, unknown paths 404.

Not done here

  • Now-unused dependencies (Supabase, react-pdf, posthog-node) are still in package.json, to keep the lockfile unchanged for this PR.
  • The generic components/ui kit and lib/utils are kept.

🤖 Generated with Claude Code

The redesigned billy is launching soon, so main now serves a single page
until then: the billy mark, a "Launching soon" heading with a looping
blue doodle video showing through the letters (react-bits MaskedHeading),
and one line of copy.

- Remove every other route (editor, dashboard, login, signup, auth, api)
  and the Supabase proxy, plus the components and libs only they used.
- Redirect the retired routes to / so old links still land somewhere.
- New favicon and apple icon from the new brand; Geist for type.
- Vendored MaskedHeading: mark it as a client component, set its
  settings ref in a layout effect instead of during render, and fix the
  word spacer, which Tailwind v4 rendered as the literal text "\00a0"
  and pushed the heading onto two misaligned lines.
Copilot AI lite review requested due to automatic review settings September 27, 2026 07:06
@vercel

vercel Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
billy Ready Ready Preview Sep 27, 2026 2:11pm UTC

Copilot AI left a comment

Copy link
Copy Markdown

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 reached their quota limit.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Failed ❌

View logs ↗
056acdb 2026-09-27T14:11:15.918Z View logs ↗
  • Build: Failed ❌

View logs ↗
fd779b5 2026-09-27T12:44:09.550Z View logs ↗
  • Build: Failed ❌

View logs ↗
e3ee6c2 2026-09-27T12:08:30.491Z View logs ↗
  • Build: Failed ❌

View logs ↗
5dc388b 2026-09-27T11:26:11.434Z View logs ↗
  • Build: Failed ❌

View logs ↗
8d60a2b 2026-09-27T09:25:32.388Z View logs ↗
  • Build: Failed ❌

View logs ↗
8649628 2026-09-27T07:23:26.745Z View logs ↗
  • Build: Failed ❌

View logs ↗
ec8179a 2026-09-27T07:17:06.754Z View logs ↗
  • Build: Failed ❌

View logs ↗
f0aae57 2026-09-27T07:07:13.548Z View logs ↗

The first version was a lone masked heading on white. Now the page reads
as the new billy:

- Dotted sketch-paper surface with soft blue glows instead of flat white.
- The new landing page's doodles scattered round the edges. They draw
  themselves in on load, float, and drift with the pointer.
- A bolder heading (800 weight, larger scale), a hand-drawn squiggle that
  draws in under "soon", and a "Something new is on the way" chip with a
  pulsing dot.
- The doodle face peeking at the heading with a "psst!" bubble.
- A blurred sneak peek of the new editor rising from the bottom edge.
- A richer fill loop: deeper blues, a light sweep, bolder doodles.
- On phones the heading wraps to two lines at a larger size.

All motion is off under prefers-reduced-motion.
@vedantlavale

Copy link
Copy Markdown
Owner Author

Pushed a redesign (ec8179a): the page is now a scene instead of a lone heading on white. It has a dotted sketch-paper surface with soft blue glows, the new landing page's doodles drawing themselves in around the edges and drifting with the pointer, a bolder heading with a hand-drawn squiggle, a "Something new is on the way" chip, the doodle face with a "psst!" bubble, and a blurred sneak peek of the new editor rising from the bottom. The fill loop is richer too. Checked at 1440px and 390px; build and lint are clean.

…peek

- Drop the "Something new is on the way" chip, the dotted background and
  the scattered doodles. The page is white with a soft blue glow, the
  heading, its hand-drawn underline and one line of copy.
- "Launching soon" now rises one letter at a time. MaskedHeading gains a
  split="chars" option that clips and animates each letter on its own.
- The blurred sneak peek is the centerpiece: the new editor with two
  more blurred screens fanned out behind it, rising from the bottom.
@vedantlavale

Copy link
Copy Markdown
Owner Author

Pushed a decluttered version: the chip, dotted background and scattered doodles are gone; "Launching soon" now rises one letter at a time (new split="chars" option on MaskedHeading); the blurred sneak peek is the centerpiece, with the new editor and two more blurred screens fanned behind it. Checked at 1440px and 390px.

A "Get your founding member number" form under the heading. It posts
straight to a Loops form (NEXT_PUBLIC_LOOPS_FORM_ID), so there is still
no server or database. Once an email is typed, an optional name field
appears; giving a name opts into the founding members wall
(userGroup "founding-wall", otherwise "founding"). Numbers and unlock
links go out on launch day (launch-alpha, PR #32).
@vedantlavale

Copy link
Copy Markdown
Owner Author

Added the founding member signup (posts to Loops, no backend). Set NEXT_PUBLIC_LOOPS_FORM_ID in the deploy's environment variables to your Loops form ID, then redeploy; until then the form says signups open soon. Giving a name opts into the founding members wall. Numbers, unlock links and the wall itself are in PR #32 on launch-alpha.

Default NEXT_PUBLIC_LOOPS_FORM_ID to the form the user created
(cmujkeahx0k1w0j4adtzmompe), still overridable by the env var if the
form is ever recreated. Also send the email under both "email" and
"newsletter-form-input" (the field name Loops' own embed HTML uses),
since only their embed's generated markup confirms which key the
endpoint reads.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vedantlavale

Copy link
Copy Markdown
Owner Author

Wired in the real Loops form ID (cmujkeahx0k1w0j4adtzmompe), so the signup form is now live on this branch — no env var needed unless you recreate the form later. Tested with a mocked Loops response: posts to the right endpoint with the email, name and wall opt-in.

One thing worth a real end-to-end check on your side: submit the form once for real on the preview, then check your Loops Audience tab to confirm the contact lands with the right fields. I sent the email under both email and newsletter-form-input since Loops' own embed HTML uses the latter and I couldn't confirm from the API alone which one their endpoint reads — but a live test will settle it in one signup.

The letter-fill video had drifting doodle icons plus a dot halftone
texture behind them — busy at heading size, read as clutter. Now just
the billy-blue gradient with one soft light sweep.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Match the launch-alpha rename. Also swap the form's headline from
"Get your founding member number" to "Join the waitlist for a
surprise at launch" -- less spoiler, more hook, consistent with not
disclosing what's actually unlocked before launch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Cloudflare's Production build was pointed at this branch with nothing
telling it what to deploy: no wrangler.jsonc existed here at all (only
on launch-alpha), and next.config.ts wasn't even set to static export
yet -- it still had redirects()/rewrites(), which Next.js refuses to
build alongside output: "export".

- next.config.ts: output: "export", drop redirects()/rewrites().
- public/_redirects: the retired-route redirects and the PostHog proxy,
  now as Cloudflare's own static-Worker redirect rules instead of
  server-side Next.js config.
- public/_headers: the same 4 security headers launch-alpha sets.
- wrangler.jsonc: same shape as launch-alpha's, assets directory ./out.
- instrumentation-client.ts: api_host reads NEXT_PUBLIC_POSTHOG_HOST
  directly (falls back to the real ingestion host, not the now-removed
  proxy path) instead of the dead "/api/metrics" rewrite target.

Verified locally: bun run build produces out/ with _redirects and
_headers copied through, no errors.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vedantlavale
vedantlavale merged commit 02746e9 into main Sep 27, 2026
2 of 4 checks passed

This branch was successfully deployed

1 active deployment
Preview — 056acdbc Deployed Sep 27, 2026 by vercel[bot]
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