M2: content collections — case studies, blog, RSS, tags, sitemap

Projects + blog as schema-validated content collections; structured case
studies (problem/design/outcome), blog with tag pages, reading time, RSS
feed (drafts excluded), sitemap, and Shiki dual-theme code highlighting.
This commit is contained in:
2026-06-17 16:56:46 +10:00
parent 720d579386
commit 22f482d89a
26 changed files with 1139 additions and 105 deletions
-82
View File
@@ -1,82 +0,0 @@
// Featured project cards for the homepage + the basic /projects index (M1).
// In M2 these become full case-study Content Collections at src/content/projects/.
// Keep `slug` stable so the M2 migration keeps the same URLs.
export type Project = {
slug: string;
title: string;
// One-line "so what" outcome — the most important field.
outcome: string;
summary: string;
role: string;
period: string;
stack: string[];
featured: boolean;
// Set true in M2 when /projects/[slug] case studies exist.
hasCaseStudy?: boolean;
};
export const projects: Project[] = [
{
slug: "edge-ai-platform",
title: "Single-Touch Edge AI Platform",
outcome:
"Turned a high-level edge-AI design into a single-press deployment running on Kubernetes at the store edge.",
summary:
"Store-edge Kubernetes running GPU-backed AI workloads, deployed from one command. High-level designs become real, problem-solving deployments via CD pipelines — with GPU readiness probing and pod-lifecycle watchdogs so inference never starts before the hardware is ready.",
role: "Infrastructure / DevOps Engineer · Woolworths",
period: "2025 Present",
stack: ["Kubernetes", "Edge", "NVIDIA GPU", "CD pipelines", "Helm", "Python"],
featured: true,
},
{
slug: "self-hosted-ai-homelab",
title: "Self-Hosted AI & Homelab Platform",
outcome:
"A production-grade homelab — GitOps from bare metal to local AI, and the platform that serves this very site.",
summary:
"Proxmox with PCIe passthrough under single-node Talos and OpenShift clusters, all driven by ArgoCD GitOps. Local hosted AI on a Blackwell GPU, split-horizon DNS (Pi-hole), VPN with 2FA/SSO, Prometheus/Grafana observability, ZFS storage, and NAS-backed restic backups. Optimising, securing and learning in the open.",
role: "Owner / Operator",
period: "Ongoing",
stack: ["Talos", "OpenShift", "ArgoCD", "Proxmox", "Local LLM", "Cloudflare Tunnel"],
featured: true,
},
{
slug: "iac-fleet-automation",
title: "IaC Fleet Automation",
outcome:
"Stood up identical edge sites from code — every store comes up the same way, every time.",
summary:
"Ansible/AWX playbooks wired through a single source-of-truth pipeline: GPU operator install, templated network attachments, container image pre-pull, and secrets delivered at deploy time. Air-gapped registry workflows mirror images across ACR and NVCR so disconnected edge sites still build.",
role: "Automation Engineer",
period: "2025 Present",
stack: ["Ansible", "AWX", "GitOps", "ACR / NVCR", "Image pre-pull", "Secrets mgmt"],
featured: true,
},
{
slug: "gpu-as-code",
title: "GPU-as-Code on the Edge",
outcome:
"Brought GPUs online as code — passthrough, readiness-gated, and reproducible across the fleet.",
summary:
"GPU passthrough configured through ESXi via code with end-state manifests and Helm charts, paired with Bash/Shell readiness probes and Kubernetes watchdogs. DCGM-exporter feeds GPU and container-workload health into Prometheus and AWX job-level reporting.",
role: "Infrastructure / DevOps Engineer",
period: "2025 Present",
stack: ["GPU passthrough", "ESXi", "DCGM Exporter", "Prometheus", "Bash", "Watchdogs"],
featured: false,
},
{
slug: "global-infra-modernisation",
title: "Global Infrastructure Modernisation",
outcome:
"Modernised enterprise infrastructure at scale — ~1,000 VMs, segmented networks, multi-region cloud migration.",
summary:
"Across global IT roles: managed a ~1,000-VM VMware estate, re-segmented flat sites into isolated VLAN ranges with SD-WAN and Aruba ClearPass, upgraded Palo Alto / FortiGate firewalls, and migrated workloads to Azure and Microsoft 365 — including ERP hardware refresh, DR, and PBX-to-VoIP.",
role: "Infrastructure Engineer · Virtus Health / Linde",
period: "2019 2025",
stack: ["VMware", "Azure", "SD-WAN", "Aruba ClearPass", "FortiGate", "Microsoft 365"],
featured: false,
},
];
export const featuredProjects = projects.filter((p) => p.featured);