feat(content): add uptop, reorder projects, archive open-pact, fix VLAN count
Build and Deploy / deploy (push) Successful in 1m18s

Add uptop (uptime monitoring TUI) as featured project. Reorder nib
above homelab, update nib stack and URL. Move open-pact to archive.
Update portfolio description (Nginx → Caddy). Fix VLAN count 8 → 7.
Trim Hero bio.
This commit was merged in pull request #11.
This commit is contained in:
2026-05-31 18:17:44 -04:00
parent 9037461d27
commit da61cbba5d
3 changed files with 26 additions and 18 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ import { services } from "@/data/services";
<p class="text-[var(--color-text-label)] leading-relaxed mb-1lh"> <p class="text-[var(--color-text-label)] leading-relaxed mb-1lh">
Homelab runs {services.length} services across segmented VLANs — pfSense, Authentik SSO, Homelab runs {services.length} services across segmented VLANs — pfSense, Authentik SSO,
full observability stack. Write software too: mobile apps, Go backends, open full observability stack. Write software too: mobile apps, Go backends, open
protocols. Daily drivers, all of it. protocols.
</p> </p>
<nav class="flex flex-wrap items-center gap-x-2ch gap-y-half-lh text-[var(--color-text-label)]"> <nav class="flex flex-wrap items-center gap-x-2ch gap-y-half-lh text-[var(--color-text-label)]">
+24 -16
View File
@@ -13,6 +13,25 @@ export type Project = {
export const projects: Project[] = [ export const projects: Project[] = [
// --- Featured --- // --- Featured ---
{
slug: "uptop",
title: "uptop",
description: "Live uptime monitoring dashboard for your terminal. SSH-accessible. HTTP, ping, TCP, DNS, push checks with alerts, clustering, and Prometheus metrics.",
tags: ["Go", "Bubbletea", "Monitoring", "Uptime"],
githubUrl: "https://github.com/lerkolabs/uptop",
tier: "featured",
year: 2026,
},
{
slug: "nib",
title: "nib",
description:
"Capture-first personal journal built with Go + SQLite. Currently developing in private when I have spare time.",
tags: ["Go", "JavaScript", "SQLite", "Stream-of-Thought"],
githubUrl: "https://gitea.lerkolabs.com/lerko/nib-v1",
tier: "featured",
year: 2026,
},
{ {
slug: "homelab", slug: "homelab",
title: "homelab", title: "homelab",
@@ -27,33 +46,22 @@ export const projects: Project[] = [
slug: "portfolio", slug: "portfolio",
title: "portfolio", title: "portfolio",
description: description:
"Astro static site, self-hosted in a DMZ LXC behind Nginx, deployed via Gitea Actions CI.", "Astro static site, self-hosted in a DMZ LXC behind Caddy, deployed via Gitea Actions CI.",
tags: ["Astro", "Dockerfile", "Tailwind", "nginx", "Caddy"], tags: ["Astro", "Typescript", "Dockerfile", "Caddy"],
githubUrl: "https://gitea.lerkolabs.com/lerko/portfolio", githubUrl: "https://gitea.lerkolabs.com/lerko/portfolio",
tier: "featured", tier: "featured",
year: 2021, year: 2021,
}, },
{ // --- Archive ---
slug: "nib",
title: "nib",
description:
"Capture-first personal journal built with Go + React + SQLite. Currently developing in private when I have spare time.",
tags: ["Go", "React", "SQLite", "Journal", "Stream-of-Thought"],
githubUrl: "https://github.com/lerko96/nib",
tier: "featured",
year: 2026,
},
{ {
slug: "open-pact", slug: "open-pact",
title: "open-pact", title: "open-pact",
description: description: "Open protocol for AI agent identity, delegation, and portable memory. Ed25519 keypair identity, signed delegation",
"Open protocol for AI agent identity, delegation, and portable memory. Ed25519 keypair identity, signed delegation warrants, portable signed memory facts. No central registry.",
tags: ["TypeScript", "Ed25519", "DID", "npm", "CC0"], tags: ["TypeScript", "Ed25519", "DID", "npm", "CC0"],
githubUrl: "https://github.com/lerko96/open-pact", githubUrl: "https://github.com/lerko96/open-pact",
tier: "featured", tier: "archive",
year: 2026, year: 2026,
}, },
// --- Archive ---
{ {
slug: "helm", slug: "helm",
title: "helm", title: "helm",
+1 -1
View File
@@ -12,7 +12,7 @@ import { services, categoryOrder, categoryLabels } from "@/data/services";
const glanceStats = [ const glanceStats = [
{ label: "Hypervisor", value: "Proxmox VE" }, { label: "Hypervisor", value: "Proxmox VE" },
{ label: "Firewall", value: "pfSense (Netgate 1100)" }, { label: "Firewall", value: "pfSense (Netgate 1100)" },
{ label: "Network", value: "8 VLANs, default deny, managed switching" }, { label: "Network", value: "7 VLANs, default deny, managed switching" },
{ label: "Services", value: `${services.length} self-hosted across ${categoryOrder.length} categories` }, { label: "Services", value: `${services.length} self-hosted across ${categoryOrder.length} categories` },
]; ];
--- ---