Journey
Field notes from building Pangaea Labs in the open — the decisions, the dead-ends, and the things we’d tell our past selves.
The build so far
Milestones and notes from the build — the highlights link to a write-up.
- MilestoneJun 4, 2026We buy pangaea.id — and build the first (WebGL) homepageRead
- MilestoneJun 7, 2026Point the domain at CloudflareRead
- MilestoneJun 8, 2026Ship it — Git → CI/CD → PagesRead
- NoteJun 8, 2026One canonical address (root → www, 301)Read
- NoteJun 9, 2026Make it fast & safe — Cloudflare settingsRead
- NoteJun 9, 2026Email for sales@ — MX / SPF / DKIM / DMARCRead
- MilestoneJun 9, 2026Pangaea Labs — we start the journeyRead
- MilestoneJun 10, 2026The pivot — dark scroller → light staticRead
- MilestoneJun 10, 2026A two-hex design system
- MilestoneJun 10, 2026Bilingual from the start (EN/ID)
- MilestoneJun 10, 2026Every route prerendered (SSG)
- NoteJun 11, 2026Team roster + work portfolio
- MilestoneJun 11, 2026Light/dark theme + CSP hashing
- MilestoneJun 12, 2026Shipping on every pushRead
- MilestoneJun 14, 2026Self-audit — one h1, meta budget, FAQPageRead
- NoteJun 14, 2026Bahasa that reads written, not translatedRead
- MilestoneJun 15, 2026Entity corroboration — Wikidata + the loopRead
All entries
Email that proves itself
Email has two directions: MX (inbound) is read by the sender; SPF, DKIM and DMARC (outbound) are read by the recipient. Our identity, verified at the other end.
Make it fast and safe
Going live isn't just "it loads" — it's fast and safe. Two free, layered passes of Cloudflare settings: edge security (HTTPS, WAF, CSP, CAA) and CDN caching.
One address, not two (root → www)
pangaea.id and www.pangaea.id look the same to you — but to Google they're two sites. We 301 the bare domain to the canonical www, so all the SEO credit lands on one URL.
Ship the website: Git → CI/CD → Pages
Hostinger VPS + nginx, or Cloudflare Pages? A prerendered SPA needs no SSR — just files. The build-vs-buy call, and how a git push to main ships the site.
Point the domain at Cloudflare
Moving pangaea.id from Hostinger's nameservers to Cloudflare: why (fast propagation, free CDN/TLS/DDoS, AI crawlers welcome) and the trip-wires that break a move.
Before day zero: a domain and a WebGL homepage
Five days before launch we bought pangaea.id from Hostinger and built step one locally: a single-page, dark WebGL site — an animated agent constellation for the AI work ahead.
We gave ourselves a Wikidata item (and closed the loop)
Off-site corroboration, end to end: scripted the Wikidata writes (org + founder), wired sameAs both ways, surfaced it on /proof. Citation Possibility Score ~46%→~60%. The plain-English why is in our new article.
Our Indonesian read translated — so we wrote rules
The site is bilingual, but the Indonesian read translated — right words, wrong feel. The tells (English word order, invented verbs, literal idioms) and the cheap fix: a rulebook, a scan before any rewrite, and one rendering per term.
We graded our own homework — and found seven failures
We sell evaluation, so we ran it on ourselves. The audit caught seven pages with no h1 and titles overflowing the search result. The fix was a good day: per-service FAQs, breadcrumbs, Crunchbase.
The polish nobody sees (until it’s missing)
Shipping the revamp was the headline; the week after decided whether it felt built — focus rings, a reading column, a named testimonial, share buttons, and finally a diary to write it all down.
We measured without selling anyone out
A sales site needs to know what converts; a privacy-first one can’t drop cookies on arrival. Consent denied by default, GA4 via gtag (never GTM), and one env var in exactly the wrong place.
Sitemap is the map. IndexNow is the doorbell.
Getting found by AI answer engines starts somewhere unglamorous: Bing’s index — it’s what ChatGPT searches. Verify, submit the sitemap, then ring the doorbell on every deploy.
Moving the phone book without dropping the mail
Migrating DNS to Cloudflare is mostly painless — except the one silent way it bites: email. MX, SPF, DKIM, DMARC, and a CAA record that breaks your padlock weeks later if you get it wrong.
We almost let our own CDN block the robots we invited
We wrote JSON-LD and llms.txt so ChatGPT and Claude would quote us — then learned our CDN blocks AI crawlers by default. The friendly robots.txt isn’t the gate; the edge is.
Shipping on every push
No server to SSH into. Every push to main rebuilds every static page and ships them — then pings the search engines.
Teaching the site who we are
Crawlers index pages; answer engines index entities. How one JSON-LD graph makes "Pangaea Labs" a thing, not a string.
We deleted the cool homepage
We reached for the obvious dark, WebGL, scroll-driven hero — then shipped the opposite. Why a light, multi-page static site won.
Now we build our own
A decade building software for others. Today we launch Pangaea Labs — and start documenting the journey, in public.