A lightweight, dependency-free storefront template for selling digital products (Notion templates, webapps, PDFs, spreadsheets, desktop utilities). Built as a static site with vanilla HTML, CSS, and JavaScript — no frameworks, no build step, no tracking scripts.
- Product catalog with category filtering (Templates, Webapps, Apps, PDFs, Spreadsheets)
- Shopping cart with quantity steppers, persisted via
sessionStorage - Checkout flow with form validation and a simulated payment step (demo mode)
- My Downloads library — purchases saved to
localStorage, delivered instantly - Product image previews in an accessible lightbox modal
- License terms modal shown pre-purchase
- SEO ready — Open Graph / Twitter cards, JSON-LD product schema, canonical URLs,
robots.txt,sitemap.xml - Accessible — keyboard-friendly modals, focus-visible styles, ARIA labels, Escape-to-close
- Zero dependencies — single stylesheet, inline JS, data-URI SVG product images
| Layer | Choice |
|---|---|
| Markup | Semantic HTML5 |
| Styling | Plain CSS (custom properties) |
| Behavior | Vanilla ES6+ JavaScript |
| Storage | localStorage / sessionStorage |
| Hosting | Any static host |
digital-downloads-website/
├── index.html # Storefront: hero, catalog, cart, checkout, FAQ
├── privacy.html # Privacy policy
├── terms.html # Terms of service
├── 404.html # Not-found page
├── style.css # Design system + shared styles
├── robots.txt
└── sitemap.xml
No build step required. Serve the folder with any static server:
python3 -m http.server 8000
# then open http://localhost:8000or simply open index.html directly in a browser.
Note: purchases are stored per-browser (
localStorage). Clearing site data resets your library.
The demo ships with placeholders you should replace:
| Location | Placeholder | Replace with |
|---|---|---|
| Canonical / OG / schema URLs | https://your-domain.com/ |
Your real domain |
index.html OG meta |
og-image.jpg |
A 1200x630 social preview image |
index.html Organization schema |
logo.png |
Your logo |
terms.html Governing Law |
[Your Country/State] |
Your jurisdiction |
sitemap.xml / robots.txt |
your-domain.com |
Your domain |
Checkout is simulated by design. To go live:
- Fastest: create products on Stripe Payment Links, Lemon Squeezy, or Gumroad and point the Buy buttons at those checkout URLs.
- Full control: replace the simulate function in
index.htmlwith server-side Stripe Checkout, deliver files from secure storage after webhook confirmation.
Works on any static host:
- GitHub Pages — Settings → Pages → deploy from branch
- Netlify / Vercel — drag-and-drop or connect the repo
- Cloudflare Pages — connect the repo
The template code is released under the MIT License — free to use, modify, and build your own store on it. Product names, prices, testimonials, and legal page text are illustrative content and are not covered by the code license.