Tap into the Bluesky Jetstream firehose to collect every URL posted in real time and check which ones match a specific technology
Build a 'built with X' showcase bot for any framework by replacing nuxt.fyi's Nuxt detection with your own fingerprinting logic
Run a Playwright-based screenshot service that automatically suppresses cookie banners and filters NSFW content before publishing images
Requires Node 24+, a Fly.io account with shared volumes, a Bluesky account for the bot, and an external image hosting service across three coordinated deployments.
nuxt.fyi is a bot and website that watches Bluesky (a social media platform) for links to websites, checks each one to see if it was built with the Nuxt web framework, and when it finds a match, posts a screenshot of that site. The goal is to surface and celebrate real-world sites built with Nuxt. There is a public dashboard at nuxt.fyi that shows everything the system has found, organized by version and how recently it was detected. The system works by tapping into the Bluesky Jetstream firehose, which is a continuous stream of every post made on the platform. The code pulls every URL out of every post, identifies the domain, and then checks whether that domain is a Nuxt site. Detection works by loading the page in a headless browser (Playwright running Chromium) and looking for specific markers in the HTML and the page's behavior that indicate Nuxt is being used. If the check passes, the scanner takes a screenshot and uploads it to an image hosting service. The bot handles some practical complications. Cookie consent banners are suppressed automatically so screenshots don't get obscured. Screenshots are checked for NSFW content using a classifier, and the posting behavior changes depending on the classification: suggestive content gets labeled on Bluesky so users can blur it, explicit content gets further restricted on both the dashboard and in Bluesky posts. You can also tag the bot's Bluesky account with any URL and it will reply with a scan result and screenshot for that domain. The system runs as three separate processes deployed on Fly.io: a daemon that consumes the Bluesky stream and handles detection, a screenshot service that runs the browser, and a dashboard website. All three share a SQLite database stored on a shared volume. The project is released under the MIT license and requires Node 24 or newer.
← danielroe on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.