docs: replace waitlist form with Loops.so integration#447
Merged
Conversation
- Switch backend from FormSubmit.co to Loops.so newsletter API - Three-view state system (form/success/error) with retry support - Progressive enhancement: native form POST fallback if JS unavailable - Client-side rate limiting (60s cooldown) with localStorage - Proper error handling: API errors, network errors, non-JSON responses - Accessibility: aria-live on success, role=alert on error, focus management - Safari private browsing safety: localStorage wrapped in try/catch - Email preserved on error (not cleared until success) - All styling uses existing CSS variables (no Inter font, no inline styles) - Mobile responsive: retry button included in full-width rule
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.
Summary
Replace the FormSubmit.co waitlist form on the website with a Loops.so newsletter form integration.
Changes
Backend
Loops.so (https://app.loops.so/api/newsletter-form/...)application/x-www-form-urlencoded(Loops requirement)action+methodon<form>so native POST works without JSUI/UX
.cta-form-view/.showtogglefinallyRobustness
res.json()failure (non-JSON response like 502) caught cleanly — falls to network errorlocalStoragewrapped in try/catch for Safari private browsing compatibilityAccessibility
aria-live="polite"on success view for screen reader announcementsrole="alert"on error view for immediate screen reader notificationStyling
--g0,--c0,--c2, etc.).cta-form-view,.cta-error,.cta-back,.cta-submit:disabled.cta-backadded to full-width rule