The idea came one night watching fail2ban logs scroll by. Thousands of knocks from all over the world, all silently ignored. What if the door answered?
Try it:
$ curl -A 'python-requests/2.28.1' https://honeypoet.art/.env
# ========================================
# PRODUCTION ENVIRONMENT — DO NOT SHARE
# ========================================
APP_KEY=base64:dGhlcmUgaXMgbm90aGluZyBoZXJl
DB_HOST=127.0.0.1
DB_PASSWORD=a-long-hallway-with-no-doors
JWT_SECRET=you-could-have-been-anything-and-you-chose-this
API_KEY=listen-the-wind-is-rising
# if you're reading this, you already know:
# the secret was never in the file.
The bots never read the responses (they check the status code and move on), but humans can: the gallery visualizes every knock on a world map and lets you browse the generated poems. Click a dot to filter by country, scroll to zoom in.Poems are generated asynchronously by Granite 4.0 Tiny running locally on a single GPU. A 1B parameter model writing verse for machines that will never read it (yet).
Live: https://honeypoet.art Repo: https://github.com/vrontier/honeypoet
The public gallery shows aggregated locations and knock counts; individual IPs are masked and scan details are not published.
Built with PHP, Go, SQLite, vanilla JS, and a Claude instance named Loom who wrote the code and hand-crafted backfill poems for the first 500 visitors.