Zhylon Captcha ist live — und lief vorher schon in einem Dutzend meiner eigenen Projekte original

by Toby Maxham – 2 minute read

Ich habe Zhylon Captcha vor einer Weile gebaut, weil ich für meine eigenen Projekte ein CAPTCHA wollte, das nicht über einen US-Anbieter läuft. Was als internes Tool angefangen hat, läuft mittlerweile produktiv in einer ganzen Reihe eigener Projekte — und ist jetzt öffentlich verfügbar: https://captcha.zhylon.net/

Der Stand: Login, Registrierung, ein Spenden-Flow für Beta-Tester (dazu gleich mehr) und ein eigenes Dashboard, um Sites zu hinterlegen und kleine Nutzungsstatistiken einzusehen. Kein "MVP mit Bauchschmerzen" — das Ding läuft, wie es soll, schon länger.

Tech-Stack:

"require": {
    "php": "^8.4",
    "laravel/framework": "^13.0",
    "laravel/tinker": "^3.0",
    "tobymaxham/laravel-hashid": "^1.2",
    "zhylon/captcha-laravel": "^1.0",
    "zhylon/captcha-php": "^1.0",
    "zhylon/zhylon-identity": "^1.0"
}

Ein paar Details, die mir wichtig waren:

  • zhylon/captcha-php + zhylon/captcha-laravel — bewusst getrennt. Die Core-Logik (reines cURL, framework-agnostisch) liegt in captcha-php, der Laravel-Wrapper obendrüber ist dünn. Wer kein Laravel nutzt, kann trotzdem die Basis-Library einbinden.
  • zhylon/zhylon-identity — Auth läuft über ZhylonID, wie bei allen Zhylon-Produkten. Kein eigenes User-System, keine zusätzliche Angriffsfläche.
  • tobymaxham/laravel-hashid — mein eigenes kleines Paket für obfuskierte IDs in URLs/APIs, nutze ich mittlerweile fast überall.
  • Getestet mit Pest 4, Formatierung über Pint — Standard-Setup, nichts Exotisches.

Der Spenden-Flow für Beta-Tester: Wer sich am Spenden-Flow beteiligt, bekommt für die Beta-Phase mehr Kontingent. Kein Preismodell, keine feste Zusage für später — einfach eine Möglichkeit, das Projekt zu unterstützen und dafür etwas mehr Luft beim Testen zu haben, solange es Beta ist.

Das Dashboard ist bewusst schlank gehalten: Sites hinterlegen, sehen wie viel genutzt wird — mehr nicht, für jetzt. Alles darüber hinaus kommt, wenn's gebraucht wird, nicht vorher.

Join the newsletter

Occasional thoughts on Laravel, PHP, and building real-world applications — straight from what I’m working on.

The newsletter is on a little break right now — see you soon!

Found something interesting to share? Submit a link to the community section.