The above is a application does not access a server and runs entirely in the browser.
How it works
A problem that can occur is the url can get to long where it will not read it and I believe it looks better when it is a shorter url. 3 things were done to reduce the lenght of the url
Reduced character set, by default it is utf-8 character set which in this case takes 8 bits per character. We can reduce this by using a restricted character set of Base-64 which takes 6 bits per character. This is also benifital has uri valid characters are simailar to the Base-64 character set
Mapping the most common characters in english to the shortest characters in arial
Not added: Lz compression, this would negate the mapping to the shortest characters and on the shortest lists would actually make the list longer. On long lists this could be useful
Not added: Further reduced character set to Base 32, I felt this was to restricted as it removed most additional characters and only lower case which would be seen on the page