Catchup subscriptions and handling parked messages

We currently use EventStore’s persistent subscriptions, and are experimenting with catchup subscriptions. One of the main responsibilities that this incurs is having to do our own ‘parked’ (or ‘deadletter’) message handling when an event is not successfully handled.

Has anyone found a good solution to this that doesn’t involve writing extensive back and front-end tooling for viewing / redelivering / managing parked messages? Obviously there is some minimum amount of dev work needed, but I’m curious if anyone has found either off-the-shelf solutions, or minimal in-house ways of dealing with this.