2017 / 10 / 25 - article
MicroRL - URL shortening, made simple - School-time projects
Jumping directly in the presentations from my first finished project that was Nexus, let me present my latest project: MicroRL (Real name:
Sooo… What’s that ?
I recently made a small a basic URL shortener, still keeping the simplicity and lightness aspect in mind.
I first got the idea when I was publishing some links on IRC, but using the Tmux IRC client, some URLs were cut by line return.
Being quite bothered by this bug, I thought for myself “Hey, what if I made a URL shortener for myself ? After all, it’s quite the basic and classic project!”.
Then…, I forgot about it.
Later on, I got this problem again, and when I wanted to send some links on twitter, it also limited me.
This time, I decided to keep the idea from when I had some free time to spend, and I sometimes thought a bit about it.
At the sime time, I started tinkering with a small PHP routing library, called siler (library I made a small contribution on, for documentation purposes).
Naturally, when I started working on what I’d use and how I’d make my URL shortener, I decided I wanted those “new” fancy URLs (you know these URLs that have no “file extension” and are all treated by the same file, like “https://test.abc/this/is/a/fancy”) !
As I wanted my tool to be lightweight, I decided to use Siler. For the database, like always, I’ve been working with PostgreSQL, as I have a nice DB setup running and it kinda suits my needs here.
My main concern was about keeping it simple (Remember, KISS) while still fully functional by its primary function. So no over-complicated interface, a simple form field and button would be way enough for me !
So I decided to go with in-page CSS and JS with only 10 CSS item changes. Barely enough !
A simple form with one field and a submission button, a small form request redirection and voilà ! The entire client magic is done !
Where can I find the project?
Like on the nexus article, the project is freely available on Gitlab (Here).
Note though that the URLs you pass aren’t cyphered and there’s a good chance they won’t be (or they may, following a later update. To see…).
A following update I’ll work on will be better “random” tokens instead of primary keys.
Some upgrades that may be done later on
I have some ideas to make the µRL tool “better”. Some small and (almost) lightweight features to add. Here’s a small list of these features:
- More “random” tokens.
- Cyphered URL storage, with random key generation.
- Uploaded URL removal. That would require some work to secure the call, as we don’t want someone to simply remove an existing URL.
- Stats for URLs count, most shortened websites etc. . Spam wouldn’t be prevented, but an API key would be required with each stats request, as gathering and calculating all the data can cost some time.
As I could see by myself, making a URL shortener is quite simple, fun and can really come handy later !
I still have a lot of ideas for this URL shortener. Some are easy to implement, some are harder, but all of them are definitely nice to do !