June 19, 2025•4 min read
Yes, RabbitMQ comes with a built-in UI called the management plugin. This is what 99% of people using RabbitMQ are probably using right now. And to be frank, it is an incredibly useful piece of software, it might be ugly and old, not the most user-friendly tool you've used, but it get the job done.
The interface is also incredibly stable, it hasn't changed for a decade and it never breaks on you as a result.
When you use a tool every day, small frustrations tend to add up over time. That frustration combined with the addiction of building tools just make that spark go off in your mind pretty quickly. After fighting the urge to stop everything to build the tool I wish existed, I ended up writting the first line of codes for what would become RabbitGUI.
It was a tedious process to get things going since the API is almost not documented, so it was a lot of reverse engineering at first. But once the first bricks were in place I could finally focus on delivering the experience I had in mind.
I've prepared a list of the features I am the most proud of that really motivated me to get RabbitGUI started! Those feature a not just an improvement on something you could already do, but a re-thinking on how to get the job done much, much faster.
This is a common complaint when dealing with RabbitMQ. You constantly have to navigate to another tab to switch between environments, and you need to login everytime with your password. The homemade solution for this is to add all URLs to a bookmark in your browser, and use a password manager to automatically login without having to manually type your password. Can you imagine doing this for database connections?
this is the welcome screen of RabbitGUI, just like any database tool, you can add as many connections as needed and don't ever need to see a login screen again. All you credentials are safely stored on you machine.
To switch environment later, you have a quick access menu at the top that lets you select and switch to any connexions instantly while preserving context.
This could be an app of its own given how bad the problem actually is. RabbitMQ simply has no way to explore messages inside a queue, making dead letter management tedious and painful.
The way RabbitGUI goes about managing dead-letter queue is to consume the entire queue locally and storing all messages in a database on your machine. Having all messages locally allows you to search and filter messages at will, without the constraints of RabbitMQ.
You can explore, search, and filter messages as you see fit, select the ones you are interested in, and only republish those messages either to their original queues, or to a specific queue you chose.
If you want to know more about the way RabbitGUI handles dead-letters, we wrote a dedicated article on tha topic: dead-letter queue introspection with RabbitGUI.
This one is so obvious, I do not understand why the official RabbitMQ management plugin does not support it. Writing JSON by hand in a text area is just too painful, and the likelihood of making a mistake is too high. What I did for RabbitGUI is taking the editor from VSCode and putting it right into the app itself.
We have a dedicated article that goes more in depth about publishing messages to RabbitMQ. As an added bonus it also compares it with the built in tool from the management plugin.
Navigation was a big focus for RabbitGUI, I didn't see it as a single feature but more as a set of principles that would make the life of the user so much easier.
The first thing that user come to expect is a reliable quick search from anywhere. So we implemented the classic CMD+K
to search for anything (queue, exchange, vhost...) using the same algorithm as WebStorm for string matching and highlighting.
Now that you can jump to anything specific, another cornerstone of navigation is being able to hope from one entity to the other by clicking on it. Anytime you see the name of an entity, may it be in the bindings, settings, dead-letter, alternate exchange, policy, or anywhere really, you can click on it.
The last piece of the puzzle is managing routing in a single place. This too relies a lot on the previous feature, allowing you to click anywhere to navigate. But most importantly, it groups bindings, dead-letter queues, and alternate exchanges in one place. We wrote an entire article on exploring RabbitMQ bindings if you are curious.
Those are only the top features we are the most proud of. RabbitGUI is built with love, and a lot of small details are built into it. If you want to know what is comming next, checkout our public roadmap. And if you have ideas of things you've always wanted to see you can give us some feedback to drive future plans!
Debug, monitor, and manage RabbitMQ with a modern developer interface.
Try now