https://www.weespy.now/

Page structure & technical metrics

Words

453

Action candidates

19

Images

22

HTML

658 B

Copy

Title chars
59
Meta chars
106
H1
1
H2
9

Action

Primary

Join waitlist

Forms
2/ 2 fields
On-site links
15
Off-site links
0

Security & metadata

HTTPS
yes
HSTS
yes
CSP
no
nosniff
no
viewport
yes
Icon
yes
JSON-LD
no
Analytics
no

Page

Vite / Bolt / React / Tailwind

Scripts
1 ext / 0 inline
Alt
22 missing
Lang
en
Third-party hosts
no

Lighthouse

Simulated mobile · Performance

—

No measurement available

View details

No Lighthouse measurement available; no scores assigned. Attempted 2026-09-10T13:38:02.885Z · NO_FCP

01 / WHAT WORKS

What makes it work

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.

Concrete channel and metrics positioning

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

Where to go next

  1. 01

    Link header CTA directly to the waitlist input

    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.

  2. 02

    Add onboarding expectations beneath the email field

    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

A design system you can reuse

Colors

Background

#010103

Text

#ffffff

Typography

Display font
Manrope Variable
Body font
Manrope Variable
Heading / body
52.56px / 16px

Spacing & shape

Section gap
144px
Component inset
—
Card radius
—
Button radius
9px

CLEARER WORDS

Copy Revision Diff

Now

Your competitors' distribution has no more secrets.

SUGGESTED COPY

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

The detail behind the report

Explore each observation, recommendation and captured record.

Conversion8 observations

A main button goes nowhere

Blocker

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 -> #

Share card is incomplete

High

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 form has no action

High

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>

No human or proof on the page

Medium

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

No analytics on the live page

Medium

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

No way to reach a human

Medium

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

Images ship without alt text

Medium

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

Header CTA button targets empty anchor

High

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 -> #
Launch4 observations

Crawlers see an empty shell

High

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

No Content-Security-Policy

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

No X-Content-Type-Options

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

No Referrer-Policy

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

Give your AI a clear next step

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.

Preview full instructions
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.