One place for feedback that lives everywhere
CloudSignal pulls scattered customer feedback into a single view, auto-classifies every signal by priority and sentiment, and lets a product manager ask questions about it in plain English. Built end-to-end on Cloudflare's stack.
'What are customers saying right now?' shouldn't take 30 minutes
Product feedback is scattered — Discord threads, GitHub issues, support tickets, Twitter. A PM can spend up to two hours a day reading channels, and the critical issues still get buried in the noise. The signal is there; nothing surfaces it.
Build the product, not the deck
I built CloudSignal as a Cloudflare PM take-home — and chose to ship a real, working product on their own stack rather than hand in slides. Two decisions drove it: aggregate everything into one view, and make severity automatic. Every incoming signal gets auto-tagged P0–P3 by priority, plus sentiment and category, so the urgent things float to the top on their own instead of waiting for a human to find them. Building on Cloudflare's platform taught me more about how Workers, D1, and Workers AI actually fit together than any documentation could.
Full-stack, on the edge
CloudSignal ingests feedback from multiple sources — Discord, GitHub, support, Twitter — classifies each signal with Workers AI, and presents it in a dashboard filterable by priority, category, and source. A chat interface lets a PM ask questions like 'what are the P0 bugs?' or 'what should I fix first?' and get answers grounded in their actual feedback. It runs full-stack on Cloudflare Workers, with D1 for storage and Workers AI running Llama 3.1 for classification. The real engineering was in the tradeoffs — latency versus cost versus model accuracy.


This project got me a Product Management interview at Cloudflare
I built CloudSignal as a take-home on Cloudflare's own stack, and it did the one thing a portfolio project is supposed to do — it opened a door. The code is open-source on GitHub. Beyond the interview, it proved I can define, build, and ship a real product on a modern edge platform, not just write about one.
From seeded data to live signals
The next step is real source integrations — live Discord and GitHub webhooks instead of seeded data — and tuning the priority model on real feedback volume.