Every now and then, while building and gluing together different pieces of a system, I run into the need for exactly one thing: a tool that will tell me, in the most direct way possible, what a given service is sending out as an HTTP request. No frills, no mystery, no surprises... just give me everything, and don't ask questions.
This is precisely the itch that catcher-server was built to scratch. It's a minimal open source HTTP server designed with only one job in mind: to receive any HTTP request, on any endpoint, and log clearly to the console its method, endpoint, and payload. You throw requests at it, it logs them. That's all there is to it.
Why did I build it?
The motivation came from real needs in my day-to-day work. I was working with a new platform at my job, dealing with limited deployment and observability capabilities. When you are working in such an environment, the quickest way to validate and debug what is happening is often to set things up locally. So, rather than guessing at what my services were really sending, or trying to wade through partial logging and indirect clues, I wanted something that would display the complete truth about outgoing requests, with zero ceremony.
You might reasonably ask why not look into one of the many alternatives out there. The answer is simple: I wanted something I could run locally, that would be mine, with zero licensing or learning curve to think about. Just something I could launch instantly, trust, and forget.
Vibe Coding
There's another reason why I consider this project relevant. It is a great example of a good use for vibe coding. Catcher-server is not a polished product for broad public consumption, but rather a practical and friendly tool, spun up to fulfill a personal/internal need. Projects like these are perfect for a more relaxed, collaborative coding session, especially when working with AI tools to speed up the boring parts. I see vibe coding as an ally for prototypes, utilities, and experiments - fast, fun, and effective in their scope, even if not suited for rigorous software that needs to last forever.
Under The Hood
True to its spirit, catcher-server is built on Python with Flask. That's it: no frameworks or engines beyond what is needed. The idea was to keep everything as simple as possible. No clever tricks or fancy abstractions, just a straight line from incoming HTTP requests to the console log.
Use Cases
While I personally used catcher-server for a microservices project, the intention is broader: it's meant for debugging, testing or observing outgoing HTTP requests from any project. If you want to get the real payload, headers, or query params from your code, without distractions, catcher-server is here for you. It isn't opinionated, and it isn't limited to any domain. Point your requests at it, and it will always catch them!
Conclusion
Catcher-server is the kind of tool I like to have at hand: minimal setup, instant feedback, and the freedom to use and adapt it however I want. It's not going to change the world, but it just might prevent some early gray hairs!
Links
Source code: Github
No comments:
Post a Comment