Deployment Guide
Complete guide to deploying seekersabodepl.com on Netlify — staging first, then production
Deployment Guide
This document covers everything needed to deploy the site. The rule: staging first, production only after QA passes.
Quick Reference
| Item | Value |
|---|---|
| Build command | npm install && npm run build |
| Publish directory | public |
| Node.js version | 22 (set automatically via netlify.toml) |
| Hugo version | 0.162.1 (extended — set via HUGO_EXTENDED=true) |
| Repo base | seekersabodepl/ in WSL |
| Live domain | seekersabodepl.com (do not connect until staging passes) |
Overview: The Two-Phase Deploy
Phase 1 (now)
├── Push repo to GitHub ← you are here
├── Import into Netlify
├── Get staging URL (netlify.app)
├── Run QA checks on staging URL
└── ✅ Approve
Phase 2 (after approval)
├── Connect seekersabodepl.com in Netlify
├── Configure GoDaddy DNS
├── Wait for DNS + HTTPS
└── 🚀 Live
Prerequisites
- A GitHub account (github.com/signup)
- A Netlify account (netlify.com → Sign up with GitHub)
- GoDaddy access for DNS configuration (domain purchase already done)
- WSL terminal open at the repo directory
Step 1: Push the Repo to GitHub
The site lives at this path on your machine:
/mnt/c/Users/PRASHANT/Documents/Codex/2026-05-30/you-installed-hermes-agent-on-my/seekersabodepl/
1a. Create a GitHub repository
- Go to github.com/new
- Repository name:
seekersabodepl - Visibility: Public or Private — both work with Netlify free tier
- Do NOT check “Add a README”, “.gitignore”, or “License” (the repo already has these)
- Click Create repository
1b. Push from WSL
Copy the commands from the GitHub page, or run these exactly:
cd /mnt/c/Users/PRASHANT/Documents/Codex/2026-05-30/you-installed-hermes-agent-on-my/seekersabodepl/
# Replace YOUR-USERNAME with your actual GitHub username
git remote add origin https://github.com/YOUR-USERNAME/seekersabodepl.git
git branch -M main
git push -u origin main
GitHub will ask for your username and password. Use a personal access token instead of your password:
- Go to github.com/settings/tokens
- Click Generate new token (classic)
- Check
repo(full control) — this is the minimum needed for pushing - Copy the token and paste it at the password prompt
1c. Verify
git status
# Should say: "nothing to commit, working tree clean"
Step 2: Create the Staging Branch
Deploying main straight to Netlify would activate the production context (pointing to seekersabodepl.com which isn’t connected yet). Instead, push from a staging branch so Netlify gives you a free staging URL.
git checkout -b staging
git push -u origin staging
Step 3: Import into Netlify
- Log into app.netlify.com
- Click Add new site → Import an existing project
- Choose GitHub as your Git provider
- Authorize Netlify to access your GitHub account (if prompted)
- Search for and select the
seekersabodeplrepository
Verify build settings
When Netlify shows the deploy settings screen, check these are auto-detected:
| Setting | Expected value | Where it’s set |
|---|---|---|
| Branch to deploy | staging ↓ change to staging | Change from default main → staging |
| Base directory | (leave blank) | — |
| Build command | npm install && npm run build | netlify.toml |
| Publish directory | public | netlify.toml |
If any field is empty, it wasn’t auto-detected. You can fill it manually — the values above are correct.
- Click Deploy site
Step 4: Wait for the First Build
Netlify’s first build takes 2–4 minutes. You don’t need to watch it — Netlify will email you when it’s done.
After completion, your site gets a Netlify subdomain like:
https://starlit-croissant-abc123.netlify.app
This is the staging URL. Write it down — you’ll need it for QA.
The
stagingbranch deploy uses[context.branch-deploy]innetlify.toml, which sets the base URL to this staging URL automatically. All links and sitemap entries will use the staging URL, not the production domain.
If the build fails
Check the Deploy log on Netlify for error details. Common fixes:
| Error | Fix |
|---|---|
pagefind: not found | The build command npm install && npm run build should install it automatically. Check that npm install ran successfully. |
hugo: not found | Hugo version may need setting. netlify.toml sets HUGO_VERSION = "0.162.1" — if Netlify doesn’t pick it up, set it manually under Site settings → Environment → Environment variables. |
Node.js version not supported | Netlify’s default Node.js is usually 18+. The netlify.toml sets NODE_VERSION = "22". If it’s not honoured, set it manually as an environment variable in Netlify. |
Permission errors with scripts/ | These files aren’t served to the web — they’re local tools. No action needed. |
Step 5: Run QA Checks
5a. Local QA (first — catches problems before they hit the staging URL)
# From the repo directory
cd /mnt/c/Users/PRASHANT/Documents/Codex/2026-05-30/you-installed-hermes-agent-on-my/seekersabodepl/
npm run build
python3 scripts/qa_checks.py
Expected output:
============================================================
PRE-DEPLOYMENT QA CHECKS
============================================================
--- 1. Build output ---
✅ public/ directory exists
✅ 130 HTML files generated
... (all checks pass) ...
============================================================
✅ ALL QA CHECKS PASSED — ready for staging deployment.
If any check fails, fix the issue and re-run.
5b. Staging URL QA (once Netlify has deployed)
Open each of these in a browser (replace STAGING-URL with your actual Netlify URL):
| Check | URL to visit | What to verify |
|---|---|---|
| Home page | https://STAGING-URL.netlify.app/ | Hero section, navigation, featured domains |
| All domains | https://STAGING-URL.netlify.app/philosophy/ | Stats panel, featured entries, key thinkers, pathways |
https://STAGING-URL.netlify.app/neuroscience/ | Same | |
https://STAGING-URL.netlify.app/eastern-traditions/ | Same | |
https://STAGING-URL.netlify.app/altered-states/ | Same | |
https://STAGING-URL.netlify.app/quantum-ai/ | Same | |
https://STAGING-URL.netlify.app/applied/ | Same | |
| Library | https://STAGING-URL.netlify.app/library/ | All 75 entries show, filter dropdowns work, search box visible |
| Search | Type in search box | Pagefind returns relevant results |
| Thinkers | https://STAGING-URL.netlify.app/thinkers/ | 35 thinker profiles listed |
| Pathways | https://STAGING-URL.netlify.app/pathways/ | 3 pathways visible |
| Entry page | Click any library entry | Seed banner visible, summary, why_it_matters, details |
| 404 page | https://STAGING-URL.netlify.app/nonexistent-page | Custom 404 page with “Go home” / “Browse the library” links |
| Sitemap | https://STAGING-URL.netlify.app/sitemap.xml | XML loads with 128+ URLs |
| robots.txt | https://STAGING-URL.netlify.app/robots.txt | Sitemap: /sitemap.xml (relative URL) |
| Courses | https://STAGING-URL.netlify.app/courses/ | LMS referral page explaining the plan |
| About | https://STAGING-URL.netlify.app/about/ | About page loads |
| Mobile | Open on a phone or resize browser to 375px | Navigation collapses into hamburger, text wraps, no horizontal scroll |
5c. Additional quality checks
- Click a filter in the library — entries should narrow down
- Click “Clear all” — filters should reset
- Click any thinker link from a thinker profile → should load the profile
- Scroll down on a domain page — “Browse all” link should go to library filtered by that domain
QA Approval
Checklist (tick each as you verify):
- All 6 domain pages load with stats + featured entries
- Library lists 75 entries
- Search returns results
- Filters work (domain, access, level, status dropdowns)
- Thinkers page shows 35 profiles
- 3 pathways load correctly
- 404 page shows custom content
- Sitemap XML is valid
- robots.txt accessible
- All navigation links work
- Mobile layout is usable
If everything passes, proceed to Step 6.
Step 6: Connect the Live Domain (seekersabodepl.com)
Only proceed once staging QA passes. Do not skip this.
6a. In Netlify: Add custom domain
- Go to Site settings → Domain management
- Click Add custom domain
- Enter:
seekersabodepl.com - Netlify will say “Check DNS configuration” — click it
- Netlify will show you options. Choose Netlify-managed DNS (simpler) if available, or follow the instructions for external DNS.
6b. In GoDaddy: Configure DNS
You have two options. Option A is recommended (cleaner, no redirects).
Option A — Netlify-managed DNS (use Netlify’s nameservers)
This means Netlify hosts your DNS entirely — no need to manage records in GoDaddy.
- In GoDaddy, go to My Products → Domains → seekersabodepl.com
- Click Manage DNS → Nameservers → Change
- Replace the GoDaddy nameservers with Netlify’s (Netlify shows you the exact 4 nameserver addresses in Domain management)
- Save
Option B — Keep DNS in GoDaddy, add records
| Type | Name | Value |
|---|---|---|
| A | @ | 75.2.60.5 |
| A | @ | 99.83.190.102 |
| CNAME | www | STAGING-URL.netlify.app (replace with your actual URL) |
- Save DNS changes
6c. Wait for DNS propagation
DNS changes take anywhere from 5 minutes to 48 hours (typically 1–2 hours).
# Check from your WSL terminal:
dig +short seekersabodepl.com
dig +short www.seekersabodepl.com
Expected:
seekersabodepl.com→75.2.60.5or99.83.190.102www.seekersabodepl.com→ the Netlify staging URL
You can also check dnschecker.org from a browser.
6d. Back in Netlify
- Once DNS resolves, Netlify will auto-verify the domain (usually within 15 minutes of propagation)
- Netlify provisions a Let’s Encrypt HTTPS certificate automatically (takes 1–5 minutes)
- Under Domain settings → set
seekersabodepl.comas the primary domain - Verify HTTPS works: visit
https://seekersabodepl.com
Step 7: Final Verification (Live Domain)
Once the domain resolves and HTTPS is active:
-
https://seekersabodepl.com— home page loads -
https://seekersabodepl.com/library/— library loads, search works -
https://seekersabodepl.com/philosophy/— domain page with featured entries -
https://seekersabodepl.com/sitemap.xml— valid sitemap (URLs now useseekersabodepl.com) -
https://seekersabodepl.com/robots.txt— robots.txt accessible - Any random path → custom 404 page
- Check Netlify Analytics (if enabled)
- Search engines can crawl — Google Search Console is optional
Step 8: Post-Launch
- Submit sitemap to Google Search Console — add property at search.google.com/search-console
- Submit sitemap to Bing Webmaster Tools
- Share on Substack (@nik52)
- Share on X (@monkabode)
- Share on Instagram (@monkabode)
- Share link with your research network
- Monitor Netlify analytics for traffic
- Begin editorial review of seed entries (see
/editorial/)
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
Build fails with pagefind: not found | npm install didn’t run or failed | Check the Deploy log; the build command includes npm install && npm run build — verify both steps succeeded |
Build fails with hugo: not found | Hugo version not set | Add HUGO_VERSION = "0.162.1" and HUGO_EXTENDED = "true" in Netlify’s Environment variables |
| Build fails with Node version error | Netlify’s Node.js version is too old | Add NODE_VERSION = "22" in Netlify’s Environment variables |
Staging URL shows seekersabodepl.com links | Wrong deploy context | Confirm you deployed from the staging branch, not main. If deploying from main, add [context.branch-deploy] to netlify.toml |
| Domain shows Netlify 404 | DNS not propagated yet | Wait 24h and check with dig; verify nameserver change took effect |
| HTTPS not working | Netlify needs time to provision Let’s Encrypt cert | Wait 15 minutes after DNS resolves |
| Search box does nothing | Pagefind index not built | Rebuild locally: npm run build and verify public/pagefind/ exists |
| Custom 404 not showing | Netlify needs public/404.html | Hugo generates this from layouts/404.html — verify it exists after build |
| Domain redirects to Netlify subdomain | Primary domain not set in Netlify | Under Domain settings → set seekersabodepl.com as primary |
Maintenance
Adding content
Create new .md files in content/library/{domain}/ following existing frontmatter. Then:
npm run build # rebuild
python3 scripts/qa_checks.py # verify
git add . && git commit -m "Add entry: TITLE"
git push
Promoting seed → reviewed
Follow the editorial guide at the editorial page or read content/editorial/_index.md.
Rebuilding after edits
npm run build && python3 scripts/qa_checks.py
Updating the staging branch
git checkout staging
git merge main
git push origin staging
Netlify auto-deploys on push.