Skip to content

Tech Stack and Tooling ​

The right tech stack for your landing page depends on your team's skills, your iteration speed requirements, and how much control you need over performance and design.

Why This Matters ​

  • πŸ’» Dev: Your stack choice determines how fast you can build, how easy it is to maintain, and how much performance headroom you have. Pick wrong and you will spend weeks fighting your tools instead of shipping.
  • πŸ“‹ PM: The stack directly affects your timeline, your ability to run experiments, and how dependent you are on engineering for every change. Understanding the tradeoffs helps you plan realistically.
  • 🎨 Designer: Some stacks give you pixel-perfect control; others constrain you to templates. Knowing the boundaries of each approach means you design within what is buildable β€” or advocate for the right tool.

The Concept (Simple) ​

Think of building a landing page like building a place to live.

Option 1: Hire an architect and build custom. You get exactly what you want β€” the perfect layout, the right materials, every detail considered. But it takes months, costs more, and you need skilled builders. This is coding from scratch with React, Vue, or Svelte.

Option 2: Use a prefab kit. You pick a well-designed kit (a static site generator like Astro or Next.js), customize the finishes, and move in within weeks. You still need someone who knows how to assemble it, but the heavy structural work is done.

Option 3: Rent a furnished apartment. You move in tomorrow. The layout is not exactly what you would choose, but it works. This is Webflow, Unbounce, or Instapage β€” fast to launch, limited in how much you can customize, but you do not need a builder on staff.

Each is right for different situations. The mistake is not choosing one over another β€” it is choosing without understanding the tradeoffs.


How It Works (Detailed) ​

The Three Categories ​

╔══════════════════════════════════════════════════════════════════╗
β•‘                    LANDING PAGE TECH STACKS                     β•‘
╠══════════════════════╦═══════════════════╦═══════════════════════╣
β•‘   STATIC SITE GENS   β•‘   NO-CODE / LOW   β•‘    CUSTOM BUILD      β•‘
β•‘                      β•‘                   β•‘                       β•‘
β•‘  Astro               β•‘  Webflow          β•‘  React + Next.js      β•‘
β•‘  Next.js (SSG)       β•‘  Unbounce         β•‘  Vue + Nuxt           β•‘
β•‘  Hugo                β•‘  Instapage        β•‘  Svelte + SvelteKit   β•‘
β•‘  Eleventy            β•‘  Carrd            β•‘  Vanilla HTML/CSS/JS  β•‘
β•‘                      β•‘  Framer           β•‘                       β•‘
╠══════════════════════╬═══════════════════╬═══════════════════════╣
β•‘  Dev skills needed   β•‘  No dev needed    β•‘  Strong dev needed    β•‘
β•‘  Fast performance    β•‘  Fast to launch   β•‘  Maximum control      β•‘
β•‘  Good flexibility    β•‘  Limited custom.  β•‘  Highest effort       β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•©β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•©β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Decision Tree: Choosing Your Stack ​

                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Do you have a developer β”‚
                    β”‚  on the team?            β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                   β–Ό                   β–Ό
                 [YES]               [NO]
                   β”‚                   β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚ Need pixel-     β”‚    β”‚ Use no-code:        β”‚
          β”‚ perfect control β”‚    β”‚ Webflow (complex)   β”‚
          β”‚ or custom logic?β”‚    β”‚ Carrd (simple)      β”‚
          β””β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”˜    β”‚ Unbounce (A/B test) β”‚
              β”‚         β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           [YES]      [NO]
              β”‚         β”‚
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”  β”Œβ”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚ Custom     β”‚  β”‚ Static site gen:     β”‚
     β”‚ Build:     β”‚  β”‚ Astro (content-heavy)β”‚
     β”‚ React/Vue/ β”‚  β”‚ Next.js (dynamic)    β”‚
     β”‚ Svelte     β”‚  β”‚ Hugo (speed)         β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Comparison Table ​

CriteriaStatic Site GenNo-Code PlatformCustom Build
Speed to launchDays to weeksHours to daysWeeks to months
CustomizationHighMediumUnlimited
PerformanceExcellentGoodDepends on team
Cost (monthly)$0–20 (hosting)$15–200 (platform)$0–20 (hosting)
Dev requirementModerateNoneStrong
A/B testingRequires setupBuilt-in (some)Requires setup
SEO controlFullPartialFull
Maintenance burdenLowLowMedium to high

Integration Patterns ​

Every landing page needs to connect to external services. Here is how the pieces fit together:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     YOUR LANDING PAGE                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  FORMS   β”‚ANALYTICS β”‚     CRM      β”‚      PAYMENTS          β”‚
β”‚          β”‚          β”‚              β”‚                        β”‚
β”‚ Typeform β”‚ GA4      β”‚ HubSpot     β”‚ Stripe Checkout        β”‚
β”‚ Native   β”‚ Segment  β”‚ Salesforce  β”‚ Paddle                 β”‚
β”‚ Tally    β”‚ Plausibleβ”‚ Pipedrive   β”‚ LemonSqueezy           β”‚
β”‚ Formsparkβ”‚ PostHog  β”‚ Intercom    β”‚                        β”‚
β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”‚          β”‚            β”‚                  β”‚
     β–Ό          β–Ό            β–Ό                  β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              AUTOMATION / GLUE LAYER                        β”‚
β”‚         Zapier  Β·  Make  Β·  n8n  Β·  Custom API              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Forms: If you use a static site generator, you need an external form handler. Typeform and Tally provide embeddable forms. Formspark and Formspree accept native HTML form submissions. No-code platforms typically include form handling.

Analytics: Start with Google Analytics 4 for baseline data. Add Segment if you need to pipe events to multiple destinations. Consider privacy-focused alternatives like Plausible or Fathom for GDPR simplicity.

CRM Integration: HubSpot offers a generous free tier and strong form integration. If your sales team already uses Salesforce, connect to it β€” do not create a second source of truth.

Payments: Stripe Checkout is the standard for SaaS. It handles the entire payment flow so you do not need to build checkout pages. Paddle and LemonSqueezy add tax handling as merchant of record.

Deployment Options ​

PlatformBest ForFree TierKey Feature
VercelNext.js, React projectsGenerousEdge functions, previews
NetlifyStatic sites, Astro, HugoGenerousForms, identity, plugins
Cloudflare PagesPerformance-critical sitesGenerousGlobal CDN, Workers
GitHub PagesSimple static sitesFreeDirect from repo
Railway / RenderSites needing a backendLimitedFull-stack support

In Practice ​

Stripe: Custom Next.js for Maximum Performance ​

Stripe builds their landing pages with Next.js and custom React components. Why? Because their pages are a core part of their brand experience. The animations on stripe.com are not possible with a no-code builder. They have a dedicated team of frontend engineers who treat the marketing site as a product.

The lesson: If your landing page IS your product experience (developer tools, design tools, technical products), investing in a custom build pays off. Stripe's pages load fast, look distinctive, and demonstrate their technical credibility.

HubSpot: Own CMS for Rapid Campaign Pages ​

HubSpot uses their own CMS Hub to build campaign-specific landing pages. Their marketing team can spin up new pages without engineering involvement. Templates are pre-approved by design, so brand consistency is maintained.

The lesson: When your marketing team needs to launch pages weekly (campaigns, webinars, content offers), a CMS or no-code tool removes the engineering bottleneck. The slight loss in customization is worth the speed gain.

Early-Stage Startups: Webflow to Ship in Days ​

Linear launched their early marketing site on Webflow before building a custom site. Basecamp (formerly 37signals) has historically kept their marketing pages simple and fast-loading. Many Y Combinator startups ship their first landing page on Webflow or Carrd within a weekend.

The lesson: When you are validating an idea, speed matters more than perfection. Ship on a no-code platform, measure results, then invest in a custom build once you have traction and know what works.


Key Takeaways ​

  • There is no universally "best" tech stack β€” the right choice depends on your team, timeline, and requirements
  • Static site generators (Astro, Next.js, Hugo) offer the best balance of performance, flexibility, and developer experience
  • No-code platforms (Webflow, Unbounce) are ideal when speed to launch matters more than customization
  • Custom builds (React/Vue/Svelte) make sense only when your landing page is a core brand differentiator
  • Plan your integration layer early β€” forms, analytics, CRM, and payments all need to connect
  • Deploy to edge platforms (Vercel, Netlify, Cloudflare Pages) for fast global performance at low cost
  • Start simple and upgrade later β€” you can always migrate from Webflow to custom code once you know what converts

Action Items ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ’» Dev   β”‚ ☐ Evaluate Astro vs Next.js for your next landing   β”‚
β”‚          β”‚   page β€” build a prototype in each                   β”‚
β”‚          β”‚ ☐ Set up a deployment pipeline on Vercel or Netlify  β”‚
β”‚          β”‚   with preview deploys for every PR                  β”‚
β”‚          β”‚ ☐ Create a starter template with your chosen stack   β”‚
β”‚          β”‚   that includes analytics, forms, and SEO basics     β”‚
β”‚          β”‚ ☐ Document your integration patterns so the team     β”‚
β”‚          β”‚   can reuse them across pages                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“‹ PM    β”‚ ☐ Map your landing page needs against the decision  β”‚
β”‚          β”‚   tree β€” how often do you ship new pages?            β”‚
β”‚          β”‚ ☐ Identify who needs to make changes (dev vs.       β”‚
β”‚          β”‚   marketing) and choose a stack that fits            β”‚
β”‚          β”‚ ☐ Build a landing page launch checklist that covers  β”‚
β”‚          β”‚   integrations: analytics, forms, CRM, payments     β”‚
β”‚          β”‚ ☐ Set a timeline expectation with stakeholders       β”‚
β”‚          β”‚   based on the stack you choose                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 🎨 Designβ”‚ ☐ Review your chosen platform's design constraints  β”‚
β”‚          β”‚   before starting high-fidelity mockups              β”‚
β”‚          β”‚ ☐ Create a component library that maps to what your  β”‚
β”‚          β”‚   stack can render β€” buttons, cards, sections        β”‚
β”‚          β”‚ ☐ Test your designs on the actual platform to find   β”‚
β”‚          β”‚   gaps between mockup and implementation             β”‚
β”‚          β”‚ ☐ Build responsive breakpoints into your designs     β”‚
β”‚          β”‚   that match the stack's grid system                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Next: Chapter 14: Performance and Core Web Vitals

The Product Builder's Playbook