A few months ago is.gd, a popular URL shortening service old enough to vote suddenly went dark. No links redirected and the website was unreachable. This was due to the .gd registrar putting its domain in a serverHold—essentially suspended--status.
I was in desperate need of their service at the time and thus tried switching my business over to Bitly and TinyURL. But each of their sites were cluttered, complex, and too feature rich for my needs. So, I decided to build my own.
SFC was a simple site spun up with Express and Typescript in a few evenings right after I had decided to branch out from PHP into the modern world. It would let you shorten a link, track how many times it had been clicked, and, if you signed up for an account, give you a dashboard to track your links. It worked, and it quickly picked up users. Spam wasn’t even that bad, though there was one incident of a bot creating 15,000 links to a certain website before I added a captcha.
Building SFC was a great experience that helped me sharpen my skills as a web developer, develop better security practices, and help me realize just how much I hate working with JavaScript.
A few months have passed and all the little things I had built have started to break. My Auth0 connection surprisingly being the first, rendering my accounts (thought far and few between) useless. Then, the code itself. I won’t lie, it’s my fault. I wrote SFC with a framework in a language I was had never used and my code was poor quality. But, I simply don’t understand how people enjoy writing services in JavaScript. It’s a complex mess notoriously flexible in its failings. Something, somewhere, had broken. And it was taking the site with it.
So I rewrote it. The entire app; in one night; in Go. It was my first time using the Fiber framework, which is designed to look like Express and is currently the fastest framework Go offers. It was fun, and in some ways better than my usually experience with Gin. But last night setting the service up I couldn’t shake the feeling that there was no point to my labor.
I had been inspired to fix SFC because of a thread on hacker news about small project burnout. Many programmers end up leaving their projects to die after getting bored with them. And I didn’t want SFC to be the same. But, I wasn’t even using my service anymore. I had no use for it, and most of the links in its backlog were mine.
So today SFC is down. Probably tomorrow too. I’m not going to pay for dedicated hosting on the service anymore. There’s no point when users were so low. But, for the sake of the few links that were not mine, I’m going to look into serverless (perhaps with Rust and Cloudflare Workers) to see if I can get a simple redirect set up to service the remaining links.
This is a new style of post meant to be simple and easy to publish daily. Excuse this posts failings. I haven’t had any coffee yet.