The marketing site for Meseta Co. — a platform engineering practice in Salt Lake City.
Static, single file, no build step. Lean by design.
.
├── index.html # the site
├── assets/
│ └── logo.svg # three-layer mesa mark
├── design-cues.md # design system + deltas from the original Claude Design draft
├── ideas/ # working drafts (not published)
│ ├── logo.png
│ ├── logo.svg
│ └── meseta-draft1.html
└── README.md
No build step. Either:
# Python
python3 -m http.server 8000
# or with any static server
npx serve .Then open http://localhost:8000.
The simplest path — no framework, no build:
-
Push to GitHub (
github.com/mesetaco/website)git init git add . git commit -m "Initial site" git branch -M main git remote add origin git@github.com:mesetaco/website.git git push -u origin main
-
Cloudflare dashboard → Workers & Pages → Create → Pages → Connect to Git → pick
mesetaco/website. -
Build settings: framework preset = None. Build command: (leave blank). Output directory:
/. -
Deploy. Cloudflare gives you a
*.pages.devURL. -
Custom domain. In the project's Custom domains tab, add
meseta.ai(ormesetaco.com). Cloudflare handles the cert.
That's it. Subsequent pushes to main auto-deploy.
The contact form posts to /api/contact — a Cloudflare Pages Function at functions/api/contact.js that sends the inquiry via Resend.
-
Verify the sending domain in Resend. Go to https://resend.com/domains, add
mesetaco.com, and add the SPF / DKIM / DMARC records Resend gives you to Cloudflare DNS formesetaco.com. Wait for the green checkmark in Resend. -
Add the env vars in Cloudflare Pages. Dashboard → the
websiteproject → Settings → Environment variables → Production. Add:Variable Type Value RESEND_API_KEYSecret re_…from https://resend.com/api-keysCONTACT_TO(optional)Plaintext hi@mesetaco.com(default)CONTACT_FROM(optional)Plaintext Meseta Site <site@mesetaco.com>(default)The defaults match the function code, so you only really need
RESEND_API_KEY. -
Redeploy. Env vars only apply on new deployments — trigger one (push any commit, or use the "Retry deployment" button in Cloudflare).
From:Meseta Site <site@mesetaco.com>(override withCONTACT_FROM)To:hi@mesetaco.com(override withCONTACT_TO)Reply-To: the submitter's email — so a reply goes straight back to them- Honeypot
websitefield silently drops bots (still returns 200) - Server-side validation: required name + email, regex email check, length caps
npm install -g wrangler
echo 'RESEND_API_KEY="re_…"' > .dev.vars # gitignored
wrangler pages dev . --port 8788Then test with:
curl -X POST http://localhost:8788/api/contact \
-F "name=Test" -F "email=test@example.com" -F "note=hi"The function is small enough to rewrite for Postmark, Mailgun, AWS SES, or Cloudflare Email Routing in ~20 lines. Or drop in a third-party form service (Formspree / Basin) by pointing form action at their endpoint and deleting functions/api/contact.js.
- Design system + change history live in
design-cues.md. Use that when iterating in Claude Design or refining copy. - Fonts come from Google Fonts (Fraunces + Inter + JetBrains Mono). Page weight is well under 100KB plus fonts.
- No analytics yet. Cloudflare Web Analytics is the cheapest defensible default when ready.