Solanasis Website Build — Execution Plan & Preflight Checklist

Purpose: Take the AI-Native Website Building Guide v2 and turn it into an actionable execution plan that Claude Code can run end-to-end after you answer a set of clarifying questions and complete the preflight setup.


Guide Validation Summary

Your guide is solid and well-researched. Here’s what checked out and the one correction needed:

ClaimStatusNotes
Cloudflare acquired Astro (Jan 16, 2026)✅ ConfirmedPress release + Astro blog
Looka Astro theme exists for consulting/agencies✅ ConfirmedListed on astro.build/themes, purpose-built for corporate consulting
Astro 6 beta available✅ ConfirmedFirst beta shipped Jan 13, 2026; stable release “weeks away”
Claude Code Agent Teams (Opus 4.6, Feb 5, 2026)✅ ConfirmedTechCrunch + Anthropic official release
Claudable open-source project✅ Confirmedgithub.com/opactorai/Claudable, MIT license
Cloudflare free tier (unlimited static, 500 builds/mo)✅ ConfirmedOfficial pricing docs
Brevo free tier (300 emails/day)✅ Confirmedbrevo.com/pricing
Astroplate 1,300+ GitHub stars⚠️ CorrectionActually ~968 stars — still well-maintained, just update the number
Cloudflare Workers 100K daily requests (free)✅ ConfirmedStandard Workers free tier

One correction to make: Change “1,300+ GitHub stars” to “~970 GitHub stars” for Astroplate. Everything else is accurate.


How This Would Actually Work with Claude

Here’s the honest breakdown of what Claude Code can do autonomously vs. what requires your manual setup first.

What Claude Code Can Do Autonomously (After Preflight)

  1. Clone a theme repogit clone the Looka or Astroplate repo
  2. Customize all Astro components — rewrite content, apply brand colors, update layouts
  3. Create design-tokens.md — define your full brand system
  4. Create CLAUDE.md — set up the project’s AI coding conventions
  5. Build the contact form — write the Astro endpoint, Brevo integration, Turnstile widget
  6. Create the thank-you page and auto-reply email template
  7. Configure wrangler.toml — set up Cloudflare Workers/Pages deployment config
  8. Run npm install, npm run build, npm run dev — test locally
  9. Git add, commit, push — push to GitHub (if authenticated)
  10. Run wrangler deploy — deploy to Cloudflare (if authenticated)
  11. Create GitHub Actions workflows — set up CI/CD (Continuous Integration / Continuous Deployment) pipelines
  12. Create a Claude Code Skill file — package the “new client site” workflow as a reusable skill

What YOU Must Do Manually First (Preflight)

Claude Code cannot create accounts, log into dashboards, or generate API keys. These require browser-based human interaction:

  1. Create accounts on GitHub and Cloudflare (if you don’t have them) — you already have Brevo
  2. Generate API tokens from each platform’s dashboard
  3. Purchase/transfer a domain (or confirm you have one)
  4. Point domain DNS to Cloudflare nameservers
  5. Verify your domain with Brevo (SPF, DKIM, DMARC DNS records in Cloudflare — see security playbook for exact records)
  6. Create a newsletter contact list in Brevo and note the List ID
  7. Set up Cloudflare Turnstile — get site key + secret key from Cloudflare dashboard
  8. Authenticate the CLI tools — run gh auth login and wrangler login interactively (one-time)

Credential Management — How It Works

📄 Full details: See the companion document solanasis-credentials-security-playbook.md for the complete security architecture, step-by-step credential generation instructions, the verification runbook, contractor access model, credential rotation schedule, and incident response procedures.

Quick Summary

Credentials live in three tiers — local development, CI/CD, and production. They should NEVER appear in source code or git history.

TierWherePurposeExamples
Tier 1: Local Dev.env file (gitignored) or CLI loginRun dev server, test locally, deployBREVO_API_KEY, BREVO_LIST_ID, CLOUDFLARE_API_TOKEN, Turnstile keys
Tier 2: CI/CDGitHub Secrets (encrypted)Automated builds & deploys via GitHub ActionsCLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID
Tier 3: ProductionCloudflare Worker Secrets (encrypted)Contact form email + newsletter signup + spam validation in productionBREVO_API_KEY, BREVO_LIST_ID, TURNSTILE_SECRET_KEY
  • GitHub + Cloudflare: Use interactive CLI login (gh auth login + wrangler login) — Claude Code uses the authenticated tools without ever seeing raw tokens
  • Brevo + Turnstile: Store in a .env file (only these services need it — the CLIs can’t handle them)
  • Production: Set via npx wrangler secret put (encrypted on Cloudflare’s infrastructure)

🔥 Pro Tip: The security playbook includes the complete Brevo setup (contact form + newsletter signup), a Substack migration path for when you’re ready to move the newsletter, contractor access model, credential rotation schedule, and incident response procedures — essential reading before you onboard 1099 contractors.


Verification Steps — How to Confirm Claude Code Can Execute

📄 Full verification runbook: See the solanasis-credentials-security-playbook.md → “Verification Runbook” section for the complete copy-paste-able script that tests every credential and dependency.

Quick checks (run these before handing off to Claude Code):

gh auth status                              # ✓ Logged in to github.com
npx wrangler whoami                         # Shows account name + ID
node --version                              # v18+ required
echo $BREVO_API_KEY | head -c 7             # Should show: xkeysib
echo $BREVO_LIST_ID                         # Should show a number
echo $TURNSTILE_SITE_KEY | head -c 6        # Should show: 0x4AAA
dig solanasis.com NS +short                 # Shows *.ns.cloudflare.com

If all six pass, you’re ready to build.


Complete Preflight Checklist

Check off each item before handing this to Claude Code:

Accounts & Access

  • GitHub account created (github.com)
  • Cloudflare account created (dash.cloudflare.com)
  • Brevo account active (app.brevo.com) — you already have this
  • GitHub CLI (gh) installed locally
  • Cloudflare Wrangler CLI installed (npm install -g wrangler)
  • Node.js 18+ installed

Authentication

  • gh auth login completed successfully
  • wrangler login completed successfully (or CLOUDFLARE_API_TOKEN set)
  • gh auth status shows logged in
  • npx wrangler whoami shows your account

Domain & DNS

  • Domain purchased (solanasis.com or similar)
  • Domain DNS pointed to Cloudflare nameservers
  • Cloudflare shows domain as “Active”

Email (Contact Form + Newsletter)

  • Domain verified with Brevo (DNS records added in Cloudflare)
    • SPF record (include:sendinblue.com)
    • DKIM record (Brevo provides the value)
    • Brevo verification code (TXT record)
    • DMARC record (optional but recommended)
  • Brevo sender verified (info@solanasis.com)
  • Brevo API key generated and saved securely
  • Newsletter contact list created in Brevo (note the List ID)
  • Test email sent successfully via Brevo API

Spam Protection

  • Cloudflare Turnstile widget created in Cloudflare dashboard
  • Turnstile site key saved
  • Turnstile secret key saved

Credentials File

  • .env file created in project root with all keys
  • .env added to .gitignore

Content Preparation

  • Service descriptions finalized (or drafts ready for Claude to refine)
  • Team member names, titles, and bios (or placeholder strategy decided)
  • Testimonials (real or placeholder strategy decided)
  • Company tagline / hero headline decided
  • Logo file ready (PNG/SVG)
  • Headshot photos ready (or placeholder strategy decided)
  • Contact email address decided (e.g., info@solanasis.com)
  • Social media URLs ready (LinkedIn, etc.)

Clarifying Questions

Please answer these so we can nail the execution. I’ve provided recommended answers based on what I know about Solanasis — pick or modify as needed.


Q1: Which Astro theme should we start from?

Why this matters: The theme determines the starting design, page structure, and how much customization Claude Code needs to do. Starting from a polished theme saves hours vs. building from scratch.

  • A) Looka (Recommended) — Purpose-built for consulting/agency firms. Includes services pages, team pages, testimonials, blog, portfolio/case studies, multilingual support. Config-driven customization via config.toml means less code changes needed.
  • B) Astroplate — More generic/flexible starter. Good if you want a modern SaaS-style look rather than a traditional consulting firm aesthetic. ~970 GitHub stars, well-maintained.
  • C) Bigspring — SaaS & marketing focused. Good for a startup-feeling brand rather than established consulting firm.
  • D) Build from scratch — Maximum flexibility but 3-5x more time. Only if you have a very specific vision none of the themes match.

Notes:

[Your additional notes here]

Q2: What is your domain situation?

Why this matters: DNS configuration is a prerequisite for deployment, email verification (Brevo), and SSL certificates. If the domain isn’t on Cloudflare yet, that’s a preflight step.

  • A) I have solanasis.com and it’s already on Cloudflare (Recommended path)
  • B) I have solanasis.com but it’s on a different DNS provider — We’ll need to transfer DNS to Cloudflare (free, ~30 min setup)
  • C) I haven’t purchased a domain yet — We’ll need to buy one first (Cloudflare Registrar is cheapest, at-cost pricing)
  • D) I want to use a different domain — specify below

Notes:

[Your domain name and current DNS provider, if known]

Q3: Do you already have GitHub, Cloudflare, and Brevo accounts?

Why this matters: Account creation must be done manually by you (Claude Code cannot create accounts). Knowing what exists tells us how much preflight setup remains.

  • A) I have all three accounts already (Recommended — you already have Brevo)
  • B) I have GitHub and Cloudflare but not Brevo — Brevo signup takes 2 minutes, then domain verification adds 5 minutes of DNS records
  • C) I have GitHub only — We’ll need Cloudflare + Brevo accounts created
  • D) I need to create all of them

Notes:

[List which accounts you have]

Q4: What content is ready vs. needs to be created?

Why this matters: Claude Code can generate placeholder content and refine it later, or it can use final content you provide. Having real content from day one makes the site production-ready faster.

  • A) I have service descriptions, team bios, and a logo ready — Claude Code customizes the theme with real content from the start
  • B) I have a logo and rough service descriptions but need Claude to help refine everything — Claude Code builds with draft content, we iterate
  • C) I have almost nothing — Claude should generate everything (Recommended for speed) — Claude Code generates professional placeholder content based on what it knows about Solanasis, you refine later
  • D) I want to provide a detailed content brief first — You’ll create a content document, then Claude Code uses it

Notes:

[What content assets do you have ready? Logo? Photos? Tagline?]

Q5: Contact form — which approach?

Why this matters: Since you already have Brevo configured, the recommended approach is Cloudflare Workers + Brevo + Turnstile. This gives you zero-cost email delivery, a built-in CRM (every form submission becomes a Brevo contact), and newsletter signup in the same system. Formspree is simpler but adds a separate tool.

  • A) Workers + Brevo + Turnstile (Recommended) — Zero cost, auto-reply emails, built-in CRM contact tracking, newsletter signup in the same system. Uses your existing Brevo account.
  • B) Formspree (fastest setup) — Create a Formspree account, get a form ID, done. 50 free submissions/month. Less control, separate system from newsletter.
  • C) Workers + Brevo + Turnstile for Solanasis, Formspree for client sites — Best of both. You get the full integration on your own site, use the simple option for clients.
  • D) Start with Formspree now, upgrade to Workers + Brevo later — Get the site live faster, add the custom form backend in a second pass.

Notes:

[Any preference on contact form complexity?]

Q6: Do you want Claude Code to run locally (CLI) or via Claude Code Web?

Why this matters: This determines the execution environment. Local CLI gives Claude Code full access to your file system, installed tools (wrangler, gh), and .env credentials. Web-based Claude Code runs in Anthropic’s cloud sandbox and can only interact with GitHub repos.

  • A) Local CLI on my machine (Recommended) — Full access to wrangler, gh, .env file, local preview server. You run Claude Code in your terminal. Best for the initial build.
  • B) Claude Code Web (claude.ai) — No local setup needed, but limited to GitHub operations. Can’t run wrangler deploy directly. Better for edits/iterations after initial deployment.
  • C) Both — CLI for the initial build, Web for ongoing edits — Best of both worlds. Build and deploy locally, then iterate from your phone/browser.

Notes:

[What's your comfort level with the terminal?]

Q7: Team photos and headshots strategy?

Why this matters: The team page is a major credibility signal. Real photos are ideal but not always available for a new firm. We need a strategy for launch.

  • A) Use professional placeholder images for now, swap in real photos later (Recommended) — Claude Code uses high-quality stock-style placeholder images from a service like UI Faces or generated placeholders. You replace them when you have real headshots.
  • B) I have real headshots ready to use
  • C) Skip the team page entirely for now — Launch without a team page, add it later when the team grows.
  • D) Use the AI image generation approach — You described documentary-style photo preferences. We could generate team-style images with AI, though this has obvious authenticity concerns for a consulting firm.

Notes:

[How many team members should be listed?]

Q8: What pages do you want on the site at launch?

Why this matters: Defines the scope of the initial build. More pages = more content needed and more build time, but a more complete site at launch.

Select all that apply:

  • Home (hero, services overview, trust signals, CTA)
  • About (company story, mission, values)
  • Services (detailed page for each service offering)
  • Team (team members with bios)
  • Blog / Insights (even if just 1-2 starter posts)
  • Case Studies / Portfolio (even if placeholder)
  • Contact (form + office location/email)
  • Newsletter (dedicated signup page with value proposition)
  • Privacy Policy
  • Terms of Service

Notes:

[Any pages not listed above that you want?]

Q9: Brand colors — confirm or change?

Why this matters: The guide suggests navy blue (#1B2A4A) primary and slate gray (#64748B) secondary. These are solid consulting-firm colors, but you may have existing brand colors from your logo or other materials.

  • A) Use the suggested colors — navy (#1B2A4A) + slate gray (#64748B) (Recommended) — Classic professional consulting look. Conveys trust, authority, security (perfect for cybersecurity positioning).
  • B) I have specific brand colors already — Provide hex codes below
  • C) I want Claude to suggest a color palette based on the Solanasis brand — Claude Code will analyze what conveys “operational resilience + cybersecurity” and propose options
  • D) Match the colors from my existing logo

Notes:

[Hex codes if you have them, or describe the vibe you want]

Q10: Timeline and approach?

Why this matters: We can do this in one focused session (2-4 hours) or break it into phases. Phased approach lets you review and provide feedback between stages.

  • A) Phased approach (Recommended):
    • Phase 1: Preflight setup + theme clone + brand customization (1-2 hours)
    • Phase 2: Content population + contact form setup (1-2 hours)
    • Phase 3: Deployment + DNS + testing + go-live (30-60 min)
  • B) All at once — Marathon session, get it live in one sitting
  • C) MVP first, then iterate — Get the absolute minimum live (home + contact + 1 service page), then add pages over multiple sessions
  • D) I want to do the preflight setup first, then come back with credentials ready

Notes:

[Any deadline for going live?]

What Happens After You Answer These Questions

Here’s the exact sequence Claude Code would follow:

Step 1: Verify Environment (2 min)

Claude Code runs the verification commands above to confirm all tools and credentials are working.

Step 2: Clone & Scaffold (5 min)

git clone [theme-repo] solanasis-site
cd solanasis-site
npm install

Step 3: Create Foundation Files (10 min)

  • Generate design-tokens.md with your brand colors, fonts, spacing
  • Generate CLAUDE.md with project conventions and standard requirements
  • Update .gitignore to exclude .env and other sensitive files

Step 4: Customize Theme (30-60 min)

  • Rewrite all placeholder content with Solanasis content
  • Apply brand colors via Tailwind config
  • Customize page layouts, navigation, footer
  • Add/remove pages based on your answer to Q8

Step 5: Build Contact Form + Newsletter Signup (30-45 min)

  • Install @astrojs/cloudflare adapter
  • Create the contact form API endpoint (/api/send-email)
  • Integrate Brevo for email delivery (notification to you + auto-reply to submitter)
  • Create the newsletter signup API endpoint (/api/newsletter-subscribe)
  • Integrate Brevo Contacts API for subscriber management
  • Add Turnstile spam protection to both forms
  • Create the thank-you page
  • Set up auto-reply email template

Step 6: Local Testing (10 min)

npm run build   # Verify no build errors
npm run preview # Visual review at localhost:4321

Step 7: Deploy (10 min)

# Initialize GitHub repo
gh repo create solanasis-site --private --source=. --push
 
# Deploy to Cloudflare
npx wrangler pages project create solanasis-site
npx wrangler pages deploy dist/
 
# Set production secrets
npx wrangler secret put BREVO_API_KEY
npx wrangler secret put BREVO_LIST_ID
npx wrangler secret put TURNSTILE_SECRET_KEY

Step 8: DNS & Go-Live (5 min)

  • Add custom domain in Cloudflare Pages dashboard (manual step)
  • Verify SSL certificate is issued
  • Test contact form end-to-end (submit → email received → auto-reply sent)

Step 9: Create Reusable Assets (15 min)

  • Package the workflow as a Claude Code Skill file for future client sites
  • Document the SOP (Standard Operating Procedure) for 1099 contractors

Additional Suggestions Beyond the Guide

1. Add Analytics from Day One

The Looka theme supports Google Analytics, Plausible, and Umami out of the box. Recommendation: Plausible (privacy-friendly, no cookie banner needed, $9/mo) or Umami (self-hosted, free). Add this to CLAUDE.md as a standard requirement.

2. Add SEO Foundations

Claude Code should generate:

  • robots.txt with proper sitemap reference
  • sitemap.xml (Astro generates this with @astrojs/sitemap)
  • Open Graph meta tags for every page (social sharing previews)
  • Structured data (JSON-LD) for local business schema — critical for “cybersecurity consulting Boulder CO” searches

3. Performance Budget

Add to CLAUDE.md: “All pages must score 90+ on Google Lighthouse for Performance, Accessibility, Best Practices, and SEO.” This gives Claude Code a measurable quality gate.

4. Error Pages

Create custom 404 and 500 error pages that match the brand. These are often forgotten but make a big difference when someone hits a dead link.

5. Favicon & PWA Manifest

Generate proper favicons at all required sizes (16x16, 32x32, apple-touch-icon, etc.) and a basic web manifest. Small detail, big professionalism signal.

6. Email Warm-Up for Brevo

If this is a new domain, your first emails from Brevo may hit spam filters. Send a few test emails to your personal accounts first and mark them “not spam” to build sender reputation. Since you already have Brevo configured, check your current sender reputation in the Brevo dashboard under StatisticsDeliverability.

6b. Newsletter as a Growth Lever

Your newsletter signup should appear in at least three places: the site footer (on every page), the blog sidebar (or end of each post), and a dedicated /newsletter page. Each placement should have a clear value proposition — not just “subscribe to our newsletter” but something like “Get weekly operational resilience insights for growing organizations.” See the security playbook for the full Brevo → Substack migration path when you’re ready to scale the content side.

7. Backup the CLAUDE.md Pattern

The design-tokens.md + CLAUDE.md approach is excellent. Consider also adding:

  • content-style-guide.md — tone of voice, writing style, terminology (e.g., always say “operational resilience” not just “IT support”)
  • seo-keywords.md — target keywords for each page
  • client-template.md — a fill-in-the-blank template for spinning up client sites

8. Git Branching Strategy

Recommend:

  • main branch = production (auto-deploys to Cloudflare)
  • staging branch = preview (separate Cloudflare Pages environment)
  • Feature branches for changes → PR → merge to main

This gives you a safety net so Claude Code changes don’t go live until you review them.


🔥 Pro Tip: The most important thing to understand about this workflow is that Claude Code is not magic — it’s a very capable code editor that follows instructions. The quality of the output is directly proportional to the quality of your CLAUDE.md and design-tokens.md files. Invest time in those two files and every future site build becomes a copy-paste-customize operation. That’s your scaling moat — your 1099 contractors don’t need to be developers, they just need to prompt Claude Code, and the CLAUDE.md ensures the output is always on-brand and up to standard.


Answer the clarifying questions above, complete the preflight checklist, and we’re ready to build.