Skip to main content
ASoc
Guide

Landing Page Cost: The Page Is the Cheapest Line Item

The build is the smallest number in the project. Priced from a real page: ten components and 1,256 words, then four attachments and the two assets no licence includes.

The ASoc Team10 min read

A landing page's build price is usually the smallest number in the project. Priced from a real one: the page is ten components and 1,256 words. What actually meters afterwards is four attachments — form delivery, list storage, analytics, hosting — plus the two assets no code purchase includes, copy and photography.

Published estimates for "how much does a landing page cost" span roughly a hundred dollars to five figures, and the spread is not dishonesty. It's that the question is being asked about the wrong object.

The one page where per-page pricing actually works

We've argued before that pricing a website per page is unplannable, because the unit that meters is the authored artifact — a design system, a data layer, a checkout — and pages are just how many times you render them. A landing page is the exception that proves the rule, for a boring reason: it is exactly one artifact. There is no second page to amortise against, no route table, no schema. Ask "what does this page cost" and the question is well-formed for once.

That's the good news. The bad news is that the page is the cheap part, and the four things bolted to it are the recurring bill.

Line item one: the page

Here's the real inventory of this storefront's home page, read out of a fresh build rather than estimated:

Components composing it10 organisms, 1 of them interactive
Words of copy in the markup1,256
Images29
Internal links94
Rendering mode○ (Static) — prerendered at build

Ten components is a week of work if you're building the components, an afternoon if you're assembling them, and about an hour if you start from a finished template and rewrite the data files. That range — one hour to one week — is genuinely the whole spread on this line item, and it's the line item every quote leads with.

Note what it does not include: the words and the pictures. We'll come back to those.

Line item two: the four attachments

A landing page that only renders is a brochure. The moment it captures anything, it acquires dependencies that bill monthly. Here's each one as it exists in this codebase, with what it actually meters on:

AttachmentWhat it is hereMeters onFree-tier ceiling in practice
Form deliveryA Server Action posting to https://api.resend.com/emailsEmails sentGenerous — a contact form rarely leaves the free tier
List storageA Server Action posting to https://api.resend.com/contactsContacts stored, then sends to themContacts are cheap; broadcasts to them are the bill
AnalyticsCookieless Vercel Analytics, three conversion eventsEvents recordedModest, and the first thing to exceed on a page that converts
HostingA prerendered HTML file on a CDNBandwidth, not computeEffectively free at landing-page traffic

Two things are worth pulling out of that table.

First, hosting is the line item people over-plan and the one that costs least. The page is a build-time HTML file. Serving it involves no server process, no database connection, no cold start. Whether it gets 100 visits or 100,000, the marginal cost is bandwidth on a CDN. If someone is quoting you meaningful monthly hosting for a static landing page, that number is buying something else — usually a CMS.

Second, form delivery and list storage are two different products, and conflating them is the most common budgeting error we see. Delivering one email to your own inbox when someone fills in a contact form is nearly free forever. Storing 20,000 addresses and mailing them monthly is a marketing-email bill that grows with your list and has nothing to do with the landing page. Our own code keeps them visibly separate — different endpoints, different Server Actions, different failure modes:

// src/lib/actions/contact.ts — delivery
await fetch("https://api.resend.com/emails", { /* … to: support@ … */ });

// src/lib/actions/newsletter.ts — storage
await fetch("https://api.resend.com/contacts", { /* … audience_id … */ });

Budget them as two lines, because they scale on different axes.

Line item three: the copy

1,256 words is the number that should reframe the quote. That is the length of a short feature article, and every one of those words has to say something true about a specific product, in a specific voice, in an order that survives someone reading only the first screen.

Nobody's landing-page quote includes it. Design quotes include a wireframe with Lorem ipsum, and development quotes include the components that render whatever you supply. The copy is a separate piece of work that arrives, in our experience, later and slower than anyone plans for — and it is the input that most determines whether the page performs.

There is one structural decision that lowers its ongoing cost, and it's free to make at the start: keep the copy out of the components. Each of our sections reads a typed array from src/data/, so changing a headline is a diff in a data file, not in JSX. That's the difference between "the copywriter can revise the hero" and "the copywriter files a ticket."

Line item four: the photography

This is the one that surprises people, so here are real bytes. Product imagery in this repo:

Image files under public/images1,116
Total on disk93 MB
One product's cover JPEG186,502 B
Its pre-built card variant (-card.webp, 1060w)51,824 B

The 72% cut between those last two rows is a build step, not a service: a script generates WebP derivatives at the sizes the page actually renders, so the full-size JPEG stays available for og:image and structured data while every on-page <img> points at a right-sized file. That decision costs an afternoon once and removes a per-request image-optimisation bill permanently.

What it does not remove is the cost of having images at all. Twenty-nine images on one page is either a licensing bill, a photoshoot, or an afternoon of screenshots — and unlike hosting, it recurs every time the product's UI changes. If you are pricing a landing page for a product that doesn't exist yet, this is the line item most likely to be missing entirely from your estimate.

Four ways to get one, priced by what you still owe

RouteWhat you pay forWhat you still owe afterwards
Build the components yourselfYour timeCopy, images, the four attachments, and every future section
Start from a templateA one-off licenceCopy, images, the four attachments
Hire a freelancerDesign + build of one pageCopy (usually), images (usually), the four attachments (always)
Hire an agencyDesign + build + often copyThe four attachments, and the retainer that follows

Our own catalogue sits in the second row: 66 landing templates, 111 products in total, sold as a $39 single-template licence or a $129 all-access licence with lifetime updates. We quote that not because the number is the point but because it's the honest shape of the row — a template moves the build line item close to zero and moves nothing else. A buyer who expects it to also solve the copy and the photography will be disappointed on schedule.

The comparison that matters isn't price against price. It's which of the four line items each route actually closes.

Mistakes and how they show up

SymptomCauseFix
The build came in on budget and the launch slipped six weeksCopy wasn't scoped as work, so it started after the page was "done"Scope 1,000–1,500 words as a deliverable with an owner and a date, in parallel with the build
Monthly costs climb without traffic climbingThe email list, not the page, is what's growingTrack list storage and broadcast sends as their own line; they scale on contacts, not on page views
A hosting quote for a static page is a meaningful monthly numberThe quote includes a CMS, a server, or a managed service the page doesn't needConfirm what the page's rendering mode actually is; a prerendered HTML file needs a CDN and nothing else
The page is fast in review and slow in productionFull-resolution photography shipped straight to the browserGenerate right-sized derivatives at build time; a 186 KB cover became 52 KB here with no visible change
Every copy tweak needs a developer and a deployText is hardcoded in componentsMove each section's content into a typed data file; the deploy stays, the developer doesn't
A second landing page costs the same as the firstNothing from the first one was built to be reusedThe moment there are two, you're back to pricing artifacts rather than pages — the components, tokens and data shape are the asset

Frequently asked questions

How much does a landing page cost, realistically? The build ranges from an afternoon to about a week of work depending on whether you're assembling components or authoring them, and a template licence compresses it further — ours are $39 for one and $129 for all of them. Treat that as one of four line items, not the answer. The other three — the attachments, the copy, and the imagery — are where the variance in every published estimate actually comes from.

What are the ongoing costs of a landing page? Four things: delivering form submissions, storing and mailing a contact list, recording analytics, and serving the page. For a prerendered page the last one is negligible. The list is the one that grows with success, and it's a marketing-email cost rather than a website cost.

Is a cheap landing page template a false economy? It depends entirely on which line item you thought it was closing. It closes the build. If the page underperforms, the cause is nearly always the copy or the offer, and no licence price affects either. What a template genuinely should buy you beyond markup is the accessibility, responsive and performance work already done — how to evaluate one is the checklist we'd apply.

Do I need a CMS for a landing page? Usually not, and it's the single most expensive reflex in this category. A CMS is worth its cost when non-technical people publish on a schedule. For one page whose copy changes a few times a year, a typed data file in the repo gives you the same editability at zero recurring cost, and keeps the page prerendered.

Templates in this post

ASoc Sentinel is a security-suite site with tiered plans — the shape where the copy line item is heaviest, because every tier row is a claim someone has to write and defend. ASoc Signal, an AI voice-and-image studio page, is the opposite balance: its cost sits in the imagery, since the product is visual and every screenshot ages with the UI. ASoc Sterling is a wealth-management site with a balance-dashboard preview, which is the case where a landing page and a product screenshot are the same asset and should be budgeted once.

Browse the full sets: Next.js landing page templates and Tailwind landing page templates. For the recurring side of the bill across a whole site rather than one page, see website maintenance cost.

Keep reading

Guide11 min read

A Lighthouse Accessibility Score of 100 Is Not WCAG Conformance

The score is a claim about one URL. Three defects our own audit found only by measuring every page, three more no scanner reports, and a ten-minute test you can run before buying.

Read more
Guide9 min read

Next.js License Key: Why This Storefront Doesn't Have One

No key field anywhere in this codebase's entitlement types — ownership is a database row scoped to a session, checked fresh on every download.

Read more