Portfolio
2026 - PresentA 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.
- A 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.


