Skip to content
Back to Projects
PersonalActive

Developer Portfolio

Not just a portfolio — a content engine. Built with Next.js App Router, TypeScript, and Tailwind CSS 4. Content is managed in Markdown and JSON, with a build-time content index for fast listing pages at any scale. The full system includes a self-hosted n8n publishing pipeline on a Hetzner VPS, Satori-based slide generation for social carousels, Pagefind search, dynamic PDF CV generation via @react-pdf/renderer, and a Telegram bot as the control panel. The portfolio itself is the proof of concept for everything described on it.

CreatorStarted Mar 20250 stars0 forks

// Tech Stack

Next.jsTypeScriptTailwind CSSMarkdownPagefindn8nSatorisharpCloudflare R2VercelGitHub Actions

Key Features

  • CLI/terminal aesthetic — dark theme, monospaced fonts, minimal UI
  • Build-time content index — fast listing pages from Markdown at any scale
  • Hybrid SSG with generateStaticParams and on-demand caching for older posts
  • Pagefind search with dev-mode fallback API route
  • Dynamic tailored CV generation via @react-pdf/renderer
  • n8n publishing pipeline — QA agent, Telegram approval gate, social posting
  • Satori + sharp slide generation for Instagram and LinkedIn carousels
  • Real GitHub and WakaTime stats via live API

Challenges Faced

  • Satori partial CSS gradient support — composited gradient as PNG via sharp first, then passed to Satori for text layout
  • Build-time index vs on-demand rendering — balancing SSG performance with content freshness
  • Self-hosted n8n pipeline on Hetzner — Docker, SSL, webhook verification, manual approval gating

Key Learnings

  • 💡Next.js App Router patterns — generateStaticParams, dynamicParams, revalidation strategies
  • 💡Image processing pipeline — sharp raw pixel buffers, hue-matched gradients, Satori compositing
  • 💡Content automation at scale — QA agents, frontmatter as structured data, write-back via GitHub API
  • 💡Self-hosted infrastructure — Hetzner VPS, Docker, Cloudflare R2, n8n orchestration