Projects

30+ projects, self-hosted

My projects

A selection of self-built and self-hosted projects — from an HR system to an e-scooter fleet backend.

StudyLife

StudyLife

Study organizer with calendar, focus timer and learning goals as a Blazor WebAssembly web app. Passwordless passkey login, 26 languages and optional Home Assistant integration.

Blazor WASMASP.NET CoreWebAuthni18n
OpenSSF Best Practices Silver

StudyLife AI

StudyLife

AI service for StudyLife: RAG-powered study assistant with agentic actions (LangGraph + FastAPI), source-cited answers over your own notes and an automated RAGAS eval pipeline in CI. Self-hosted on k3s with local LLMs via Ollama.

LangGraphFastAPIRAGOllama

StudyLife MCP

StudyLife

MCP server exposing StudyLife data (courses, sessions, notes, goals) to Claude and other MCP clients.

MCPPythonClaude

StudyLife App

StudyLife

Native .NET MAUI companion app for StudyLife on iOS, Android, macOS and Windows — offline sync, timers and calendar on the go.

.NET MAUIiOS/AndroidOffline-Sync

StudyLife Capture

StudyLife

Chrome extension (Manifest V3, TypeScript) for saving selected text or whole articles into StudyLife as notes — AI enrichment (course matching, tags, summary) via studylife-ai, full-article extraction via Mozilla Readability, immediate search indexing.

Chrome ExtensionManifest V3TypeScriptAI-Enrichment

StudyLife Focus

StudyLife

Chrome extension (Manifest V3, TypeScript) with two independently-toggleable features for StudyLife's focus timer: Guard blocks or allows sites during a session (allowlist/blocklist), Tune automatically switches Spotify playlists for focus and breaks.

Chrome ExtensionManifest V3TypeScriptSpotify

StudyLife Webhooks

StudyLife

Webhook delivery microservice for StudyLife: signed HTTP callbacks on session/goal events to your own automations (Zapier, n8n, Discord, …), multiple independently-named API keys per user.

FastAPIPythonWebhooksHMAC

StudyLife Marketplace

StudyLife

Public catalog of StudyLife add-ons: one JSON manifest per add-on, added via pull request, CI-validated against a JSON schema.

JSON SchemaGitHub ActionsNode.js

StudyLife Developers

StudyLife

Developer portal for registering your own StudyLife add-ons: client ID, scopes and redirect URI backing a generic OAuth-style consent flow against your own instance.

Blazor ServerASP.NET CoreOAuth

StudyLife CLI

StudyLife

Command-line client for StudyLife: notes, sessions, course goals, focus timer, courses, study programs, and webhooks from the terminal, with a --json flag for scripting. Registers itself through the same generic OAuth-style flow as the marketplace.

PythonTyperOAuth

StudyLife Alexa

StudyLife

Alexa Skill backend for StudyLife: ask by voice for courses, focus-timer state, study time, sessions, course goals, study-program progress and notes — and create notes. A self-built OAuth 2.0 server (FastAPI) handles account linking against your own instance, self-hosted on k3s.

Alexa SkillPythonFastAPIOAuth

StudyLife Telegram

StudyLife

Telegram bot for StudyLife: start, pause and stop the focus timer, today's and this week's hours, next course goal and quick notes in chat, plus session reminders and events via studylife-webhooks. Each chat links its own account through a PKCE consent flow, keys stored encrypted. Self-hosted on k3s.

Telegram BotFastAPIPythonOAuth

StudyLife VS Code

StudyLife

VS Code extension for StudyLife: control the focus timer from the editor, study metrics in the status bar and coding time per workspace offered as a study session — never recorded silently. Signs in through the generic OAuth-style flow with an RFC 8252 loopback.

VS Code ExtensionTypeScriptesbuildOAuth

StudyLife New Tab

StudyLife

Chrome extension (Manifest V3, TypeScript) that replaces the new tab with a calm, read-only dashboard: hours studied this week, current streak, upcoming sessions, recent activity, course-goal deadlines, programme progress and recent notes. Talks only to your own StudyLife instance — no vendor server, no telemetry.

Chrome ExtensionManifest V3TypeScriptDashboard

StudyLife Raycast

StudyLife

Raycast extension for StudyLife: control the focus timer from the launcher and the macOS menu bar — pick a course with a topic, choose the focus mode, pause and stop, with study hours, streak and the countdown to the next course goal right in the menu-bar item.

RaycastTypeScriptmacOSOAuth

StudyLife Stream Deck

StudyLife

Elgato Stream Deck plugin for StudyLife: a single key for the focus timer (tap to start, pause and resume, hold to stop) with a live countdown and progress ring, plus course switching, preset selection, course-goal countdowns and notes on keys and dials. Finished runs are logged as a session automatically.

Stream DeckTypeScriptElgato

StudyLife Display

StudyLife

E-paper dashboard for StudyLife on a Raspberry Pi with a Waveshare 7.5" panel: today's study time, streak, exam countdown, weekly goal and heatmap in five layouts with an auto mode. Web interface for switching layouts and connecting the account, read-only API key, systemd timer, overlay-filesystem-safe, golden-image tests without hardware.

Raspberry PiE-PaperPythonPillow

StudyLife Tray

StudyLife

Windows system tray app for StudyLife: shows focus-timer status independent of any browser, right in the taskbar — signs in through the same generic OAuth-style loopback flow as the other native clients. Ships as a signed, single-file .exe GitHub release, no runtime install needed.

.NET 10Windows FormsOAuth

StudyLife Discord

StudyLife

Discord bot for StudyLife: slash commands for courses, focus timer, study time and notes, plus automatic session-start/end announcements via StudyLife's webhook system. Deliberately single-user: one StudyLife account logs in once, and the bot acts on that account for every command. Signed multi-arch images built through its own CI/CD.

Discord BotPythonDockerWebhooks

StudyLife HACS

StudyLife

Home Assistant integration (HACS) for StudyLife: sessions, timer, streaks and course goals as sensors, including ECTS progress and calendars, plus services to control study sessions from automations.

PythonHome AssistantHACS

Zeitbuchungssystem

Web apps

Time-tracking and HR system: bookings, vacation & sick-leave management, team calendar and PDF payroll. Auth with 2FA, passkeys and an NFC punch-clock terminal.

.NET 10Blazor WASMPostgreSQLDocker

Lagersystem

Web apps

Inventory management with barcode scanning, batch tracking and analytics. ML forecasts, 7 backup providers (S3, Azure, Google Drive, …) and local AI integration via Ollama.

Blazor Server.NETML.NETEF Core

OKAI Fleet Backend

IoT

Self-hosted fleet backend for OKAI e-scooters: custom IoT TCP server, live map with lock/battery status, role-based login with Entra ID SSO, trip tracking and a device simulator.

Node.js 22ExpressSQLiteIoT/TCP

MowDeck

MowDeck

Self-hosted, manufacturer-independent control centre for robotic mowers: live status and map with heatmaps (coverage, RTK, WLAN, mobile signal, missed spots), starting jobs with your own settings, weather-aware schedules and cameras in the browser. When the mower is stuck, an optional AI assistant analyses both front cameras as a stereo pair and proposes a way out: nothing moves until you approve it, cloud AI runs only after explicit consent, and local models (Ollama) work too. Device states flow over NATS JetStream into a telemetry pipeline that writes to PostgreSQL in batches. Manufacturers plug in as adapters (first: Mammotion LUBA), plus a Home Assistant integration and native iOS and Android app shells. Open source (AGPL-3.0).

SvelteKitPythonNATSDocker / Helm
OpenSSF Best Practices Silver

MowDeck HACS

MowDeck

Home Assistant integration (HACS) for MowDeck: every mower as a device with live state over WebSocket, start, pause and dock, cameras, schedules, maintenance actions and notifications. A pure client of the public MowDeck API with an API token and fine-grained permissions.

PythonHome AssistantHACS

github-dashboard

Web apps

Every GitHub repository you can reach on one screen: open pull requests and issues, the latest workflow runs, security alerts, unreleased commits and a hygiene score per repository. Multi-user via GitHub OAuth — everyone sees exactly what their own account sees. English and German, self-hosted on k3s.

FastAPIGitHub OAuthGraphQLRedisk3s

piwatch

Infrastructure

Real-time monitoring for my Raspberry Pi k3s cluster: hardware metrics, live logs, health checks. Highly available with 2 replicas and tested failover.

FastAPIReactk3sWebSocket

homelab-hub

Infrastructure

Terminal-style link dashboard: live status probes with latency, categories, drag & drop, favicon proxy. Zero-dependency server, deployed behind NGINX Gateway Fabric.

React 19TypeScriptTailwind 4k8s

homelab-autodoc

Infrastructure

Living documentation for Kubernetes homelabs: a read-only collector inspects the real state of one or more k3s clusters (deployments, ports, ingress, volumes, policies) and turns it into a wiki-style, drift-aware doc site — facts deterministic from the cluster, prose from an LLM.

PythonKubernetesLLMDrift Detection

lktec-bot

Infrastructure

GitHub App with a small Python core that runs the repository automation of my repositories under its own identity with least-privilege tokens. Each module is opt-in per repository policy: Dependabot auto-merge, lock-file refresh including derived files, releases from Conventional Commits with signed assets, and deploy bumps. Open source (Apache-2.0).

PythonGitHub AppGitHub ActionsLeast Privilege
OpenSSF Best Practices Silver

HouseHoldPlanner

Web apps

Household management for families and shared flats: to-do lists, meal planner, recipe library, calendar and real-time chat via SignalR.

Blazor WASMSignalRJWTDocker

UnifiProtectDashboard

Smart home

Dashboard for UniFi Protect cameras: automatic camera discovery, live snapshots and HLS streams in the browser. Docker-first with a setup wizard.

Blazor ServerFFmpeghls.jsDocker

Lagersystem HACS

Smart home

Home Assistant integration for my inventory system: 29 entities (sensors, binary sensors, buttons) with auto-reload — published as a HACS integration with GitHub releases.

PythonHome AssistantHACS

GitLab Monitor HACS

Smart home

Home Assistant integration (HACS) for GitLab: pipelines, issues, merge requests and releases as sensors per repository — works with gitlab.com and self-hosted instances, fully UI-configurable.

PythonHome AssistantHACSGitLab API

ObdGarage

Web apps

Self-hosted, multi-user OBD2 vehicle tracker: automatic trip logging, maintenance scheduling and fuel cost tracking via a read-only ELM327 connection.

Blazor Server.NET MAUIELM327OBD2

NotifyHub

Library

.NET library for push notifications behind one channel-agnostic API: Web Push (VAPID), Apple Push, Firebase, webhooks and email — with tests and a demo project.

.NETWeb PushAPNsFCM

Homelab & Infrastruktur

My projects don't just run on localhost — they run in production on my own infrastructure.

☸️
k3s-Kubernetes-ClusterMulti-node on Raspberry Pi, Gateway API, HA deployments with anti-affinity
📬
Own mail serverStalwart Mail on a VPS — SPF, DKIM, DMARC, automated DNS via the Cloudflare API
🦊
Self-hosted GitLabOwn Git instance with CI/CD pipelines for all private projects
📈
MonitoringSelf-built cluster monitoring (piwatch) with live metrics and failover tests
🏠
Home AssistantSmart home hub with self-developed HACS integrations
🔐
Network & securityFirewalls, reverse proxies, Let's Encrypt, UniFi camera infrastructure