The case for self-hosted URL shorteners in nonprofit marketing

In my experience, the only people/enterprises that want and need a short URL platform are ones using long-ass UTM tracking codes and/or ones who want click analytics that tell them what UTM codes can’t tell them.

For example: Safari, Brave, and Firefox now strip the click identifiers that ad platforms depend on, and UTM parameters are increasingly unreliable as privacy tools evolve — eliminating 20–40% of conversion data they used to get from UTM codes.

I try to bring these skills and techniques to nonprofits and NGOs. What is valuable to me (and others) is when I can autogenerate URLs via an API. I’ve already shared my horror story with tinyurl.com. Here is a more detailed use case:

Here is a blog post URL:

https://www.trufi-association.org/volunteer-of-the-month-max-weber/

If I want to share that on various platforms (such as LinkedIn, Facebook, Threads, Xitter, Mastodon, Slack, WhatsApp, Reddit, YouTube, and MailChimp) I’d like to know (a) which of those platforms is most effective at bringing traffic to the site, (b) whether they found that blog post directly from the link I shared (as opposed to starting from some other page and clicking their way to the blog post), and (c) if I am A/B testing various paid ads, I’d like to know which of the ads are working and which ones aren’t.

All of that information is carried in those long-ass URLs with the UTM codes.

This is that same URL but with UTM information for when it is shared to Facebook

https://www.trufi-association.org/volunteer-of-the-month-max-weber/?utm_source=facebook&utm_medium=social&utm_campaign=social&utm_content=Volunteer%20of%20the%20Month%3A%20Max%20Weber

Until recently, I have used TinyURL to shorten those when sharing to various platforms — particularly platforms that will show the full URL, such as Facebook. LinkedIn, for example, does not display the full ugly (and untrustworthy looking) URL.

But with a self-hosted URL shortener, that URL and the conversion info could be:

trufi-association.org/short/max-weber-fb

If I were A/B testing different advertisements, they could be:

trufi-association.org/short/max-weber-fb-a
trufi-association.org/short/max-weber-fb-b

The taxonomy could be built-in to the naming convention (and managed by the tool itself):

trufi-association.org/short/max-weber-fb-a
trufi-association.org/short/max-weber-fb-b
trufi-association.org/short/max-weber-ig-a
trufi-association.org/short/max-weber-email

Since the redirection happens on the enterprise’s server, there is no dependency on a third party, and it bypasses the parameter stripping of some browsers.

Also: Enterprises with compliance requirements (healthcare, finance, legal) can’t route employee or customer clicks through a third-party service. Self-hosted solves that.

The questions I would have (as a potential user of a self-hosted URL shortener) are:

  • What kind of analytics does the tool give me? Can I look at the back end and determine that my Max Weber blog post, and determine that ad variant A is performing better than ad variant B on LinkedIn?
  • Can I bulk autogenerate URLs (e.g. Generate all of the variants at once, or generate using an API)
  • Can I modify the destination URLs of a short URL after I’ve created it?

In short: Kampfupi could be pitched as link infrastructure that also solves trust issues and provides marketing data that is missing or incomplete in the Google Analytics or other platforms that depend on UTM strings surviving all the way to the landing page.

1 Like

Thanks, Ted! Your posts are super insightful. So I pulled this one out from the Members area topic about @martin-at-kamusi’s https://kamfupi.link.

It’s interesting to learn how you see the URL shortener fitting in as a tactical tool for understanding how well links shared online are performing. And also the value you bring to nonprofits in this regard. :clap:

I did notice that people on linkedin tend to be tactical about sharing links to try to beat the linkedin algorithm, e.g. when writing about something not on linkedin they put the link in the comment, not in the main post. I can see the value in having a link that lets you track where your audiences are without having to have ugly parameters in the URL, especially if those are being stripped off in ways that are beyond your control.

Personally, my need for url shorteners is more basic.. I have a few links that I want to be able to refer to on a regular basis. Like in the old days websites always used to have an /about and /contact link that you could just tell someone. “just go to the contact page to send me an email!”

I also often (like Martin, it sounds like) want to share a link to content that has a long and incomprehensible URL by default, and want to have a more human readable version. It’s not so much about pushing out content to the internet and knowing whether people are actually reading it. Nextcloud actually now also supports this when sharing links to nextcloud, e.g. this is a link to a PDF on my nextcloud:

https://cloud.tobiaseigen.org/s/reasons

Doesn’t make use of my kb2.org short short url however and of course doesn’t help with sharing other content. So I might still like to try to install an open source url shortener here.

Much as I love exploring https://kamfupi.link and enjoy knowing the project exists, I wouldn’t want to use it because I don’t want to become reliant on a closed source project where I can’t export my data or know it will work for me into the future.

Hi Ted,

Thanks for the comments. I hadn’t thought about your use case, because I didn’t design Kamfupi with marketing in mind. I should clarify: Kamfupi is not a URL shortening service. Kamfupi is an office productivity service, with short URLs as the common currency.

Yes, you can share a URL, and give it a custom name. Say you’ve put a video on YouTube, you can call ithttp://trufi.org/our-newest-video,and you can also call it http://trufi.org/kickass-video, and a dozen additional names if you wish (e.g., a readable URL in each language you care about, or with emojis or hieroglyphs or any other unicode - check out http://kamu.si/🌹, http://kamu.si/وردة, http://kamu.si/玫瑰). Cool enough.

Now say you’ve put on a new newest video on YouTube. You can go into Kamfupi, click to edit the “our-newest-video” item, and change the URL behind it, with or without changing the links for the other shortcodes. Your :rose: is still a rose, while your link to updated content is updated without your users having to worry their pretty little heads. Cooler.

When I want to meet with someone on Zoom, I set up a new meeting behind the scenes, then change the long url at http://kamu.si/zoom. I just counted, it was 2 clicks to get into the search bar, 4 keyboard strokes (z o o m) to pull up the old reference, and six more mouse clicks to clear the old long url, paste in the new meeting code, and save. If it takes 15 seconds, it’s taken too long. The meeting link copies into my clipboard automatically, and I pop kamu.si/zoom into a message, and Bob’s your uncle.

But don’t you share things other than web links? Do you send pdfs, or documents, or photos, or audio files? Videos that you don’t want to put on YouTube (for example, b-roll for internal projects)? Here’s a video I made for a grant competition, that was too big to be an attachment: http://kamu.si/elevator-pitch

Let’s say you have a file called conference-planning-document.pdf that you’re sharing with a team. In Kamfupi, you save that as http://trufi.org/conference-planning-document and throw that link in an email or chat. Then 5 minutes later you see that you need to change something. You quickly make your edit, upload the revised pdf under the same shortlink, and nobody is bothered. Or you make more changes tomorrow, you can either change the underlying file and send out a memo to the team telling them there’s a new version at the old link (if it’s just a few of you), or you can save the new file in Kamfupi as http://trufi.org/conference-planning-16-May , and alert people accordingly.

Your pdf is 8mb and you have 100 people to share with? Instead of clogging all those mailboxes, you’re sending a super-short message. Imagine, you largely abandon attachments for links. You’ll regularly put those links smoothly in your communications with a donor agency, or in a fund-raising appeal, or any sort of graphic: Check out what we do at ``http://kamu.si/labs``, for example.

I’ve got an ongoing project to catalogue the weights of various transports, Comparative Transport Weights (kamu.si/transport-weights) - Google Drive . When I see a vehicle I want to add to the table, I grab the image and upload it to Kamfupi, then right-click the image link into the appropriate cell: http://kamu.si/hippo-and-car . Note, that link goes to the saved image on our server, not to a URL that contains the image. Note also that Kamfupi also gives you an img link you can paste right into html. Note also that a hella lotta people are burning gas to drag hippos with them everywhere they go.

One off-label use, my daughter is an avid reader. I made http://kamu.si/hotel-bell so she could signal victory with each book she finished. I’m sure that other people would have their own reasons to want to share audio files this conveniently. Or you could pay for SoundCloud.

Bulk transfer? Sure, you could pay for WeTransfer, or upload your files to Kamfupi and get a shareable shortcode with no sweat.

In sum, Kamfupi isn’t a URL shortener. It is a sharing service that connects a lot of productivity dots, way beyond anything conceived of in tinyurl or bit.ly. Certainly it needs work to be enterprise-ready, as with any product that needs to move out of the garden shed into the real world, but the starting point should be to judge it for the big things it does, not the small things you’ve seen others do. Maybe that should include features for marketing research (currently the only thing we track is the number of hits a shortcode receives, and zero additional data points), but that’s never entered my consciousness. I just know it’s transformational for work flow, and I don’t know how to communicate that to people who would really like to know.

1 Like

I’m definitely having an “If your only tool is hammer, every problem looks like a nail” moment with Kamfupi.

The use case you describe are definitely solutions to problems that come up — a lot. But there is a huge behavior change hurdle to get over.

Even in (checks calendar) 2026, I deal with people who can’t/won’t do document sharing and collaboration; it’s still email attachments. You can explain it, demo it, prove it’s value, and then they ask, “Why not just send an attachment?” [Tears out hair.]

I recently showed a simple little tool I created to… I don’t want to embarrass anyone, but their name rhymes with Schmobias Schmeigen. It’s called URL cycler. My argument: It’s better than bookmarks and reminders for URLs you need to check regularly. The response: “Why not just use bookmarks?” [Tears out remaining hair.] (FYI: URL Cycler is how I remember to check this Discourse.)

But I digress.

Have you (or could you) make a short demo video of Kamfupi?

I like URL cycler. It’s worthy of its own topic here!

These days I have become lazy. I don’t go out to websites to check to see if there is any new content there, but I wait for the email notification to hit my inbox from the source. I then read the email, click through to learn more, or if I don’t have time or am not inspired I just delete it. I also regularly unsubscribe.

Alot of those emails are from Discourse sites I am on, which send weekly updates when I haven’t been around for a while and also send email notifications when something happened that is directly of interest to me, eg a reply to a topic I have been actively participating in or a personal message, etc.

It’s good to be reminded regularly though that we all experience the Internet in our own unique, different ways, and we have our own habits.

1 Like