# Ein Teleprompter ohne App-Store *17. Mai 2026* #homelab #3ddruck Ich wollte einen Teleprompter, der einfach funktioniert. Kein Studio-Aufbau, kein Mietgerät, kein Abo. Stattdessen die Idee: ein Smartphone, ein halbdurchlässiger Spiegel, eine Kamera dahinter — fertig. Und dann der Text, der direkt vor der Linse durchläuft, ohne dass ich den Blickkontakt verliere. ![[Teleprompter.jpg]] ### Vom Gedanken zum Gehäuse Der Anstoß war banal: Ich wollte etwas zum Selbermachen, ausgehend von dem, was ich ohnehin schon hatte. Zwei Logitech Brio, ein Smartphone liegt sowieso herum. Was fehlte, war der Spiegel. Auf der Suche bin ich auf eine MIRONA-Beam-Splitter-Scheibe von Schott gestoßen: 12,5 × 12,5 Zentimeter, 4 Millimeter dick, eigens entspiegelt für genau diesen Zweck. In dem Moment war klar: Das kann ich selbst bauen. Das Gehäuse habe ich in [[Onshape]] konstruiert. Mit Aufnahmen für die Brio, einem Schacht für das Smartphone und der Halterung für die Scheibe im 45-Grad-Winkel. Der erste Druck auf dem [[Bambu Lab MakerWorld|Bambu Lab X2D]] war prompt für die Tonne — ich hatte mich in den Maßen vertan, die Scheibe passte nicht. Ein Millimeter zu schmal an der falschen Stelle reicht, um ein ganzes Bauteil unbrauchbar zu machen. Also Modell angepasst, neu gedruckt, und jetzt sitzt das Glas exakt da, wo es hingehört. Das Ergebnis hat mich überrascht. Durch die Entspiegelung der Prompter-Scheibe ist der Text aus Sprecher-Sicht klar zu lesen, während die Kamera dahinter ein sauberes Bild aufzeichnet. Es funktioniert einfach. ### Eine eigene App, weil die anderen zu teuer waren Was jetzt noch fehlte, war die Software. Die gängigen Teleprompter-Apps sind entweder überladen, an einen Workflow gebunden oder kosten mehr, als das ganze Bau-Material zusammen. Ich wollte etwas, das genau eine Sache kann: einen Markdown-Text groß, weiß auf schwarz anzeigen und scrollen. Also habe ich eine Progressive Web App geschrieben — gemeinsam mit [[Claude Code Skills|Claude Code]]. Eine HTML-Datei mit eingebettetem CSS und JavaScript, dazu ein kleiner Node.js-Server. Kein Framework, kein Build-Schritt, kein App-Store. Die App läuft als Docker-Container auf meinem [[Homelab mit n8n|Homelab]], jedes Smartphone im Netzwerk kann sie über den Browser aufrufen. Sie lädt Markdown-Dateien lokal oder per URL, scrollt mit einstellbarer Geschwindigkeit, spiegelt den Text vertikal für den 45-Grad-Splitter, und blendet die Bedienelemente nach drei Sekunden aus, damit nichts im Spiegelbild stört. Mehr braucht es nicht. ### Fernsteuerung im LAN Wenn das Smartphone im Gehäuse liegt, kommt man nicht mehr gut an den Bildschirm. Also habe ich einen WebSocket-Endpunkt in den Server eingebaut. Ein zweites Gerät — Tablet oder Laptop — öffnet die gleiche URL im Remote-Modus und steuert den Prompter: Play, Pause, Geschwindigkeit, Schriftgröße. Beide Geräte sind über den Server verbunden, ohne Pairing, ohne Account, ohne Code-Eingabe. Eine Macke hat mich Zeit gekostet: Safari auf macOS hängt bei WebSocket-Verbindungen zu reinen IP-Adressen. Ein Eintrag in `/etc/hosts` mit einem Hostnamen löst das. Auf iOS und im Chrome trat das Problem nicht auf. ### Was ich dabei gelernt habe - Die Reihenfolge ist entscheidend. Erst die Hardware, dann das Bedürfnis nach passender Software. Hätte ich mit der App angefangen, wäre sie wahrscheinlich anders ausgefallen. - Ein Druckfehler im CAD-Modell tut nicht weh — solange man bereit ist, ein Stück Filament zu opfern und neu anzufangen. - Eine PWA ist für so ein Werkzeug das richtige Format. Kein Store, kein Update-Zyklus, ein paar Dateien, ein Server, fertig. Am Ende ist daraus ein vollständiges Set geworden: ein Gehäuse, das auf MakerWorld liegt, und eine App, die auf GitHub steht. Wer das nachbauen will, hat alles dafür. ## Links - [Teleprompter PWA auf GitHub](https://github.com/maikpurrmann/teleprompter-pwa) - [3D-Modell auf MakerWorld](https://makerworld.com/de/models/2812112-smartphone-teleprompter-for-logitech-brio#profileId-3130226) - [Schott MIRONA Beam-Splitter, 12,5 × 12,5 cm (eBay)](https://www.ebay.de/itm/194139276124) *Hinweis: Dieser Beitrag wurde mit Unterstützung künstlicher Intelligenz erstellt.*