Files
portfolio/README.md
lerko96 05a32492ac
All checks were successful
Build and Deploy / deploy (push) Successful in 1m0s
rebuild portfolio: Next.js 16, React 19, Tailwind v4, homelab page, CI/CD
2026-04-12 18:52:54 -04:00

1.8 KiB

lerko96 portfolio

Personal portfolio site. Live at lerkolabs.com — self-hosted, deployed and maintained through my own operation.

Source lives on my Gitea at gitea.lerkolabs.com. GitHub is a backup mirror, not the primary.

Stack: Next.js 16 · React 19 · TypeScript · Tailwind v4


Branches

  • dev — source code, all work happens here
  • master — built output only; what GitHub Pages serves for the backup mirror. don't touch this manually.

Commands

npm run dev      # dev server at localhost:3000
npm run build    # static export into out/
npm run deploy   # build + push out/ to master (GitHub mirror)

How it deploys

npm run deploy runs predeploy (build) then pushes the out/ directory to master via gh-pages. That's what feeds the GitHub Pages backup at lerko96.com.

postbuild drops out/.nojekyll so GitHub Pages doesn't ignore _next/ assets.

Custom domain is in public/CNAME — gets copied into out/ on build.


Project layout

src/
  app/
    layout.tsx          # root layout, fonts, ThemeProvider
    page.tsx            # home: hero, skills, project cards
    homelab/page.tsx    # homelab page: VLANs, services, ADRs
    archive/page.tsx    # older projects grid
    globals.css         # full design system (Tailwind v4 CSS-first, all tokens here)
  components/           # Nav, Footer, Hero, ThemeScript, etc.
  context/
    ThemeContext.tsx     # dark mode provider + useTheme hook
  data/
    projects.ts         # all projects, featured + archive split
    services.ts         # homelab services with categories
public/
  CNAME                 # www.lerko96.com

Tailwind v4 is CSS-first — no tailwind.config.ts. All custom tokens live in globals.css under @theme {}.