Atmospheric high-contrast dark aesthetic
The combination of the pure #010103 background with deep crimson organic wave accents creates a focused, premium developer-tool tone without relying on generic purple glows.
Words
453
Action candidates
19
Images
22
HTML
658 B
Primary
Join waitlist
Vite / Bolt / React / Tailwind
Simulated mobile · Performance
No measurement available
No Lighthouse measurement available; no scores assigned. Attempted 2026-09-10T13:38:02.885Z · NO_FCP
01 / WHAT WORKS
The combination of the pure #010103 background with deep crimson organic wave accents creates a focused, premium developer-tool tone without relying on generic purple glows.
Directly listing active channels like Reddit, Meta Ads, TikTok, and SEO alongside realistic data feeds immediately communicates the product utility to growth engineers.
02 / NEXT STEPS
The header Join waitlist element currently resolves to an empty hash target (#), resetting page scroll instead of guiding ready-to-convert visitors into the submission field.
Add an explicit id='waitlist-form' to the hero form container. Set the header button href to '#waitlist-form', implement smooth scrolling, and trigger an input focus state on the email field. Verify by clicking the header button at both 1440px and 390px viewports.
Cold visitors are asked to provide their business email without knowing when access begins, whether a credit card is needed, or how early invites are distributed.
Place a 13px muted line under the hero form stating beta batch frequency and privacy terms (for example: 'Batches invited weekly. No credit card required.'). Check that vertical spacing remains balanced across 1440px and 390px viewports.
03 / DESIGN LANGUAGE
Background
#010103Text
#ffffffCLEARER WORDS
Your competitors' distribution has no more secrets.
See every distribution channel your SaaS competitors use.
The original line leans on a slightly passive idiom; switching to an active action verb reinforces the competitive analysis software capability immediately.04 / EVIDENCE
Explore each observation, recommendation and captured record.
A Get started that points at # is a demo leftover. The visitor who meant to convert hits a wall.
Point the primary button at a real route, a working form, or a mailto that you read.
Join waitlist -> #
A blank or generic unfurl on X, Slack, or WeChat wastes the click you already earned. This is distribution, not decoration.
Set og:title, og:description, and a 1200x630 image that matches the live headline.
og:title=no og:image=no
A waitlist or contact form with no action is a conversion dead end. It looks ready and does nothing.
Wire the form to an endpoint, Formspark, Basin, or a server action you actually handle.
<form>
A stranger landing on an AI-looking site with no maker, no customer, and no contact will not give you an email.
Add a real name, a real face, a real contact method, or one real customer line.
no about, no first-person, no quote
If you cannot see who bounced, you cannot tell if the next fix worked. Shipping without a counter is flying blind.
Put Plausible, PostHog, or GA4 on the public pages. One snippet is enough.
no gtag / plausible / posthog / umami
A stranger who wants to buy, ask, or complain has nowhere to go. That is a conversion leak and a trust leak.
Put a mailto, a form that works, or a real social handle in the footer. One is enough.
no mailto / telegram / x / github / email
Missing alt is a screen-reader dead end and a ranking leak. Decorative images can be alt="". Content images cannot be blank.
Write a short alt for product and photo images. Use empty alt only on pure decoration.
22 images without alt
The top navigation Join waitlist button links to '#', causing page jumps on mobile and desktop without initiating form focus or modal display.
Update the anchor href to target the waitlist form section id or bind an onClick handler that focuses the email input element directly.
Join waitlist -> #
The first HTML has almost no text. Google is slow on this. GPTBot and ClaudeBot often see nothing, so the site cannot be found or cited.
Render the headline, promise, and primary CTA in the first HTML. SSR, SSG, or prerender the public pages.
raw text 59 chars
A CSP is the standard way to limit script sources. Vibe-coded pages often load anything, including injected scripts.
Start with a report-only CSP, then default-src 'self' and an explicit script-src.
content-security-policy missing
Without nosniff, browsers may interpret a file as a different type than you sent. It is a one-line header.
Set X-Content-Type-Options: nosniff.
x-content-type-options missing
The default referrer can leak internal paths and query strings to third parties.
Set Referrer-Policy: strict-origin-when-cross-origin.
referrer-policy missing
05 / MAKE IT HAPPEN
Use the improvement prompt for this page, or the design prompt to borrow its visual language. “Recreate” includes references and implementation steps. Paste either into your coding assistant.
Fix the header CTA navigation in the landing page codebase. Locate the header component containing 'Join waitlist' and replace the href='#' with href='#waitlist-form'. Add id='waitlist-form' to the hero email input form wrapper. Implement an event listener on the header CTA that executes element.scrollIntoView({ behavior: 'smooth' }) and immediately focuses the email input element. Verify on both desktop (1440x900) and mobile (390x844) viewports that clicking the button scrolls cleanly and focuses the input without resetting page scroll.