Portfolio
A selection of the applications and websites I have developed.
The software projects are shown with screenshots and their main features. Below them are websites from recent years.
Software
plxr
plxr brings coding CLIs such as Claude Code, Codex, aider, Gemini and opencode together in one window. Every session appears as a tile; sessions waiting for an answer come first, with files, diff and terminal alongside.
- The terminals keep running in a separate Go service, even when the window is closed.
- Four skins restyle the whole window, each with its own icons.
- Installers for macOS, Linux and Windows; updates are installed with a single click.
- The source code is public on GitHub.
Built with Go, Wails, Next.js and TypeScript

More projects
ArianeCapacity planning for a development team2026
A weekly grid across twelve months shows who is working on which project when, and who still has capacity. The same data can be viewed by person or by project. Input works like a spreadsheet, with undo, public holidays by region and export to Excel.
Built with Next.js, React, Zustand, Drizzle ORM, PostgreSQL and exceljs
Claude Usage MonitorUsage limits of several Claude accounts on the phone2026
A page built for the phone shows the limits of several Claude accounts in real time, with a countdown to the reset and the rate at which the quota is shrinking. Each account signs in through its own OAuth with PKCE, so the logins on the computers stay valid. The service needs nothing beyond the Python standard library and can also wake a server via Wake-on-LAN.
Built with Python, OAuth 2.0 (PKCE) and Docker
Claude FleetA macOS overlay for running coding agents2026
A floating window shows every Claude Code session on the computer, grouped by account, with remaining quota, status, model and effort level. A click brings the matching terminal to the front. The app is built in SwiftUI, gets its data through hooks and is started by launchd.
Built with Swift, SwiftUI, Node.js and launchd
WaterSports Center DéniaBooking platform for a water sports centre2026
Activities, restaurant, rentals and sun loungers of a water sports centre at Marina El Portet can be booked in one place. Each of the four areas has its own capacities, and bookings are confirmed with a QR ticket. There is also an administration for bookings, menu, events and team, and the platform speaks six languages.
Built with Nuxt 4, Vue, Nuxt UI, Tailwind CSS, PostgreSQL, Drizzle ORM, Better Auth and GSAP
hauptsach-guddgess.deRecipe portal2026
A portal for recipes, communities and cooking events, with meal planning and cookbooks as PDF. Recipes can be imported from photos with AI or from links; reported content goes to moderation.
Built with Nuxt 4, Vue, Nuxt UI, PostgreSQL, Drizzle ORM, Better Auth and S3
Siriburi Thai SpaBooking, vouchers and administration for a massage studio2026
A system of its own replaces WordPress and WooCommerce. Online booking supports couple and group bookings and makes sure no slot is ever given out twice. It also includes a voucher shop with PayPal and QR codes, an administration for appointments, guests and content, GDPR export and erasure, and the migration of the old data.
Built with Nuxt 4, Vue, PostgreSQL, Drizzle ORM, Better Auth, PayPal, Playwright and Vitest
m8werk-pagesOne CMS for five websites2025–2026
One administration serves five bilingual websites, among them m8werk.de, and5.de and immosaar24.de. Translations, legal texts, files and maintenance mode are loaded at runtime through an API. All apps are built from a shared Dockerfile and run in Coolify.
Built with Next.js, React, Prisma, MariaDB, next-intl, Turborepo, Docker and Coolify
AtriumMulti-tenant property platform2025
Administration and public portal for the properties of several tenants, with roles and permissions, search via Meilisearch, image processing with imgproxy and self-hosted vector maps. The monorepo contains an API built on Hono; builds and deployments run on Gitea Actions.
Built with Next.js, Hono, Prisma, PostgreSQL, Meilisearch, MapLibre and Turborepo
Form builderForms from a JSON tree, also generated by a local language model2024–2025
Forms are generated from a JSON tree with fixed rules. An MCP server provides a tool for this, which a local language model (Qwen via LM Studio) uses to build valid forms.
Built with Next.js, React Hook Form, Express, MySQL, Model Context Protocol and LM Studio
finholding.de and finforms.deFinHolding's websites and APIs in a monorepo2023–2025
The websites of FinHolding and FinForms live with their APIs in one monorepo. I moved the CI to Turborepo and PM2, and the Cloudflare cache is cleared automatically on deployment.
Built with Next.js, React, Express, Sequelize, MySQL, Turborepo and GitLab CI
FinFormsPortal for mortgage brokers2021
Applicants fill in their financial self-disclosure online, and the data is passed on to the mortgage process through the Europace APIs. Sensitive fields are stored encrypted, and PDFs are generated on the server.
Built with PHP, MySQL, TCPDF, Europace API and Deployer
FinPhaseFinancing app for brokers2020–2022
A white-label app in which applicants fill in financing requests and self-disclosures, upload documents and receive everything as a PDF. Brokers assemble their forms per tenant in a configurator and adjust colours and branding.
Built with React, Redux, jsPDF, react-i18next and webpack