Skip to content

mesetaco/website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

meseta.ai

The marketing site for Meseta Co. — a platform engineering practice in Salt Lake City.

Static, single file, no build step. Lean by design.

Files

.
├── 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

Local preview

No build step. Either:

# Python
python3 -m http.server 8000

# or with any static server
npx serve .

Then open http://localhost:8000.

Deploy to Cloudflare Pages

The simplest path — no framework, no build:

  1. 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
  2. Cloudflare dashboard → Workers & Pages → Create → Pages → Connect to Git → pick mesetaco/website.

  3. Build settings: framework preset = None. Build command: (leave blank). Output directory: /.

  4. Deploy. Cloudflare gives you a *.pages.dev URL.

  5. Custom domain. In the project's Custom domains tab, add meseta.ai (or mesetaco.com). Cloudflare handles the cert.

That's it. Subsequent pushes to main auto-deploy.

Contact form

The contact form posts to /api/contact — a Cloudflare Pages Function at functions/api/contact.js that sends the inquiry via Resend.

One-time setup

  1. 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 for mesetaco.com. Wait for the green checkmark in Resend.

  2. Add the env vars in Cloudflare Pages. Dashboard → the website project → Settings → Environment variables → Production. Add:

    Variable Type Value
    RESEND_API_KEY Secret re_… from https://resend.com/api-keys
    CONTACT_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.

  3. Redeploy. Env vars only apply on new deployments — trigger one (push any commit, or use the "Retry deployment" button in Cloudflare).

Behavior

  • From: Meseta Site <site@mesetaco.com> (override with CONTACT_FROM)
  • To: hi@mesetaco.com (override with CONTACT_TO)
  • Reply-To: the submitter's email — so a reply goes straight back to them
  • Honeypot website field silently drops bots (still returns 200)
  • Server-side validation: required name + email, regex email check, length caps

Local dev (optional)

npm install -g wrangler
echo 'RESEND_API_KEY="re_…"' > .dev.vars   # gitignored
wrangler pages dev . --port 8788

Then test with:

curl -X POST http://localhost:8788/api/contact \
  -F "name=Test" -F "email=test@example.com" -F "note=hi"

If you ever want to swap providers

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.

Notes

  • 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.

About

The marketing site for Meseta Co. — meseta.ai

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors