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