/ build-guides / How to Build a Landing Page Builder as a Solo Developer
build-guides 12 min read

How to Build a Landing Page Builder as a Solo Developer

Complete guide to building a landing page builder as a solo developer - tech stack, architecture, timeline, and tips.

Hero image for How to Build a Landing Page Builder as a Solo Developer

What You're Building

A landing page builder lets people create single-page marketing websites without coding. Think Carrd, Unbounce, or Leadpages. Users drag components around, customize text and colors, and publish a page to their own domain. It's a visual editor for the web.

Carrd is the interesting case study here. One developer, Aj, built it solo and it does millions in revenue. Incredibly simple product. Just single-page websites with templates. That simplicity is the product. I think about Carrd a lot when people tell me solo developers can't compete with teams. You absolutely can if you stay focused.

Carrd is also useful as a pricing benchmark, because its numbers tell you what users already expect to pay. As of May 2026 the Carrd Pro tiers are billed annually at Pro Lite $9/year (3 sites, no custom domain), Pro Standard $19/year (10 sites, custom domain with free Let's Encrypt SSL, plus forms and Stripe/PayPal/Gumroad widgets), and Pro Plus $49/year (25 sites, advanced forms, password protection, downloadable site files). There is no monthly billing option at any tier (per the official Carrd Pro plans docs). The free tier exists but keeps the Carrd badge and excludes custom domains. That spread, single digits to roughly fifty dollars a year, is the anchor you are pricing against.

By the Numbers (2026)

These are the current versions and prices for the stack and the integrations this guide leans on, pinned so you start from real numbers rather than guesses. All figures checked May 2026; treat pricing as a snapshot and confirm current rates before you commit.

Thing Current value Why it matters
React (react on npm) 19.2.6, about 129.3M weekly downloads, around 245.3k GitHub stars The editor is the product; React is the most-supported ecosystem for building it
Node.js 24.16.0 LTS ("Krypton"), 26.2.0 current Long-term-support line for the API; avoid the odd-numbered current release in production
Django 6.0.5 The Python alternative for the backend if you prefer it to Node
Express (express on npm) 5.2.1 Common minimal Node web framework for the API layer
Carrd Pro $9 / $19 / $49 per year (Lite / Standard / Plus) The price anchor your free-to-paid funnel is competing with
Cloudflare for SaaS First 100 custom hostnames free, then $0.10 per hostname per month on Free/Pro/Business Makes the "custom domain" premium feature nearly free to operate at small scale
Stripe 2.9% + $0.30 per successful US card charge, no monthly or setup fee on standard What each upgrade actually nets you after processing
Mailchimp free tier 250 contacts, 500 sends/month (cut from 500/1,000 in January 2026); Essentials from $13/month The integration most users will ask for first; the free ceiling is now low
Kit (formerly ConvertKit) free tier Up to 10,000 subscribers, unlimited sends; Creator from $39/month ($33 billed annually) The more generous free email integration to support out of the gate

Difficulty & Timeline

Aspect Detail
Difficulty Hard
Time to MVP 8-12 weeks
Ongoing Maintenance Medium to High
Monetization Freemium ($9-29/month for custom domains, premium templates)

React for the visual editor (it's the best ecosystem for complex interactive UIs), with a Node.js or Django backend. The editor is the product, so the frontend gets most of your development time. Start on current stable releases so you are not fighting deprecations later. React is at 19.2.6, Node.js ships its long-term-support line at 24.16.0 (pin to the LTS, not the 26.x current release, for a server you have to keep alive), and Django is at 6.0.5 if you go the Python route. Express, a common minimal Node web framework for the API, is at 5.2.1.

For rendering published pages, generate static HTML/CSS and serve it from a CDN. Don't render pages dynamically from a database on every visit. Generate the HTML once when the user publishes, cache it, and serve it as a static file. This gives you perfect performance and minimal server costs.

For custom domains, you'll need either Cloudflare for SaaS or a reverse proxy setup that maps custom domains to the right page. Cloudflare for SaaS is the easier path, and the economics are forgiving. Cloudflare for SaaS includes the first 100 custom hostnames free on the Free, Pro, and Business plans, then charges $0.10 per custom hostname per month beyond that (per the Cloudflare for SaaS plans docs). It also handles SSL certificate issuance and renewal for you. That means your headline premium feature, the custom domain, costs you almost nothing to operate until you have real volume.

Step-by-Step Plan

Phase 1: The Visual Editor (Week 1-5)

This is the hardest part and it's where most of your time goes. Build a block-based editor where users add sections (hero, features, testimonials, pricing, footer), customize text by clicking and editing inline, change colors and fonts, add images, and see the result in real-time.

Don't build a free-form drag-and-drop canvas where things can go anywhere. That's how you end up with ugly pages and endless edge cases. Use a block-based approach (like Notion or Carrd) where sections stack vertically and users customize within those constraints. The limitations are a feature, not a bug. They make it nearly impossible to create an ugly page.

Start with 5-8 section types. Hero with headline and CTA, feature grid, testimonial carousel, pricing table, FAQ accordion, contact form, footer. These cover 90% of landing pages.

Phase 2: Templates & Publishing (Week 5-9)

Create 10-15 templates by combining your section types into complete landing pages for different use cases. Startup launch, product showcase, coming soon, portfolio, event registration. Templates are the fastest path to value because users can have a page live in minutes.

Build the publishing pipeline. When a user clicks "Publish," generate clean HTML/CSS from their page configuration, upload it to your CDN, and map it to either a subdomain (username.yourapp.com) or their custom domain.

Custom domains are a premium feature and the primary reason people upgrade to paid plans. Integrate Cloudflare for SaaS to handle SSL certificates and domain routing automatically.

Phase 3: Polish & Growth Features (Week 9-12)

Add analytics (page views, click tracking on CTAs). Build A/B testing for headlines or CTAs if you want to differentiate from Carrd. Add integrations for common tools like email providers (Mailchimp, Kit, the service formerly called ConvertKit) and Stripe for payment buttons. A note on which email provider to support first. Mailchimp cut its free tier in January 2026 to 250 contacts and 500 sends per month, with Essentials starting at $13/month, so a lot of your free users will hit that wall fast. Kit's free Newsletter plan covers up to 10,000 subscribers with unlimited sends (Creator starts at $39/month, or $33 billed annually), which makes it the friendlier default to wire up for the indie audience a landing page builder attracts. Stripe is the obvious choice for payment buttons because it charges 2.9% + $0.30 per successful US card charge with no monthly or setup fee on the standard plan, so a user can ship a paid button without any fixed cost.

Build a template marketplace or gallery where users can browse and one-click start from professional designs. Templates drive conversions more than any other feature.

Key Features to Build First

Block-based editor. Constrained, section-based editing that makes it easy to build good-looking pages. Inline text editing, color pickers, image uploads.

Templates. Pre-built page designs users can customize. This is what converts free users to paying users. Without templates, your builder is just an empty canvas.

One-click publish. Generate static HTML/CSS and deploy to a CDN. Users get a live URL instantly. This "wow moment" is critical for retention.

Custom domains. The #1 premium feature. Use Cloudflare for SaaS to handle domain mapping and SSL.

Responsive preview. Users need to see how their page looks on mobile. Toggle between desktop and mobile preview in the editor.

Architecture Overview

Editor App (React)
 └── Page configuration (JSON)
 |
API (Node.js / Django)
 ├── Page CRUD (store configurations)
 ├── Publishing engine (JSON -> HTML/CSS)
 ├── Domain management (Cloudflare for SaaS)
 ├── Template library
 ├── Analytics tracking
 └── Billing (Stripe)

CDN (Cloudflare)
 └── Serves published static pages
 ├── subdomain.yourapp.com
 └── custom-domain.com

Common Pitfalls

Building a full website builder. You're building a landing page builder, not WordPress. Resist the urge to add multi-page support, blog functionality, e-commerce, or CMS features. Carrd's constraint (single pages only) is what makes it work. Stay focused.

Free-form drag and drop. It sounds cool until users create pages that look terrible on mobile, have overlapping elements, and break at certain viewport sizes. Block-based editing with vertical stacking is easier to build and produces better results.

Neglecting mobile rendering. Over half of web traffic is mobile. Every landing page your tool creates must look great on phones. Build responsive into your section components from day one, not as an afterthought.

Underinvesting in templates. Your templates are your sales team. A beautiful template gallery converts browsers into users. Spend real time making your templates look professional. Hire a designer for a few hours if needed.

Overcomplicating the editor. Every option you add to the editor makes it harder to use. Start minimal. Text, images, colors, basic layout options. Advanced features like animations, custom CSS, or JavaScript injection can come later for power users.

Timeline Estimate

Phase Time What You're Doing
Visual editor 5 weeks Block editor, section types, inline editing
Templates & publishing 4 weeks Templates, HTML generation, custom domains
Polish & growth 3 weeks Analytics, integrations, billing
Total 8-12 weeks Ready for users to build pages

Is This Worth Building?

Yes, if you're willing to stay disciplined about scope. Carrd proves that a solo developer can build a wildly successful landing page builder. The key is constraint. Don't try to build Webflow or Squarespace. Build something simpler, faster, and more focused.

The economics are great. Landing pages are evergreen. Every startup launch, every product release, every event needs a landing page. A free tier that hooks people in, with paid plans at $9-19/month for custom domains and premium templates, scales beautifully. 500 paying users at $12/month is $72k/year. The ceiling is high if you build something people love. Note that Carrd itself prices annually rather than monthly (Pro Lite $9/year through Pro Plus $49/year as of May 2026), so a monthly model at $9-19 is actually a different, often more aggressive, position than the incumbent. Decide that deliberately.

Common Errors and Fixes

These are the failure modes you will actually hit, grounded in how the underlying services behave.

Custom hostname returns "no SSL certificate" or stays pending. When you add a customer domain through Cloudflare for SaaS, the certificate only issues after the domain's DNS points at your fallback origin and the hostname validation completes. If you flip the page live before validation finishes, visitors get a TLS error. Fix it by checking the custom hostname status through the Cloudflare API or dashboard and gating your "domain is live" UI on a verified/active status rather than on the moment the user clicks save. The first 100 hostnames are free, so you can leave verification pending without cost while you wait.

Stripe charge succeeds but you over-promise the payout. A common mistake is showing the user "you earned $X" using the gross charge amount. Stripe takes 2.9% + $0.30 per successful US card charge on the standard plan, so a $10 button nets about $9.41, not $10. Compute and display net, and remember chargebacks and international cards add cost on top. Keeping the displayed number honest avoids support tickets later.

Mailchimp form integration silently stops accepting signups. Since the January 2026 change, the Mailchimp free tier caps at 250 contacts and 500 sends per month. A user on the free Mailchimp plan whose audience fills up will see new signups rejected by the API while your builder reports success. Surface the provider's error response to the user instead of swallowing it, and document the free-tier limits so they know when to upgrade or switch to Kit (free up to 10,000 subscribers).

Node version mismatch breaks the build on deploy. Building locally on Node 26.x (the current release) and deploying to a host pinned at the 24.16.0 LTS, or vice versa, is a classic source of "works on my machine" failures. Pin the Node version in an .nvmrc or engines field and match it to your deploy target. Stay on the LTS line for a server you have to keep running.

Editor state desync between the JSON config and the rendered preview. Because the editor stores a JSON page configuration and the publish step turns that JSON into static HTML/CSS, any divergence between how the live React preview renders a block and how your publishing engine renders the same block produces a page that looks different once published. Drive both the in-editor preview and the published output from the same component definitions so there is a single source of truth, rather than maintaining two renderers.

Sources

Built by Kevin

Like this? You'll like what I'm building too.

Two ways to support and get more of this work.

Desktop App

HEARTH

A privacy-first Life OS for your desktop. Journal, tasks, and notes that stay on your machine. Coming soon, direct download from this site.

Read more
Digital Products

MY TOOLKITS

Receipts-first toolkits for shipping after hours, building Claude agents, publishing on Amazon, and more. The exact methods I used, not theory.

Browse on Whop

Need This Built?

Kevin builds products solo, from first version to live. If you want something like this made, work with him.