Repository navigation
Build the weouthere.app website from the approved prototype - #5
Merged
Merged
Conversation
Adds apps/site: the Outhere marketing and waitlist site rebuilt from the website prototype as a Vite app with React and Radix UI. Every page is prerendered to static HTML (home, crews, Black, privacy, a page for each of the 32 boroughs and a 404), with the prototype's stylesheet, photography, hero reel and interactions carried over. Sign-ups, run club claims and Black invite requests go to Outhere's Supabase project through four functions in db/website.sql, called with the public anon key. Without Supabase settings the site runs on labelled example figures and simulates the forms, as the prototype did. Includes unit tests, SQL tests for the database functions, a Vercel config with clean URLs, invite link rewrites and security headers, and a CI workflow for the site. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
Owner
Author
|
Update: GitHub Actions is starting runners again. On 76be83a, "Typecheck, test, lint and build" and the member app and HQ checks all pass, and so does the Vercel preview.
Generated by Claude Code |
The waitlist, club claims and Black requests now live in supabase/migrations/20261015100900_website.sql (PR #4), so drop apps/site/db and the website's own database CI job, and point the docs there. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
…o claude/website-build-dhxeck
- apps/site becomes apps/web (@outhere/web), installed with pnpm and checked by turbo like the other web packages; React 19 and the workspace's TypeScript and Vitest versions. - Club links use slugify from @outhere/core, and a test checks every top-level path the website serves is in RESERVED_SLUGS. - vercel.json passes any path the site has no file for to the member app at app.weouthere.app (club pages and its not-found page), keeps the strict CSP and frame rules on the site's own pages only, builds with pnpm and skips builds when the site has not changed. - The Website workflow mirrors the member app's. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
EmotiveImpact
changed the base branch from
main
to
claude/web-app-build-nig9rl
October 15, 2026 12:51
The outhere-site Vercel project now builds from the repo root, so branches without apps/web skip quietly through the ignored build step instead of failing on a missing root directory. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
Anyone in the UK can join on day one: the waitlist, club claims and Black requests now ask for a launch city (plus the borough in London) or a town and the region it plays for. The London borough map on the home page becomes a UK launch map of the ten cities with every region's list, and the copy, Founding 500, Black, borough pages, footer, FAQ, feature table, meta and privacy notice no longer read as London-only. Saved places from the old London-only waitlist still load. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
EmotiveImpact
pushed a commit
that referenced
this pull request
Oct 15, 2026
… or a town From the website thread (PR #5). Waitlist, club_claims and black_requests gain city_id, town and region; borough_id is optional outside London. join_waitlist, claim_club and request_black take p_city, p_borough, p_town and p_region, and website_stats returns cities and regions. Club links move to part 15 so they run after this, and an approved claim now takes the city it named, or a city in its region, rather than London. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GuNoar5FSdqFXBKo7d7CmV
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA
EmotiveImpact
changed the base branch from
claude/web-app-build-nig9rl
to
main
October 16, 2026 10:40
EmotiveImpact
marked this pull request as ready for review
October 16, 2026 10:40
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Edem · project thread
Before: the Outhere website only existed as a clickable prototype artifact with a pretend waitlist.
After:
apps/webis the real site for weouthere.app. It looks and behaves like the approved prototype, page for page, and saves sign-ups, run club claims and Black invite requests to Outhere's Supabase project. Stacked on #6 (the monorepo setup), so this diff is the website only.What's in it
/boroughs/<id>, ids matchingsupabase/seed.sql)weouthere.app/i/CODE) credit the friend who shared them.How
@outhere/webworkspace package, checked byturbolike the other web packages. It uses@outhere/corefor the club slug rule.weouthere.app/peckhampacers, or anything unknown) is rewritten to the member app atapp.weouthere.app. A test checks that every top-level path the site serves is inRESERVED_SLUGS, so no club can take one. The strict CSP and frame rules apply only to the site's own pages, so proxied app pages keep their own headers.supabase/migrations/20261015100900_website.sql(Outhere mobile app, every prototype screen, on Supabase #4). The browser reaches them only through four functions using the anon key.VITE_SUPABASE_URLandVITE_SUPABASE_ANON_KEYaren't set, the site runs on the prototype's example figures, labelled as examples, with simulated forms.Checked
pnpm turbo run typecheck test lint build --filter "@outhere/web...": all green.To go live: apply the Supabase migrations, set the two Supabase variables and
VITE_SITE_URL, point the Vercel project atapps/web, and add the domain.🤖 Generated with Claude Code
https://claude.ai/code/session_01A3KTjkLAXTgUTh3vXAChDA