Skip to content

Commit c1fd856

Browse files
barckcodeclaude
andcommitted
Rebrand to NaN community — v1 landing with waitlist
Full rebranding from the v0 subscription scaffold to v1: a closed community landing page with passive waitlist, no payments yet. v0 removal: - Delete magic-link auth, session middleware, login/verify flows - Delete Stripe checkout + webhooks, Discord OAuth2 link, email/Resend - Delete D1 + Drizzle schema and migrations - Delete portal pages (benefits, cron, members count) - Trim package.json deps and .env.example to the waitlist-only surface v1 landing: - Hero with live "X of 25 seats remaining" counter read from KV - About, Server (hardware/stack/garantías), ModelVoting, Founder, Pricing (single 70€/mes tier), FAQ accordion, CTA + WaitlistForm - Dark minimalist design, JetBrains Mono + Inter, violet accents, motion-reduce support, focus-visible rings, WCAG-correct ARIA Waitlist backend: - Cloudflare KV namespace (WAITLIST) bound in wrangler.jsonc - /api/waitlist POST with JSON-only content type check - Strict input validation: ReDoS-safe email regex, 254 char email cap, 100 char handle cap, HTML-dangerous char blacklist for handles - Honeypot `_hp` field trap (returns 200 without persisting) - Per-IP rate limit (60s TTL) via KV, using trustable cf-connecting-ip only (no x-forwarded-for fallback to prevent bypass) - Idempotent dedupe on main + overflow buckets - MAX_SEATS=25 with overflow status for late signups - Opaque server errors, no PII in logs Islands: - WaitlistForm (client:load) — Preact form with client-side validation, honeypot short-circuit, typed error codes, success/overflow states - FaqAccordion (client:visible) — one-at-a-time accordion with correct aria-expanded/aria-controls semantics Rendering: - index.astro in SSR mode to read KV counter server-side via the `cloudflare:workers` env import (Astro.locals.runtime.env was removed in Astro v6 and throws on access) - All other sections static, zero unnecessary JS Testing + tooling: - 69 Vitest tests across src/tests/lib, src/tests/api, and the landing helpers (kept out of src/pages to avoid route bundling) - Build script hardened to `astro check && astro build` so type errors fail CI (caught a latent Hero counter bug during rollout) - Base layout ships CSP via meta (pre-prod follow-up: move to headers) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cfccbfa commit c1fd856

62 files changed

Lines changed: 4289 additions & 7322 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,2 @@
1-
# Stripe
2-
STRIPE_SECRET_KEY=sk_test_...
3-
STRIPE_WEBHOOK_SECRET=whsec_...
4-
STRIPE_PRICE_EARLY=price_...
5-
STRIPE_PRICE_STANDARD=price_...
6-
7-
# Discord
8-
DISCORD_CLIENT_ID=
9-
DISCORD_CLIENT_SECRET=
10-
DISCORD_BOT_TOKEN=
11-
DISCORD_GUILD_ID=
12-
DISCORD_MEMBER_ROLE_ID=
13-
14-
# Email
15-
RESEND_API_KEY=re_...
16-
17-
# Auth
18-
SESSION_SECRET=
19-
20-
# Cron
21-
CRON_SECRET=
22-
231
# App
242
PUBLIC_URL=http://localhost:4321

astro.config.mjs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ export default defineConfig({
1111
adapter: cloudflare(),
1212
integrations: [preact()],
1313

14+
// We do not use Astro sessions in v1 (no auth). The Cloudflare adapter
15+
// otherwise auto-enables a KV-backed session driver and tries to inject a
16+
// "SESSION" KV binding into the generated wrangler config. Pointing the
17+
// session driver at `unstorage/drivers/null` disables it cleanly.
18+
session: {
19+
driver: {
20+
entrypoint: 'unstorage/drivers/null',
21+
},
22+
},
23+
1424
vite: {
1525
plugins: [tailwindcss()]
1626
}

db/migrations/0000_init.sql

Lines changed: 0 additions & 42 deletions
This file was deleted.

db/migrations/meta/0000_snapshot.json

Lines changed: 0 additions & 291 deletions
This file was deleted.

db/migrations/meta/_journal.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)