Skip to content

Personal portfolio & blog

2026~
Self-hosted stack: from HTTPS termination to the content volume DOCKER COMPOSE Nginx HTTPS termination · proxy APP Next.js · TypeScript App Router · Tailwind Postgres · Prisma Content volume · uploads Admin CMS Posts · history · settings GitHub Actions: lint · typecheck · test · build → SSH deploy → smoke test 2026~ · the site you are looking at

Problem

I wanted my work and writing in one place that I control, and to decide the structure and deployment myself rather than fit someone else’s platform.

My part

Built a portfolio and blog with Next.js — a blog with a WYSIWYG editor, gallery, admin CMS, and dark mode — deployed over SSH through a GitHub Actions pipeline of lint, typecheck, test, and build.

Result

Self-hosted over HTTPS with Docker and Nginx. It is the site you are looking at.
Next.jsTypeScriptTailwind CSSDocker