I give you a new link shortener - cuti.io (update)

February 11, 2024
2 min read
I know it's been a while since I posted anything here but it's been busy few weeks. And I don't come to you with empty hands. I just published a completely new version of my link shortener - cuti.io. Not gonna lie, this post is just about bragging, you've been warned!

TL;DR

Here's the link, please feel free to take a look: cuti.io.

Update

Due to some infrastructure issues, cuti.io doesn't work at the moment. I will bring it back at some point but not sure when it's going to happen exactly.

A few words about it

I started thinking about writing my own link shortener back in 2016. This is when I bought the domain name and started working on the very first version of the app. After a while, not sure when exactly, I published it and stopped working on it. I didn't have much programming experience at the time and it wasn't the best app ever but it worked.

Long story short, the current version is the third one I wrote. There is still room for improvement but I'm pretty happy with the result. The available features are rather limited, there's no way to manage created links, you can just create links and see the most recent ones from the homepage. I do have plans to extend it in the future but it will take some time as I do have other things to do first.

Tech stack

The app consists of a few parts but the bottom line is that there are a few services built with FastAPI, the frontend is a simple React app, the database is PostgreSQL, I used Redis as the cache and nginx is the proxy and load balancer. For analytics, I decided to use a self-hosted Plausible installation so I track the bare minimum I need and I can stay in charge of the collected data.

The whole thing is hosted in my homelab Kubernetes cluster so it is possible that it will be offline once in a while, even though I do what I can to keep it running.

And that's it, really

This is a less technical post so I won't dive too deep into how the whole thing works, even if it's a pretty simple app. I may write a dedicated post about that at some point in the future. Today, I just wanted to share the good news with you. If you give it a try and have some suggestions or notice any issues then please do let me know.

I'll try to add something more useful soon. For now, have a nice one!