Skip to content

LabSmithNet/labsmith-site

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

labsmith.net

Personal site and consulting presence for David Smith / LabSmith.net.

Live site: https://labsmith.net (after Cloudflare Pages cutover) Repo: https://github.com/LabSmithNet/labsmith-site

Stack

  • Framework: Astro 5 (static output)
  • Hosting: Cloudflare Pages (free tier)
  • Comments: Giscus on GitHub Discussions
  • Domain: labsmith.net (registered at Cloudflare)

Local dev

npm install
npm run dev

Opens on http://localhost:4321

Build

npm run build
npm run preview   # to test the production build locally

Outputs static files to dist/.

Project layout

labsmith-site/
├── public/                 static assets copied verbatim into dist/
│   ├── favicon.svg
│   └── images/
├── src/
│   ├── components/         reusable .astro components (StarForge, SiteHeader, Giscus, etc.)
│   ├── layouts/            page shells (BaseLayout, ArticleLayout)
│   ├── styles/             global.css with the LabSmith 7-stop palette
│   ├── content.config.ts   article collection schema (Astro 5 loader API)
│   ├── content/articles/   blog posts as markdown
│   └── pages/              routes
│       ├── index.astro         → /         (resume landing)
│       └── articles/
│           ├── index.astro     → /articles (post index)
│           └── [...slug].astro → /articles/<slug>
└── astro.config.mjs

Adding a new article

  1. Create src/content/articles/your-slug.md

  2. Add frontmatter matching the schema in src/content.config.ts:

    ---
    title: "Your Title"
    description: "One-line summary for index + meta."
    pubDate: 2026-05-01
    heroImage: "/images/your-hero.svg"   # optional
    tags: ["f5", "tls"]
    draft: false
    ---
  3. git add . && git commit -m "article: your title" && git push

  4. Cloudflare Pages deploys automatically.

Deploy

Cloudflare Pages watches main. Push to deploy.

Cloudflare Pages build settings:

  • Framework preset: Astro
  • Build command: npm run build
  • Build output directory: dist
  • Environment variables: NODE_VERSION=22

Giscus (comments)

Comments require a one-time setup:

  1. Create the GitHub repo (public) at https://github.com/LabSmithNet/labsmith-site
  2. In repo Settings → General → Features, enable Discussions
  3. Install the Giscus GitHub App: https://github.com/apps/giscus (grant access to this repo only)
  4. Visit https://giscus.app/ and fill in:
    • Repository: LabSmithNet/labsmith-site
    • Mapping: pathname
    • Category: Announcements (or create a "Comments" category)
    • Features: reactions on, metadata off, input position top
  5. Copy data-repo-id and data-category-id from the snippet giscus.app generates.
  6. Paste them into src/components/Giscus.astro where the TODO placeholders live.

Brand

LabSmith 7-stop green palette, wired as CSS variables in src/styles/global.css. Star Forge hexagram lives in src/components/StarForge.astro as inline SVG — scales crisply at any size. Canonical brand story: Star of David (name) → star topology → mesh topology → lab+smith = forge.

Canonical domain is labsmith.net. If .com appears anywhere in output, it is a bug.

About

labsmith.net — resume and articles. Astro on Cloudflare Pages.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors