My Projects

A look at my latest tech projects

Welcome to a small showcase! I’d like to introduce four exciting projects I’ve built in my spare time. The range goes from a highly specialised school tool to an AI-powered chess trainer to a genuine retro shooter — right in the browser! Take a look at what’s possible when you get your hands on modern web technologies.

All projects and their source code can be found via the link to my personal GitHub in the footer below.


Table of Contents


SaphBewertungs-Assistent (SaphBewertungBerlin)

Purpose and background

The Bewertungs-Assistent (Assessment Assistant) is a web-based single-page application that helps teachers in Berlin systematically record and manage pupil assessments during the early school years (Schulanfangsphase / Saph). The tool follows the guidelines of Schul Z 101 01.25.

Teachers in Berlin face the task of filling in an assessment form at the end of the year, which is then converted into a central PDF. The problem: they only receive the form at the end of the school year, yet assessments happen throughout the year. I replicated the PDF as a form that accepts and stores assessments all year long — already in the structure required by the Berlin Senate. In the assessment history, teachers can delete individual entries if a mistake was made.

At the end of the school year, teachers can generate a PDF report for each pupil. The system automatically selects the most frequently assigned grade for each competency.

The fantastic thing about this project is its focus on data privacy: all entered data stays locally in the browser (LocalStorage) — nothing leaves your machine, there is no server communication and no user registration.

The tool covers competency areas for the subjects German, Mathematics, General Studies, Art, Music and PE, enabling detailed assessment on a 5-point scale. PDF export of individual assessment sheets is also possible.

Fun fact: The repository was originally generated from a google-gemini/aistudio-repository-template, showing how modern AI tools like aistudio.google.com can accelerate the start of complex projects.

Technologies

The application uses a modern stack: React 19 with TypeScript for the frontend, Vite 6 as build tool, and Tailwind CSS 4 for styling. PDF generation is handled by jsPDF with the autoTable plugin. The app is also designed as a PWA (Progressive Web App), enabling offline use and installation as a native app.

Activity and status


ChessTrax

Purpose and background

ChessTrax is a truly exciting project for chess players! It’s your personal chess trainer that analyses your lost games to help you identify your individual weaknesses. The motto: “The best chess textbook that can exist for you is one that comes directly from your own lost games.”

The application answers critical questions like: Which tactical motifs do you consistently overlook? Which openings or endgame types give you the most trouble?

You either upload a PGN file or simply enter your Lichess username to have your recent losses analysed (up to 2,000 games are fetched). The result is a comprehensive report with a personal training plan that you can export as a PDF.

The AI factor

Here’s where AI comes in: the analysis is performed by default using Gemini 2.5 Flash, praised for its speed and the quality and depth of its insights.

The initial build and early versions of the app were created entirely in AI Studio, with my contribution being primarily the crafting and preparation of the prompt to present the content to the AI optimally. For the experimentally-minded, there’s even the option to use other LLMs like xAI Grok 4 Fast via OpenRouter or your own Gemini API key.

Technologies

ChessTrax is primarily built in TypeScript (97.5%). It uses the Lichess API to fetch games and integrates various LLM providers, with Gemini 2.5 Flash as the default.

Activity and status


Hundefelsen (egor)

Purpose and background

Hundefelsen (egor) is a tribute to classic first-person shooters like Wolfenstein 3D, built entirely for the browser.

The game runs completely in the browser, features a 3D raycasting engine for authentic retro gameplay, and comes with eight levels each offering multiple variants for variety. One difference from the historical original: there’s no Nazi imagery here.

You fight your way through hordes of four different enemy types (zombies, monsters, ghosts, dogs) and can find six different weapons, from a knife to a heavy machine gun. Particularly cool: there’s a jump mechanic (key F) that lets you leap over furniture, plus a save system that stores all game states locally in the browser’s LocalStorage.

Technical highlights

  1. Rendering: The raycasting engine runs on Canvas.
  2. Sound: Sound effects are generated procedurally using the Web Audio API.
  3. Textures: All textures (walls, floors, objects) are procedurally generated — no image files needed.
  4. Dev tools: The project even includes a visual Level Editor and a Designer Mode (theme editor) for creating new textures and editing levels without writing code (dev environment only).

Built primarily with React 19 and TypeScript.

Activity and status


Markdown Editor Pro (mark)

Purpose and background

Markdown Editor Pro (mark) is a powerful, web-based Markdown editor designed for simplicity, productivity, and above all privacy. My flagship project #1. I use it myself every day.

This is the Markdown editor I always wanted. No registration needed, because nothing has to be stored in the cloud (that was always my gripe with stackedit.io). You can read and write directly to your local filesystem from the browser without installing anything. Optionally it even offers direct integration with GitHub, letting you load and save .md files from your repository.

Top features include:

Built as a PWA (Progressive Web App), it also works offline and can be installed as a native application — super practical!

Technologies

Mark is a true frontend powerhouse, built with React 19.1.1 and TypeScript 5.8.2 using Vite 7.0.6. Code processing is handled by CodeMirror 6, while marked handles Markdown parsing and DOMPurify ensures safe HTML output. GitHub integration uses the @octokit/rest client.

Activity and status

notebooklm

I showed NotebookLM just the 4 GitHub URLs of my projects. It thanked me with this video:

Legal notice | | My GitHubRSS