GitHub Pages for hosting. A $2 domain. Gumroad for sales. The whole stack costs less than a coffee — and this site is a live example of exactly that.
Most people assume selling a digital product online requires a monthly subscription — Squarespace, Webflow, Shopify, or at minimum a paid WordPress host. It doesn't. If your product is a file, a PDF, or a template, you can sell it with zero recurring costs.
The trick is separating three jobs that most platforms bundle together: hosting the page, owning the domain, and handling the sale. Each has a free or near-free solution.
| Job | Tool | Cost |
|---|---|---|
| Host the page | GitHub Pages | FREE |
| Own a domain | Namecheap | ~$2 / year |
| Handle the sale | Gumroad | FREE (10% per sale) |
| Write the page | Plain HTML + CSS | FREE |
Gumroad takes 10% of each sale — but only money you've already made. No upfront cost.
You'll use this to store and publish your HTML file. No coding experience required for a simple single-page site.
This is where your product file lives and where buyers pay. Gumroad handles the checkout, delivery, and payment processing.
Namecheap has .online domains for around $2/year — a real domain looks more credible than a raw GitHub URL when you're sharing a product.
Do Gumroad before you write a single line of HTML. Your landing page's main button needs a real checkout URL to link to — you want that before you build the page around it.
Go to app.gumroad.com → New Product. Upload your file (PDF, ZIP, whatever). Add a name, description, and price. For pay-what-you-want: set the price to $0 and add a suggested amount below it.
Once published, your product gets a URL like yourname.gumroad.com/l/your-product. Copy it — this is what your buy button will link to.
You don't need to know HTML to write this page. Open a Claude chat, describe your product, and ask it to build the whole thing as a single self-contained HTML file. One file, everything included — no separate CSS, no extra files to manage.
A good landing page needs very few things: a headline that says exactly what the product is, a short list of what's inside, and a buy button linking to your Gumroad URL. That's it.
Here's a starter prompt you can copy and adapt:
Create a landing page for my digital product as a single self-contained HTML file (all CSS inside a <style> tag, no external files). Product: [your product name] What it is: [one sentence description] Who it's for: [your audience] What's included: [list your files/items] Price: [your price or pay-what-you-want] Buy button URL: [your Gumroad link] Style: clean, modern, dark background with [your accent colour]. Include: a nav, hero section, what's included list, and a footer. Make the buy button prominent.
Claude will produce a complete, working HTML file. Review it, ask for any changes — colours, copy, layout — then save it as index.html on your computer.
GitHub Pages turns any repository into a live website, for free, instantly, with HTTPS included.
Go to github.com → New repository. Name it anything — the name won't show in the URL once you add a custom domain. Set it to public (required for GitHub Pages on free accounts).
The simplest method: drag your index.html directly into the repository via the GitHub web interface. No Git knowledge needed for a single file.
Repository → Settings → Pages. Under "Source", select your main branch and the root folder. Click Save. GitHub gives you a live URL like yourusername.github.io/repo-name — your page is live.
Your file structure in the repository will look like this:
The GitHub URL works fine, but a real domain looks more credible. Namecheap has .online domains for around $2/year — worth it for any product you're seriously sharing.
Search for your idea at namecheap.com. The .online extension is genuinely around $2/year — not a promo price, just cheap. That's all you need.
In Namecheap → Advanced DNS, add four A records pointing to GitHub's IP addresses, plus one CNAME record for www. Search "GitHub Pages custom domain DNS" for the exact current IPs — GitHub publishes them in their documentation.
Create a plain text file named exactly CNAME (no extension) containing just your domain on one line: yourdomain.online
Once DNS propagates (minutes to a few hours — this is normal), go back to Settings → Pages and tick "Enforce HTTPS". Done.
.online domain on Namecheap costs around $2 a year. That's the entire infrastructure cost of a live product page.
This site was built and launched exactly this way — GitHub Pages, a $2 .online domain, Gumroad for sales. The guide inside teaches a different workflow, but the stack that hosts it is the same one described in this article.
See the landing page →$19 · Instant download