Four sites, one person, launched together. Nothing goes live until all four are ready. Once people start clicking around, everything should be there.
#The Four Sites
#1. zmainen.org — The Hub
What it is: Academic profile + intellectual hub. The one URL that connects everything.
Audience: Anyone googling "Zach Mainen" — hiring committees, journalists, potential collaborators, students, Zephyr Teachout after reading the blog.
Content:
- Brief bio (PI at Champalimaud, founder of HAAK, co-founder IBL)
- Photo
- Publication list (grouped: neuroscience, AI/ontology, governance)
- Links out to the three project sites
- Contact info
- CV (downloadable PDF)
Design: Minimal, personal, warm but serious. Not a lab site. Not a project site. A person. Think: a well-designed academic homepage that happens to link to interesting things.
Domain: zmainen.org (owned, GoDaddy, ProtonMail email configured) Hosting: GitHub Pages → custom domain. Repoint DNS A records to 185.199.108-111.153.
Status: Domain owned. Email working. No web content. Build from scratch.
#2. haak.world — The AI/Governance Project
What it is: The intellectual project. Blog posts, the thesis, formal proofs, the open-source system.
Audience: AI researchers, formal ontologists, governance scholars, constitutional law people, technically curious readers.
Content:
- Landing page (exists — the triangle/pillars page, needs polish)
- Research blog (exists — needs curation per staging protocol below)
- Paper arc overview (dependency diagram, links to papers/proofs)
- About page (what HAAK is, named for Theodore Haak, the thesis in 3 paragraphs)
- Links to GitHub repos (proofs, system)
Design: The current dark teal/cream system. Gloock + Crimson Pro + IBM Plex Mono. Already established — maintain it.
Domain: haak.world (owned, GoDaddy, currently pointing to GoDaddy builder) Hosting: GitHub Pages (haak-world org). Repoint DNS A records to 185.199.108-111.153.
Status: Landing page exists. Blog exists with 5 public posts (2 dispatches + 3 paper blogs). GitHub org created. Needs: DNS repoint, about page, paper arc page, blog curation.
#3. mainenlab.org — The Neuroscience Lab
What it is: Standard academic lab site. Clean, institutional, functional.
Audience: Students considering the lab, postdoc applicants, neuroscience collaborators, grant reviewers, Champalimaud visitors.
Content:
- Lab overview (systems neuroscience, serotonin, decision-making, methodology)
- People page (current members with photos + one-liner)
- Publications (neuroscience papers, sortable by year)
- Open positions (if any)
- News/updates (optional — papers accepted, talks, etc.)
- Contact + location (Champalimaud Foundation, Lisbon)
Design: Clean, light, institutional. NOT the HAAK aesthetic. White background, readable, professional. Static HTML on GitHub Pages (replacing current WordPress/Divi site).
Domain: mainenlab.org (owned, currently hosting stale WordPress site last updated April 2023) Hosting: GitHub Pages (mainenlab org). Repoint DNS from current WordPress host to 185.199.108-111.153.
Status: Existing WordPress site has good content to mine: 17 team members, 80+ publications (through 2023), 10 research project descriptions, alumni list. All needs updating — publications stop at 2023, roster is stale. Rebuild as static HTML, pull content from existing site + projects/mainen-lab/.
#4. latentstates.org — The Art Practice
What it is: Portfolio site for Latent States as a creative/artistic practice. LS9 and related work.
Audience: Curators, cultural funders, EU grant reviewers, art-science collaborators, festival programmers.
Content:
- Portfolio of past/current work (LS9, installations, performances)
- Artist statement / about
- Press / writing
- Contact
- LS9 project page (the EU grant pitch as public narrative)
Design: Art-forward. Visual, atmospheric, minimal text. Dark or high-contrast. Grid-based image layout. Completely different from HAAK's scholarly tone. Think: artist portfolio meets research lab.
Domain: latentstates.org (owned, Namecheap, email forwarding configured). Also own latentstates.com (Cloudflare) — redirect .com → .org. Hosting: GitHub Pages (latentstates org). Repoint DNS to 185.199.108-111.153.
Status: Nothing public. LS9 materials exist in projects/ls9/. Need: visual assets, project descriptions, artist statement. Most work — requires visual content and a distinct design language.
#Cross-Linking
zmainen.org
├── "AI & Governance" → haak.world
├── "Neuroscience Lab" → mainenlab.org
└── "Art Practice" → latentstates.org
haak.world
└── footer: "Zach Mainen · Champalimaud Research" → zmainen.org
mainenlab.org
└── "PI: Zach Mainen" → zmainen.org
latentstates.org
└── "A project by Zach Mainen" → zmainen.org
latentstates.com → redirect to latentstates.org
Every satellite links back to the hub. The hub links to all satellites. A visitor can always find the person behind the project.
#Blog Staging Protocol
All blog posts draft in web/blog/ (main haak repo). Local preview via python3 -m http.server.
To promote a post to public:
- Zach reviews locally and approves
- Post is copied to the haak-world repo
- Index updated
- Pushed to GitHub Pages
Rules:
- No post goes public that references an unpublished paper by internal number ("Paper 7")
- Posts referencing papers must either: (a) link to the arxiv preprint, or (b) stand completely alone as essays
- Dispatches (agent-written reflections) are clearly labeled as such
- Each post must be readable by someone who has never heard of HAAK
#Build Status (updated 2026-03-16 17:37 UTC)
| Site | Repo | DNS | HTTP | HTTPS | Live URL |
|---|---|---|---|---|---|
| haak.world | haak-world/haak-web | A records → GitHub Pages IPs | 200 OK (38 KB) | SSL cert not provisioned — serving *.github.io wildcard, SAN mismatch | http://haak.world |
| zmainen.org | zmainen/zmainen.org | A records → GitHub Pages IPs | 200 OK (9 KB) | SSL cert not provisioned — same SAN mismatch | http://zmainen.org |
| mainenlab.org | mainenlab/mainenlab.github.io | Not checked (building) | — | — | (pending) |
| latentstates.org | latentstates/latentstates.github.io | No A records — NS at registrar-servers.com (Namecheap default) | — | — | (pending) |
#SSL Certificate Fix (both sites)
GitHub Pages has not yet provisioned custom domain SSL certificates for haak.world or zmainen.org. The TLS handshake returns CN=*.github.io with no SAN matching the custom domains. To fix:
- Go to each repo's Settings > Pages
- Confirm the custom domain is entered correctly
- Check "Enforce HTTPS" — this triggers Let's Encrypt certificate provisioning
- Wait 15-30 minutes for certificate issuance
- If stuck, remove the custom domain, save, re-add it, save again
Both sites serve correctly over plain HTTP right now.
#DNS Configuration
All four domains need A records pointed to GitHub Pages:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
| Domain | Registrar | Current DNS | Status |
|---|---|---|---|
| haak.world | GoDaddy | GitHub Pages IPs (4x A records) | DONE |
| zmainen.org | GoDaddy | GitHub Pages IPs (4x A records) + www CNAME → zmainen.org | DONE |
| mainenlab.org | Unknown | Google Cloud (35.214.244.138) | Needs repoint to GitHub Pages IPs |
| latentstates.org | Namecheap | No A records at all — only default Namecheap NS | Needs A records added at Namecheap |
| latentstates.com | Cloudflare | Cloudflare IPs (188.114.96/97.0) — parking page | Needs redirect to latentstates.org |
#ProtonMail Custom Domain — zmainen.org
Goal: zach@zmainen.org (or similar) via ProtonMail custom domain.
Prerequisites: ProtonMail paid plan (Mail Plus minimum, ~$4/month). Account created (recovery key in ~/.secrets).
DNS records to add at GoDaddy (after completing ProtonMail domain verification flow):
| Type | Host | Value | Priority | Notes |
|---|---|---|---|---|
| MX | @ | mail.protonmail.ch | 10 | Primary mail server |
| MX | @ | mailsec.protonmail.ch | 20 | Backup mail server |
| TXT | @ | v=spf1 include:_spf.protonmail.ch ~all | — | SPF record |
| CNAME | protonmail._domainkey | (provided by ProtonMail during setup) | — | DKIM signing key |
| CNAME | protonmail2._domainkey | (provided by ProtonMail during setup) | — | DKIM backup key |
| CNAME | protonmail3._domainkey | (provided by ProtonMail during setup) | — | DKIM tertiary key |
| TXT | _dmarc | v=DMARC1; p=quarantine | — | DMARC policy (recommended) |
Current state: No existing MX or TXT records on zmainen.org (verified via dig). Clean slate — no records to remove.
Steps:
- Upgrade ProtonMail to paid plan
- In ProtonMail Settings > Domain names > Add domain >
zmainen.org - ProtonMail gives you a TXT verification record — add it at GoDaddy
- Once verified, add MX + SPF + DKIM records above
- Create the email address (e.g.,
zach@zmainen.org) - Optionally set as default send address
#Remaining Blockers
| Blocker | Owner | Action |
|---|---|---|
| SSL certs (haak.world + zmainen.org) | Zach | Toggle "Enforce HTTPS" in GitHub Pages settings for both repos |
| ProtonMail upgrade + domain setup | Zach | Paid plan, add domain, configure DNS at GoDaddy |
| latentstates.org DNS | Zach | Add 4 A records at Namecheap pointing to GitHub Pages IPs |
| mainenlab.org DNS | Zach | Repoint A records from Google Cloud to GitHub Pages IPs |
| latentstates.com redirect | Zach | Configure Cloudflare page rule: 301 redirect to latentstates.org |
| Lab roster photos | Zach / lab members | Collect headshots or use initials placeholders |
| Latent States visual assets | Zach | Identify portfolio images, installation photos |
| Zach's photo for zmainen.org | Zach | Provide headshot |
| CV PDF for zmainen.org | Zach | Provide downloadable CV |
| Blog post review | Zach | Read staging posts, approve for promotion |
| Arxiv submission | Folio / Zach | Submit Paper 1, get arxiv ID |
| Publication list review | Zach | Verify selected publications on zmainen.org and mainenlab.org |
#What's NOT in Scope
- Social media (Twitter, Mastodon) — not now, maybe later
- SEO optimization — get the content right first
- Analytics — not needed for launch
- Mailing list — premature
strategy · 2026-03-16 · folio (opus-4-6, session 6a1c1c58) · updated reed (opus-4-6, infra audit)
Strategy 27 — Public Presence — Master Plan — 2026 — Zachary F. Mainen / HAAK