Portfolio / sysadmindoc.github.io
GUIDE

sysadmindoc.github.io

Portfolio & project showcase

HTMLGuide
Delivery
Source-first
Browse code, README, and release notes on GitHub.
Primary lane
HTML
Guide category
Freshness
Updated Apr 26, 2026
Latest release
v0.13.1
Published Apr 26, 2026

Preview

Using the generated project card as a clean fallback until a live capture is available.

sysadmindoc.github.io card

Source at github.com/SysAdminDoc/sysadmindoc.github.io.

README

Cached at build time, cleaned up for in-site reading, and linked back to the canonical GitHub source.

sysadmindoc.github.io

![Version](https://img.shields.io/badge/version-0.13.0-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Platform](https://img.shields.io/badge/platform-GitHub%20Pages-black) ![Built with Astro](https://img.shields.io/badge/built%20with-Astro%205-ff5d01)

Personal portfolio and project showcase at sysadmindoc.github.io.

Stack

  • Astro 5 — static site generator with focused client-side enhancements for the homepage experience
  • TypeScript data layer (src/data/projects.ts)
  • Content collections: featured (9), live apps (22), catalog (138), skills (8)
  • Build-time GitHub API — stars, repo metadata, release summaries, and cached READMEs
  • GitHub Pages + GH Actions — scheduled data refresh, type checking, build, and deploy

Develop

npm install
npm run fetch-stars   # optional: refresh star cache from GitHub
npm run check         # Astro + TypeScript validation
npm run dev           # http://localhost:4321
npm run build         # output to dist/
npm run preview       # serve dist/

npm run fetch-stars works best with GITHUB_TOKEN set; without it, local runs preserve the existing README cache instead of exhausting the anonymous GitHub rate limit.

Edit content

All project entries live in src/data/projects.ts. Add an entry → npm run build → deploy. No hardcoded HTML.

  • Featured: show on the bento grid at the top
  • Live Apps: for GitHub Pages demos
  • Catalog: full searchable repo list (categories: ps|py|web|ext|kt|sec|media|cs|guide)
  • Skills: animated ring charts in the Stack section

Category filter counts auto-compute from the catalog array.

Deploy

Pushes to main trigger .github/workflows/deploy.yml which:

  1. Refreshes generated GitHub data
  2. Runs npm run check
  3. Builds the Astro site
  4. Publishes to GitHub Pages

A cron also runs daily to keep the generated GitHub data fresh without needing a push.

Layout

src/
├── components/      # cards, tag cloud, dividers, greatest-hits modules
├── data/
│   ├── types.ts     # TypeScript schemas
│   ├── projects.ts  # all content (EDIT THIS)
│   └── _*.json      # generated GitHub cache files (gitignored)
├── layouts/Base.astro
├── pages/
│   ├── index.astro
│   ├── now.astro
│   ├── releases.astro
│   ├── rss.xml.ts
│   ├── lang/[slug].astro
│   ├── og/[slug].png.ts
│   └── projects/[slug].astro
└── styles/global.css
public/
├── manifest.json
├── robots.txt
├── sw.js
├── screenshots/      # captured live-app thumbnails
└── scripts/          # theme.js, main.js, cmdk.js
scripts/
├── fetch-stars.mjs        # GitHub data refresh (build-time)
├── capture-screenshots.mjs
└── generate-data.mjs      # one-off migration helper
legacy.html           # backup of pre-Astro single-file site

Roadmap

See ROADMAP.md for planned work — Tier A/B/C ideas, tech debt, and already-shipped releases.

License

MIT — see LICENSE.

Read on GitHub → github.com/SysAdminDoc/sysadmindoc.github.io

Recent Releases

Latest tagged notes pulled from GitHub release history for this project.

  • v0.13.1

    **Catalog refresh — add 12 missing public repos.** · Added to `src/data/projects.ts`: · - **C# / Desktop**: MyPortfolio, LocalChromeStore, LocalDesktopStore, TeamStation, Images

  • v0.8.0

    Project detail pages now render each repo's README at build time, show up to 5 recent releases inline, display inferred tech-stack chips (language + category + tags), and rank related projects by stars × push freshness.

  • v0.7.0

    Three new stream-of-output surfaces. · - **`/releases`** — chronological, grouped-by-month stream of releases across my 40 most-recently-pushed repos. Auto-refreshed on the daily cron. Shows tag, date, first 3 lines of r

  • v0.6.0

    Stop listing projects, start telling the story. · **New surfaces** · - **★ Greatest Hits** — 8 curated repos above Featured, each with a why-it-matters sentence.

  • v0.5.0

    **Rich media + power-user polish.** · - **Per-project OG cards** — 139 unique 1200×630 PNGs generated at build via [satori](https://github.com/vercel/satori) + [@resvg/resvg-js](https://github.com/yisibl/resvg-js). Each