Free download

A steady little website starter.

Anchorpage is five pages of plain HTML, CSS and JavaScript for a small business website. No PHP, no database, no build step. Download it, change the words, put it on any static host.

What it is

A lot of small business sites still sit on shared PHP hosting with a contact form that mails through mail(). Anchorpage is the same kind of site without that machinery: static pages that load fast and avoid whole classes of server bugs, plus an optional contact form that runs on a small Cloudflare Worker instead of PHP.

Plain files, no build step

HTML, one stylesheet, two small JavaScript files. Open them in any editor, preview with python3 -m http.server, host them anywhere static files are served.

Safe defaults, stated honestly

Strict Content-Security-Policy on every page, no inline scripts, no tracking, no cookies. The README lists what this does and does not protect against.

A contact form without PHP

The starter includes a tested Cloudflare Worker that checks the Origin header, validates every field and caps body size. It ships unwired: you connect your own mail route, so no credentials live in the download.

What's inside

Everything you need for a five-page business site, plus the tooling that keeps it honest while you edit.

  • Five pages: home, about, services, contact and a plain-language privacy page.
  • One stylesheet with brand colors at the top and responsive layout throughout. No framework, no dependencies.
  • Progressive-enhancement JavaScript only: the mobile menu and an optional EN/ES language switcher. The language choice stays in the visitor's browser (localStorage), never on a server.
  • Contact form + Worker endpoint with 23 functional tests covering validation, Origin enforcement, size caps and fail-closed misconfiguration handling.
  • A static checker script (tools/check.py) that fails the build on missing CSP, inline scripts, broken local links, missing translations and common hardcoded-secret patterns.
  • A README that walks through customizing the content, wiring the form, and the honest limits of the setup.

The demo

The demo is the starter running as-is, with placeholder content for a fictional business called Bluebird Studio. Click through every page and try it on your phone.

Open the live demo

Two things to know about the demo:

Bluebird Studio is not a real business. The text, services and prices are placeholders you replace with your own.

The demo's contact form is intentionally not connected. It shows the starter's honest "form not connected yet" state instead of pretending to send your message somewhere.

Download

The whole starter, zipped. Free for your own websites, personal or business.

anchorpage-0.1.zip

Version 0.1 - October 2026 - includes source, Worker, checker, tests and README

Download the zip

Get it running locally

unzip anchorpage-0.1.zip
cd anchorpage/site
python3 -m http.server 8000
# open http://localhost:8000

Optional checks: python3 tools/check.py and node tests/worker.test.mjs (Node 18+, no dependencies).

Terms: you may use and modify Anchorpage for your own websites and your clients' websites. Please do not sell or redistribute the starter itself.

Honest limits

From the README, because they matter more than the pitch:

  • Static hosting removes whole classes of server bugs, but nothing is unhackable. The hosting account, DNS and any third-party script you add still matter.
  • The checker is a seatbelt, not an audit.
  • The contact form sends nothing until you wire your own mail route. Until then its submit button stays disabled, by design.
  • The EN/ES translations are AI-drafted. Have a native speaker review them before real customers see your site.
  • No site is maintenance-free: hosting, DNS and content updates remain your responsibility.