raphaelstäbler
EN

Raphael Stäbler · Frankfurt am Main

Ich baue Dinge, von der Platine bis zur App.

Ich entwickle seit mehr als 20 Jahren Software, heute vor allem Web- und Mobile-Apps. Production Build ist meine Firma. Hier ist die persönliche Seite: Platinen, die ich entworfen habe, die Treiber dafür, Spiele, Web-Werkzeuge, ein Blog und ein Buch.

Den Stack hinauf Zum Blog (englisch)

  1. L5 Print 1 Bauteil
  2. L4 Web & Werkzeuge 4 Bauteile
  3. L3 Apps & Spiele 2 Bauteile
  4. L2 Firmware & Treiber 2 Bauteile
  5. L1 Silizium & Platinen 1 Bauteil
Abb. 1 — Der Stack, von oben nach unten. Nicht maßstabsgetreu.

Ebene 1: Silizium & Platinen

Leiterplatten und FPGA-Logik: die Ebene, die man in die Hand nehmen kann.

Blog (englisch) PCB Design — A Hobbyist’s Perspective

Berührt auch diese Ebene FT81x Arduino Driver FW1

Ebene 2: Firmware & Treiber

Code, der direkt auf der Hardware läuft: ein Displaytreiber und ein Game-Boy-Emulator auf einem Mikrocontroller.

Blog (englisch) How to Create an Automated Build Pipeline for Your Arduino Project

Steckbrett-Prototyp: Tetris auf dem Display, dazu Teensy, Audioausgang und Tasten verkabelt

FW2 L2 Begonnen 2019

gb.teensy

Ein Game-Boy-Emulator auf dem Teensy 4.1

Noch in Arbeit: Tetris läuft, Blarggs CPU-Instruktionstests laufen durch, der Ton hat 4 Kanäle, ROMs kommen von der SD-Karte und das Bild aufs FT81x-Display. Mit großen Beiträgen von @granthaack.

  • C++
  • Teensy
  • PlatformIO

Ebene 3: Apps & Spiele

Dinge fürs Smartphone: ein Puzzlespiel mit eingebauter KI und ein Fantasy-Sport-Manager.

Blog (englisch) From Zero to MVP in 3 Months With Flutter

Drei Google-Play-Screenshots von Monster Wipe: normales Spiel, der KI-Roboter spielt, und ein Power-up räumt eine Farbe ab

A1 L3 Begonnen 2022

Monster Wipe

Ein Match-3-Spiel mit einer KI, die für dich spielt

Gebaut mit Flutter und Flame. Ab Level 6 kann ein per Reinforcement Learning trainierter Agent übernehmen, der als TensorFlow-Lite-Modell direkt auf dem Handy läuft. Keine Werbung, keine In-App-Käufe, kein Tracking. Jetzt für Android, iOS folgt.

  • Flutter
  • Dart
  • Flame
  • TensorFlow Lite
Drei App-Store-Screenshots von Matchday Manager mit Demodaten: der Kader auf dem Platz, Live-Punkte und die Punkte pro Spieler

A2 L3 Begonnen 2026

Matchday Manager

Inoffizielles Fantasy-Spiel für Fußball und Eishockey in der Schweiz

Kader unter einer Gehaltsobergrenze zusammenstellen, Aufstellung festlegen und zuschauen, wie sich die Punkte während der Spiele bewegen. Beide Sportarten laufen auf einer Codebasis: eine NestJS-API mit einer wiederholbaren Live-Saison-Engine, eine Flutter-App und eine Eleventy-Website.

  • Flutter
  • Dart
  • TypeScript
  • NestJS
  • MongoDB
  • Kubernetes

Ebene 4: Web & Werkzeuge

Webprodukte, kleine Werkzeuge und Datenexperimente für Browser und Terminal.

Analytodon-Dashboard mit Demodaten: Follower-Verlauf der letzten 30 Tage und eine Tabelle der Top-Beiträge

W2 L4 Begonnen 2023

Analytodon

Statistiken für Mastodon-Accounts

Interaktionen und Follower-Wachstum des eigenen Mastodon-Accounts. Open Source und selbst hostbar, mit fertigen Docker-Images: ein TypeScript-Monorepo mit NestJS-API, Remix-Frontend und einem CLI-Worker.

  • TypeScript
  • NestJS
  • Remix
  • MongoDB
  • Docker
Radialdiagramm der täglichen Höchsttemperaturen in Frankfurt/Main, 1970er in Blau gegen die 2020er in Rot

W3 L4 Begonnen 2026

Temperaturringe

Rund 90 Jahre Tagestemperaturen aus Frankfurt, ein Ring pro Jahr

Tageswerte der DWD-Station 1420 (Frankfurt/Main) und von MeteoSwiss Zürich/Fluntern, ungeglättet, als ein geschlossener Ring pro Jahr. Man kann durch die Jahrzehnte blättern oder zwei davon vergleichen.

  • D3
  • JavaScript
  • Python
Blender-Render einer Game-of-Life-Simulation: glänzende bunte Würfel als lebende Zellen auf einem schwarzen Raster

W4 L4 Begonnen 2025

game-of-life-reverser

Conways Game of Life, rückwärts

Ein Python-Kommandozeilenwerkzeug, das mit einem SAT-Solver Vorgängerzustände findet. Für Garden-of-Eden-Muster, die keinen Vorgänger haben, sucht es das nächstgelegene Muster, das sich zurückrechnen lässt. Das Bild stammt aus einer eigenen Game-of-Life-Simulation, die ich in Blender gerendert habe.

  • Python
  • SAT
  • Blender

Ganz oben liegt Papier: ein Übungsbuch, aus Daten erzeugt und per Code gesetzt.

Blog (englisch)

Neues von der Werkbank

  1. Web Development Replacing a Dynamic WordPress Site With a Static One
  2. Software Development Building a Live Sports App With No Live Sport
  3. Software Development What I Learned Building Software With AI Agents
  4. Machine Learning How I Trained an AI to Play My Mobile Game

Alle 11 Artikel