SSG selection & scaffold #5

Closed
opened 2026-04-29 00:33:41 +00:00 by sscoble · 0 comments
Owner

Decision: Astro

Evaluation

SSG Score Why
Astro ★★★★★ Content-first by design (MDX, collections, RSS). Island architecture - blog static, consulting pages can have interactive CTA islands. Great Markdown/MDX support. No client JS by default (fast, SEO). One config. Excellent deployment ecosystem (Vercel, Netlify, Cloudflare, static export).
Hugo ★★★☆☆ Faster build, but Go templating is painful. Less flexible for interactive elements.
11ty ★★★★☆ More flexible but more config. Astro wins on DX for content site with occasional interactivity.
Next.js ★★☆☆☆ Overkill for mostly-static brand site. Heavy dependency. Better for app-like experiences.

Scaffold

# Create the Astro project
npm create astro@latest brand-site -- --template basics
cd brand-site

# Add MDX support
npx astro add mdx

# Add RSS support
npm install @astrojs/rss

# Add sitemap
npx astro add sitemap

Directory structure

brand-site/
  src/
    pages/
      index.astro           # Home page
      consulting.astro      # Consulting offers
      fractional.astro      # Fractional retainer
      about.astro           # About page
      books.astro           # Books page
      speaking.astro        # Speaking page
      contact.astro         # Contact page
      blog/
        index.astro         # Blog listing
        [...slug].astro     # Individual posts
    layouts/
      BaseLayout.astro      # Site chrome (header, nav, footer)
      BlogPost.astro        # Blog post layout
    components/
      Header.astro          # Navigation
      Footer.astro          # Footer
      PackageCard.astro     # Consulting package card
      BookCard.astro        # Book display card
      CTASection.astro      # Call-to-action block
      FeaturedPosts.astro   # Blog featured section
    content/
      blog/                 # MDX blog posts (pulled from articles repo)
        cultivating/
        mentoring/
        human-side-of-ai/
    styles/
      global.css            # Base styles / design tokens
  public/
    images/                 # Photos, headshots, book covers
  astro.config.mjs
  package.json

Content mapping

sscoble/articles drafts -> src/content/blog/ with pillar-based subdirectories:

  • cultivating/ -> Cultivation pillar posts
  • mentoring/ -> Mentoring pillar posts
  • human-side-of-ai/ -> AI human-side pillar posts

Deployment

  • MVP: Deploy to Vercel (free tier, auto-deploy from Forgejo via git push)
  • Alternative: Static export to Storj (if self-hosting preferred)
  • Domain: scott.scoble.me or similar

Acceptance

  • Astro project created and building
  • Dev server runs locally
  • Directory structure matches plan
  • MDX configured
  • RSS and sitemap configured
  • Pushed to Forgejo repo

Label: infrastructure
Milestone: MVP

## Decision: Astro ### Evaluation | SSG | Score | Why | |-----|-------|-----| | **Astro** | ★★★★★ | Content-first by design (MDX, collections, RSS). Island architecture - blog static, consulting pages can have interactive CTA islands. Great Markdown/MDX support. No client JS by default (fast, SEO). One config. Excellent deployment ecosystem (Vercel, Netlify, Cloudflare, static export). | | Hugo | ★★★☆☆ | Faster build, but Go templating is painful. Less flexible for interactive elements. | | 11ty | ★★★★☆ | More flexible but more config. Astro wins on DX for content site with occasional interactivity. | | Next.js | ★★☆☆☆ | Overkill for mostly-static brand site. Heavy dependency. Better for app-like experiences. | ### Scaffold ```bash # Create the Astro project npm create astro@latest brand-site -- --template basics cd brand-site # Add MDX support npx astro add mdx # Add RSS support npm install @astrojs/rss # Add sitemap npx astro add sitemap ``` ### Directory structure ``` brand-site/ src/ pages/ index.astro # Home page consulting.astro # Consulting offers fractional.astro # Fractional retainer about.astro # About page books.astro # Books page speaking.astro # Speaking page contact.astro # Contact page blog/ index.astro # Blog listing [...slug].astro # Individual posts layouts/ BaseLayout.astro # Site chrome (header, nav, footer) BlogPost.astro # Blog post layout components/ Header.astro # Navigation Footer.astro # Footer PackageCard.astro # Consulting package card BookCard.astro # Book display card CTASection.astro # Call-to-action block FeaturedPosts.astro # Blog featured section content/ blog/ # MDX blog posts (pulled from articles repo) cultivating/ mentoring/ human-side-of-ai/ styles/ global.css # Base styles / design tokens public/ images/ # Photos, headshots, book covers astro.config.mjs package.json ``` ### Content mapping sscoble/articles drafts -> src/content/blog/ with pillar-based subdirectories: - cultivating/ -> Cultivation pillar posts - mentoring/ -> Mentoring pillar posts - human-side-of-ai/ -> AI human-side pillar posts ### Deployment - **MVP**: Deploy to Vercel (free tier, auto-deploy from Forgejo via git push) - **Alternative**: Static export to Storj (if self-hosting preferred) - **Domain**: scott.scoble.me or similar ## Acceptance - [ ] Astro project created and building - [ ] Dev server runs locally - [ ] Directory structure matches plan - [ ] MDX configured - [ ] RSS and sitemap configured - [ ] Pushed to Forgejo repo Label: infrastructure Milestone: MVP
sscoble added this to the 📋 MVP milestone 2026-04-29 00:33:41 +00:00
sscoble added the
infrastructure
label 2026-04-29 00:33:41 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sscoble/brand-site#5
No description provided.