feat(design): reader view polish + content refresh #11

Merged
lerko merged 10 commits from staging into dev 2026-05-31 22:29:03 +00:00
3 changed files with 26 additions and 18 deletions
Showing only changes of commit da61cbba5d - Show all commits
+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` },
]; ];
--- ---