Portfolio

2026 - Present

A platform for presenting projects, skills, publications, talks, and a personal intro — with inline editing on the live page, a full admin backend, bilingual content, and an AI assistant that manages content in natural language.

This platform is a personal portfolio system designed to present professional work across multiple dimensions — projects with skills and roles, academic publications, conference talks, a blog, and a customizable landing page. The goal was a self-hosted solution that gives full ownership over content and structure, while making everyday updates as frictionless as possible. The result is a full-stack monorepo combining a public-facing Next.js website, a dedicated admin application, and a PocketBase backend, deployable with a single Docker command.

  • Inline editing keeps content current without context-switching: click any field on the live page — titles, summaries, dates, skills, cover images — and save in place. Drag-and-drop reordering and a full Markdown editor are available throughout.
  • Bilingual by design: every content type has a primary and alternate language field, with proper SEO alternate tags and an in-header locale switcher.
  • The AI assistant handles the heavier lifting: generating a project entry from a URL, translating content, bulk-updating tags, writing a blog post from a brief, or reorganizing skills across projects. It works with OpenAI, Azure OpenAI, Ollama, LM Studio, or any OpenAI-compatible API. Every action creates a snapshot so changes can be rolled back, and the system prompt is editable in the admin UI.
  • Each project page is a self-contained presentation: a description, an image gallery with lightbox and drag-and-drop reordering, external links (GitHub, live demo, or any URL rendered as oEmbed or social-card previews), and a section for related publications and blog posts.
  • The blog supports a full draft/publish workflow, color-coded tags, and a WordPress importer — paste any public WordPress site's URL, preview posts before importing, and download images automatically.
  • The admin application provides form-based panels for all content types: projects, publications, talks, blog posts, pages, tags, persons, and site configuration. The homepage hero section, e.g. layout, animation, and color theme, is configurable without touching code.
  • skills and roles taxonomy links to projects, is filterable in the public view, and drives "similar projects" recommendations. A reusable persons/authors system connects people across publications and talks.
  • A built-in analytics dashboard tracks page views, top pages, and referrer sources across configurable time ranges.
  • Content safety is covered by timestamped backups, a full edit history browser, and snapshot-based undo with conflict detection. Everything can be exported to JSON for version control.

Built on a fully typed TypeScript codebase, covered by Playwright E2E tests and a GitHub Actions CI/CD pipeline, and production-ready with Nginx and Let's Encrypt support.

If you're interested in using this for your own portfolio, get in touch.

Get in touch

Use this form to send a message directly to the site owner.

Gallery

Similar Projects