1# umu
 2Personal shortlink generator
 3
 4## Features
 5Links are …
 6- Editable
 7- Removable
 8- Four characters long (26 uppercase letters + 26 lowercase letters + 10 numbers
 9  = 14,776,336 possible shortened URLs)
10
11Service has …
12- A simple API
13- A simple web UI
14- A simple backup procedure (database is a single file)
15- No user management (this is a *personal* service after all)
16
17## But … why?
18Good question. URL shorteners are (usually) terrible and useless. Except when
19used correctly :thinkingsmart:
20
21I take a lot of hand-written notes on things and, having both a passion for and
22job in IT, my notes would be much more useful if they included links to the
23things I'm writing about. However, there's no way I'm going to hand-write a 50+
24character URL.
25
26That's where URL shorteners come in!
27
28Most shortener services I've found that are both open source and self-hosted use
29something like 6-character-long paths for the link as they're meant for use by
30multiple people; 14.8m possible URLs (your cap with 4 character paths) aren't
31enough for public services.
32
33Six characters is *fine* but why write six characters when you could write four :D
34
35Also, why deal with user management and a relational database when you're only
36going to have one user and a bunch of keys with values :D
37
38I also had a case of the typical "programmer unsatisfied with the {language|tech
39stack|license|feature set|all of the above}, wants to make something better"
40problem. I'm not a big fan of Node, PHP is ok, Python is meh, big relational
41database is unnecessary, heavy frontend is unnecessary, complex backend is
42unnecessary, I don't care about link tracking, click counts, link referrers,
43geo-location of visitors, etc., etc., etc.
44
45All this put together, I decided I would be best served by using this as an
46opportunity to learn more Go and write my own thing that does nothing more than
47what I want need :)