Hi All!
I have a new extra I made for my own purposes that fills some needs I had and really speeds up some processes for me.
Introducing “ShortLink Manager” ![]()
The purpose of this extra is essentially to provide my sites with their own “bit.ly” like functionality more or less. I needed a way to present short and updateable versions of links to resources on my site to allow for easy sharing of long URLs. Most of the time, I also need UTM values added on to these dynamically to allow for tracking with my digital marketing team’s needs.
Lastly, I wanted to incorporate automatic QR Code creation as we use these shortcodes in print and other visual media tools. I needed the QR Codes to be vector so that they would be scalable for large print formats without quality issues, and I need these QR Codes to be somewhat stylized so I allowed for custom colours and logo integration.
You will have to bear with me - this is my very first extra package, and I’m somewhat limited in my coding expertise ( All hail Claude code
). So don’t be surprised if there’s a quirk here and there.
There are system settings for pretty much all the things you would need to change, like the shortlink prefix - set to “go” by default. so if your site was “https://mysite.com” an example of a generated shortlink might be “https://mysite.com/go/yx5eh”
You can change the length of the auto-generated shortcodes. You can manually enter your own as well.
The custom manager page installs under “extras” >> “ShortLink Manager”
By default, it uses a plugin for the redirection, but it can be configured to use an .htaccess method for a little more speed - haven’t tested that mode extensively, and the plugin method seems to be working more than fast enough for my needs in my testing on live fairly high traffic sites.
So far, this is specifically for 2.X MODX versions. Have not tested on 3.X at all.
I have put the whole thing up here on GitHub:
I would love any feedback you might have. Let me know especially if you see any glaring issues. As I said - i am new to this
I will try to respond where and when I can.




