Public Presence — Master Plan

Four sites, one person, launched together. Nothing goes live until all four are ready. Once people start clicking around, everything should be there.

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:

  1. Zach reviews locally and approves
  2. Post is copied to the haak-world repo
  3. Index updated
  4. 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)

SiteRepoDNSHTTPHTTPSLive URL
haak.worldhaak-world/haak-webA records → GitHub Pages IPs200 OK (38 KB)SSL cert not provisioned — serving *.github.io wildcard, SAN mismatchhttp://haak.world
zmainen.orgzmainen/zmainen.orgA records → GitHub Pages IPs200 OK (9 KB)SSL cert not provisioned — same SAN mismatchhttp://zmainen.org
mainenlab.orgmainenlab/mainenlab.github.ioNot checked (building)(pending)
latentstates.orglatentstates/latentstates.github.ioNo 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:

  1. Go to each repo's Settings > Pages
  2. Confirm the custom domain is entered correctly
  3. Check "Enforce HTTPS" — this triggers Let's Encrypt certificate provisioning
  4. Wait 15-30 minutes for certificate issuance
  5. 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
DomainRegistrarCurrent DNSStatus
haak.worldGoDaddyGitHub Pages IPs (4x A records)DONE
zmainen.orgGoDaddyGitHub Pages IPs (4x A records) + www CNAME → zmainen.orgDONE
mainenlab.orgUnknownGoogle Cloud (35.214.244.138)Needs repoint to GitHub Pages IPs
latentstates.orgNamecheapNo A records at all — only default Namecheap NSNeeds A records added at Namecheap
latentstates.comCloudflareCloudflare IPs (188.114.96/97.0) — parking pageNeeds 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):

TypeHostValuePriorityNotes
MX@mail.protonmail.ch10Primary mail server
MX@mailsec.protonmail.ch20Backup mail server
TXT@v=spf1 include:_spf.protonmail.ch ~allSPF record
CNAMEprotonmail._domainkey(provided by ProtonMail during setup)DKIM signing key
CNAMEprotonmail2._domainkey(provided by ProtonMail during setup)DKIM backup key
CNAMEprotonmail3._domainkey(provided by ProtonMail during setup)DKIM tertiary key
TXT_dmarcv=DMARC1; p=quarantineDMARC policy (recommended)

Current state: No existing MX or TXT records on zmainen.org (verified via dig). Clean slate — no records to remove.

Steps:

  1. Upgrade ProtonMail to paid plan
  2. In ProtonMail Settings > Domain names > Add domain > zmainen.org
  3. ProtonMail gives you a TXT verification record — add it at GoDaddy
  4. Once verified, add MX + SPF + DKIM records above
  5. Create the email address (e.g., zach@zmainen.org)
  6. Optionally set as default send address

#Remaining Blockers

BlockerOwnerAction
SSL certs (haak.world + zmainen.org)ZachToggle "Enforce HTTPS" in GitHub Pages settings for both repos
ProtonMail upgrade + domain setupZachPaid plan, add domain, configure DNS at GoDaddy
latentstates.org DNSZachAdd 4 A records at Namecheap pointing to GitHub Pages IPs
mainenlab.org DNSZachRepoint A records from Google Cloud to GitHub Pages IPs
latentstates.com redirectZachConfigure Cloudflare page rule: 301 redirect to latentstates.org
Lab roster photosZach / lab membersCollect headshots or use initials placeholders
Latent States visual assetsZachIdentify portfolio images, installation photos
Zach's photo for zmainen.orgZachProvide headshot
CV PDF for zmainen.orgZachProvide downloadable CV
Blog post reviewZachRead staging posts, approve for promotion
Arxiv submissionFolio / ZachSubmit Paper 1, get arxiv ID
Publication list reviewZachVerify 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