You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Waitlist form: USA/LATAM signups show an error and the "position X" message is wrong #140
Two bugs on the main waitlist form on nan.builders:
USA and LATAM signups show an error. Picking USA or LATAM as the region and submitting shows an error instead of the "Noted. We are not open in your region yet." confirmation. EU signups go through.
The "position X" message is wrong. After an EU signup the form shows position 019 / 19. That is the member's position over… the same number, so it says nothing about where they are in the queue.
What the code does today
Position. In registerViaBackend (src/lib/waitlist.ts), total is set to the same value as position:
position: data.position,total: data.position,
waitlistSuccessText (src/lib/waitlistClient.ts) then renders position <position> / <total>, so the two numbers are always equal.
When the backend answers 409 (an email that is already on the list), registerViaBackend returns a synthetic success with position: 0, and no position is shown at all.
The same happens for a returning former member: the row isn't created until they confirm their email.
USA / LATAM. USA and LATAM are stored as interest signals with position 0, and status: 'interest' is derived from the region (src/lib/waitlist.ts). The reported error still needs reproducing to pin down whether it comes from:
the form's region selector (src/scripts/waitlist.ts, the isWaitlistRegion check that shows "Pick a region.");
the /api/waitlist route;
or the backend answer for non-EU regions.
Expected
USA and LATAM signups show the "interest" confirmation, with no error.
The EU message either shows a meaningful position (a real total, or no / total at all), or drops the position when there isn't a real one (409, returning member).
To do
Reproduce the USA and LATAM error locally (npm run dev) and find the failing step.
Fix the position/total message.
Add tests for both regions and for the 409 and returning-member answers.
It isn't a technical error. USA and LATAM are open now, but the site still behaves as if only Europe were.
A USA signup goes through: the member is stored as a normal waitlist signup (tier inference, region USA), the same as EU.
The form still shows the text for a region that isn't open yet, "Noted. We are not open in your region yet, but we will write as soon as we are.", because registerViaBackend (src/lib/waitlist.ts) derives status: region === 'EU' ? 'registered' : 'interest'.
The position message is wrong for every region:
total is set to the same value as position, so EU shows position 019 / 19;
USA and LATAM currently get position 0 from the backend, so they never show a position.
Plan
This repo: treat all three regions as open. Success always shows the "You're on the waitlist" message, and the interest status and its copy go away. The position is shown only when the backend sends one (> 0), and without the fake total, e.g. position #019.
Backend (separate change): number the USA and LATAM queues per region, as EU already is, so those members also get a position.
Product decided to drop the position from the waitlist message altogether. The number was a cumulative arrival counter, not a place in the queue, so showing it misled people.
Activity
crstian19 commentedon Oct 2, 2026
Update: root cause found
It isn't a technical error. USA and LATAM are open now, but the site still behaves as if only Europe were.
registerViaBackend(src/lib/waitlist.ts) derivesstatus: region === 'EU' ? 'registered' : 'interest'.totalis set to the same value asposition, so EU showsposition 019 / 19;Plan
intereststatus and its copy go away. The position is shown only when the backend sends one (> 0), and without the fake total, e.g.position #019.crstian19 commentedon Oct 2, 2026
Final decision
Product decided to drop the position from the waitlist message altogether. The number was a cumulative arrival counter, not a place in the queue, so showing it misled people.
fix(waitlist): treat USA and LATAM as open regions and stop showing t…
crstian19 commentedon Oct 2, 2026
Fixed in #141, merged and deployed to nan.builders (
9ae34f7)./api/waitlistno longer returns a position: the response is{ "ok": true, "status": "registered", "region": … }.Checked on production after the deploy, without creating any signup:
/api/waitlistreturns{"ok":true,"status":"registered","region":"USA"}for a USA request.