DEV Community

Pavel Kalashnikov
Pavel Kalashnikov

Posted on

Two things in Rails have been seriously getting on my nerves:

  1. The lack of a good dashboard for Rails’ default background job system, Solid Queue.
  2. Having to jump through hoops to integrate existing dashboards into an admin panel.

So I added one directly to Tramway. The Solid Queue dashboard is now available right inside the admin area.

Tramway 4.1

☑️ Solid Queue web UI — just a few lines of code, and you can manage your app’s background jobs directly from the admin panel.


Top comments (5)

Collapse
 
pawel_nowak profile image
Pawel •

Same pain here. I stopped trying to squeeze the queue dashboard into the main admin layout and mounted it as its own isolated route behind an admin auth constraint instead. It does not match the admin styling, but it survives deploys and upgrades without the layout fighting me. Queue visibility at 2am beats pixel-perfect styling, in my experience.

Collapse
 
kalashnikovisme profile image
Pavel Kalashnikov •

It was the same for me in the past years. But now! All of us can afford it with my solution or vibe-coded for your needs :)

Collapse
 
pawel_nowak profile image
Pawel •

That is a fair point too. If rebuilding a dashboard is now cheap, matching the admin styling is less of a reason to avoid it in the first place. I would still keep the isolated route when it protects the queue data behind proper auth, since that part does not get easier just because the UI is cheap to rebuild.

Collapse
 
kalashnikovisme profile image
Pavel Kalashnikov •

It was the same for me in the past years. But now! All of us can afford it with my solution or vibe-coded for your needs🙂

Collapse
 
pawel_nowak profile image
Pawel •

That is fair. An isolated route was my shortcut for exactly that reason, it kept the dashboard working through deploys even if it did not match the admin styling. If vibe-coding one now makes it cheap to rebuild, the interesting part is whether it stays that simple once permissions and real queue data get involved.