PylonworksTell us what's eating your time
All posts

How I Validate a Web Project Idea Before Writing Code

Jordan Ellis6 min read

The waitlist-and-landing-page method I use to test demand for about $60 before committing three months to a build, plus which signals matter and which lie.

I validate a web project by spending roughly $40 to $80 on a one page waitlist before I write any code. If that page can't turn paid traffic into signups at 15% or better, I don't build the thing. The page costs a weekend. The wrong build costs three months.

That ratio is the whole argument. I have killed four ideas in the last year on landing pages that looked fine and converted at 4%. Each of those would have been a quarter of engineering time chasing demand that wasn't there. So before I open an editor, I ship a page whose only job is to be wrong cheaply.

Why validate a web project idea before writing code?

Because building is the most expensive way to learn that nobody wants your idea. A small SaaS or tool takes me 8 to 12 weeks of real work to get to a usable v1. At my own loaded rate that is the single largest bet I make all year, and most ideas don't survive contact with a real audience.

The landing page flips the order. I find out whether strangers will give me an email address for the promise of the product before I spend the 12 weeks. Paul Graham's Do Things That Don't Scale makes the same point from the other direction: early on you manufacture the signal by hand. A waitlist page is the cheapest hand-built signal I know.

The page is designed to fail. If it converts, great, I build. If it flops at 4%, I just saved myself 300 hours for the price of a large pizza in ad spend.

This is the core loop behind everything at Pylonworks: test the idea on a page, read the numbers, build only what earns it.

What does a validation landing page actually need?

A validation page is a single static page that makes one promise and collects one email. Nothing else. Every field you add past the email costs you conversions. Email only forms convert around 18% in my data; the moment I add name and company it drops by half.

The structure I ship every time:

Keep the page under 1 second to load. Nielsen Norman Group has decades of research on how fast attention drops, and ad traffic is brutal: 83% of it is mobile and most of it bounces in under 5 seconds. Static HTML, no heavy framework, one job.

The capture itself is boring on purpose. Here is the entire client side:

async function joinWaitlist(email) {
  const res = await fetch('/api/waitlist', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ email, idea: 'invoice-reminder', ts: Date.now() })
  });
  if (!res.ok) throw new Error('signup failed');
  // fire the conversion event so cost-per-signup is computable later
  window.gtag?.('event', 'waitlist_signup', { idea: 'invoice-reminder' });
  return res.json();
}

The idea tag is the part people skip. Without it you can't compare two ideas in the same dashboard, and comparison is the entire point.

How much does it cost to test one idea?

Under $80 in almost every case. The spend goes to a small ad campaign that buys me enough clicks to read a conversion rate with some confidence. I aim for 300 to 500 clicks per idea, which on a $1.50 to $3.00 mobile CPC lands in the range below.

Item Cost Notes
Domain or subdomain $0 to $12 Subdomain is free if you own a root
Hosting (static) $0 Vercel/Cloudflare free tier handles it
Ad spend $40 to $80 300-500 clicks at $1.50-$3.00 CPC
Build time ~1 weekend Reuse a template after the first one
Total per idea ~$45 to $90 vs ~$15k-$30k of build time

The first page is the expensive one because you build the template. After that each new idea is a headline swap, a video, and a fresh idea tag. I can stand up a new test in an afternoon now.

For honesty's sake: generating this post end to end, with the model runs and the image, cost about $0.90. Cheaper than the pizza. The build it would talk me out of is not.

Which signals mean something vs vanity metrics?

This is where most people fool themselves. Page views feel like progress. They are not. A signal counts only if it costs the visitor something or predicts revenue.

Real signal Vanity metric
Conversion rate on paid traffic (15%+) Total page views
Cost per signup (under $5) Social shares / likes
Signup velocity over 7 days Time on page
Reply rate to the first follow-up email Bounce rate in isolation
Survey replies offering to pay "This is cool" comments

The two I trust most: cost per signup and conversion rate on cold paid traffic. Cold traffic matters because your friends and your Twitter followers are not your market. They convert high and buy nothing. A stranger who clicked an ad and gave you an email is the closest cheap proxy for a stranger who will later give you a card.

Signup velocity is the tiebreaker. Forty signups in the first 48 hours that then flatlines is a worse sign than 25 that keep trickling in for two weeks. Sustained interest beats a spike every time.

What is my pass, fail, and maybe bar?

A pass is 15% or higher conversion on paid traffic at under $5 cost per signup. That gets a build slot. A fail is anything under 8%, no exceptions, no "but the idea is good." The middle is where judgment lives.

The maybe bucket is where I rewrite the promise. Half the time a 9% page becomes a 17% page on the second headline, which tells me the demand was real and my pitch was bad. The other half it stays at 9% and I move on. Either way I learned it for under $80.


FAQ

How many signups do I need before building?

It is the rate, not the raw count, that decides. A validation landing page is a page whose only metric is conversion on cold paid traffic. I want 15%+ at under $5 per signup across at least 300 clicks. Forty signups from 250 clicks (16%) beats 200 signups from 4,000 clicks (5%).

Isn't collecting emails for a product that doesn't exist dishonest?

No, as long as the page says "early access" or "waitlist" and never claims the product ships today. You are testing demand and being clear about it. The line you do not cross is implying a working product or taking payment for vaporware.

What if the idea is good but the page just converts badly?

That is the "maybe" bucket, 8% to 15%. Rewrite the headline and re-run before you trust the number, because a weak pitch and weak demand look identical from the dashboard. If two clean headline variants both stay under 8%, treat it as a demand answer and stop.

Start with one idea this week. Build the page, tag the signup event with an idea field, put $50 of cold traffic behind it, and write your pass/fail numbers down before the traffic starts so you can't move the goalposts when the result comes in.


Tired of re-keying the same data between tools? Pylonworks builds custom automation and internal tools for businesses without a developer, on a fixed quote you approve up front. Tell us what's eating your time

Back to all posts