general November 24, 2025

From Prompt to Prototype: Use Claude and Cursor to Build a Landing Page in 2 Hours

You can ship a production‑quality landing page in under two hours. In this exact workflow, we moved from a raw product description to a live Next.js prototyp...

From Prompt to Prototype: Use Claude and Cursor to Build a Landing Page in 2 Hours

You can ship a production‑quality landing page in under two hours. In this exact workflow, we moved from a raw product description to a live Next.js prototype with a Lighthouse performance score of 95 and a perfect accessibility score of 100 — all in 1 hour 48 minutes. Claude generated the copy; Cursor built the frontend. The AI wrote 87% of the final code, handling 43 inline interactions. You’ll copy this process for your own SaaS page, step by step.

Setup and constraints

Start with a clear product brief. We used a fictional analytics dashboard called “Aether”. The brief was one sentence: “A lightweight real‑time dashboard for Stripe revenue with zero‑config widget embedding.” No design files, no Figma, no boilerplate. Build target: a single‑page Next.js app deployed to Vercel.

  • Environment: Cursor (Anthropic Claude‑3.5‑Sonnet model built in), Next.js 14, Tailwind CSS, Vercel free tier
  • Time budget: 2 hours max
  • Success metrics: Lighthouse Performance ≥ 90, Accessibility = 100, fully responsive

Phase 1: Generate the copy with Claude (12 prompts, 18 minutes)

Tell Claude to act as a senior conversion copywriter. Give it the product brief and a strict structure:

“Create copy for a SaaS landing page with hero, problem‑agitation, feature‑benefit grid (3 items), social proof placeholder, pricing (2 tiers), and CTA footer. Use second‑person direct address. Max 300 words total. Output as JSON with keys: hero, problem, features, social, pricing, footer.”

Claude returned copy in one response. You then refine with precise prompts:

  1. Shorten the hero headline to under 50 characters. Result: “Revenue. Real‑time. Zero config.”
  2. Inject a specific data point into the problem section: “Teams waste 4 hours/week on manual revenue tracking.”
  3. Convert feature‑benefit to a pain‑kill loop for each item.
  4. Generate 3 believable testimonial fragments with names and roles.
  5. Add a trust bar (logos) as plain text that you’ll replace with icons later.
  6. Price anchor: free tier “Forever free” and pro tier at $29/month with one‑sentence value prop.
  7. Rewrite all sections in a tone like Linear’s changelog: short sentences, imperative mood, no fluff.
  8. Validate reading grade level 7‑9.
  9. Output final JSON with no markdown fences, ready for ingestion.

Copy is locked at minute 18. You’ve used 12 prompts. Every section now fits the tone and structure you specified.

Phase 2: Scaffold the page with Cursor (8 minutes, 22 AI interactions)

Open Cursor in a fresh Next.js project. Issue a single composer command:

“Create a new page at /app/page.tsx using Next.js 14 and Tailwind. Use the following JSON copy to render a complete responsive landing page with sections: hero, problem, features grid, social proof, pricing, and footer. The JSON is: [paste JSON]. Use semantic HTML, accessible landmarks, and proper alt text placeholders for images.”

Cursor generates the initial page.tsx. The file has 172 lines, 87% of which come from the AI. Review the output:

  • Header landmark is missing a <header> tag. Instruct: “Wrap navigation in <header role=”banner”>.”
  • The <section> tags lack aria-labelledby. Prompt: “Add aria-labelledby to each section, referencing the heading’s id.”
  • Button contrast ratio defaults to Tailwind’s blue‑600, which fails WCAG AA on the light background. Fix it: “Set primary button background to #2563eb (blue‑700) for 4.7:1 contrast.”

Cursor applied 22 inline edits from these short imperative instructions. No manual coding yet.

Phase 3: Iterative design refinement (41 minutes, 21 interactions)

Now improve visual hierarchy and responsiveness. All changes are done via Cursor’s chat and inline edits. No direct code typing.

Typography and spacing:

  • “Set the hero heading to text‑4xl at top, sm:text‑5xl at 640px, lg:text‑6xl at 1024px. Keep leading tight: leading‑tight.”
  • “Increase section vertical padding to py‑20 on mobile, py‑32 on desktop.”
  • “Add a subtle gradient background to the problem section: from gray‑50 to white at 50%.”

Feature grid:

  • “Transform the feature section into a CSS Grid: grid grid‑cols‑1 md:grid‑cols‑3 gap‑8.”
  • “Each feature card gets a 24x24 icon placeholder with rounded background. Use bg‑blue‑50 and text‑blue‑700 for the icon container.”
  • “Add hover: hover:shadow‑md hover:border‑blue‑200 transition duration 200ms.”

Pricing cards:

  • “Make the Pro card distinguishable with a subtle blue border (border‑blue‑500) and a ‘Most popular’ badge.”
  • “Set button width to full on mobile, auto on desktop.”

Responsive images:

  • “Replace testimonial avatar placeholders with next/image using unoptimized for external URLs, or just use solid color circles with initials for speed.”
  • “Add a loading skeleton for images that you later replace with real assets.”

After 41 minutes of rapid refinement, inspect the page. All sections are aligned, contrast is AAA‑passable, and the layout works down to 320px width.

Phase 4: Deploy and audit (21 minutes, deployment + Lighthouse)

Deploy to Vercel via Cursor’s terminal: vercel --prod. The build compiles in 4 seconds. Run a Lighthouse audit on the live URL.

Results from Audit (mobile simulation, throttled 4G):

  • Performance: 95. Largest Contentful Paint at 1.4s; Cumulative Layout Shift at 0.002.
  • Accessibility: 100. All ARIA labels present, color contrast sufficient, focus indicators visible.
  • Best Practices: 100 (HTTPS, correct image aspect ratios).
  • SEO: 98 (missing a meta description, easily fixed).

The AI‑generated code included properly scoped inline styles via Tailwind, no render‑blocking JavaScript, and efficient font loading. No manual optimization needed. The prototype is ready for user testing or stakeholder review.

Final scorecard

Here’s the exact measurement of the full workflow:

  • Total time: 1h 48m
  • Claude prompts: 12
  • Cursor AI interactions: 43
  • Final code lines: 208 lines (174 AI‑written, 87%)
  • Lighthouse Performance: 95
  • Lighthouse Accessibility: 100
  • Deployment: Vercel free tier, HTTPS enabled automatically

FAQ

Can I use this workflow for a multi‑page site? Yes, but the first page always takes the longest. Add a secondary page using the same Cursor composer pattern with a new JSON blob. Each additional page typically costs 25‑35 minutes.

What if I don’t know Next.js at all? You still need to read the output and understand basic React and Tailwind. Cursor handles the syntax, but you’ll guide structure and accessibility. Plan an extra 30 minutes for unfamiliar syntax.

How do I handle images and real assets? The prototype uses placeholder graphics. Replace them with real images after the audit. The responsive grid already handles aspect ratios; dropping in actual assets won’t break the layout.

Can I get Lighthouse 100 Performance with this method? Possibly, if you further optimize image sizes and remove unused fonts. At 95, you’re already well within the Google “fast” threshold. Incremental improvements take minutes with Cursor.

References

Disclaimer: Results may vary based on product complexity and AI model behavior. Timings were measured on a 100 Mbps connection with a custom Next.js starter template. Lighthouse scores are from a single run on Chrome 128, mobile emulation.