From IndieWeb

Algorithmic in the context of the IndieWeb typically refers to URLs or other identifiers that can be decoded using a purely computational algorithm into additional information. A URL or identifier is algorithmic if there is a way to decode it into additional information, typically about the thing it identifies, without having to retrieve it or otherwise look it up.


  • Reverse-engineerability is a feature of a good algorithmic id hash - the easier that people can decode what's going on from the fewest number of instances of the hash, the better.


type date increment

  • Tantek uses an encoded type, creation date, and increment in his permalink IDs and permashortlinks on Falcon posts on his site The type is encoded in a single character, the date post creation in newbase60 epoch days. His open source algorithmic URL shortener/expander Whistle performs the encoding/decoding.


  • dates can be used to correlate information, universally, long after the fact. incrementing integers or other apparently random opaque uuids (e.g. database assigned IDs) cannot.



When IDs are algorithmically generated and/or include other information, you have a chance of scripting links back together, perhaps even with automatic redirects. When URLs happen to have *some* kind of information, a date, a slug, a topic, anything that you can decode algorithmically, you can typically reconstruct it or even relink it to another location. Or even redirect after the fact.

Reimplementing an algorithm is much easier than recovering an opaque data table.


algorithmic IDs look opaque

"algorithmic IDs look opaque to me."

  1. As soon as you publish the algorithm openly (e.g. on your own site, open source shared repo, email lists, IRC discussion), and then they're forever non-opaque.
  2. Also, people good at (de)crypto can reverse engineer things from patterns. Given several instances of algorithmic IDs, often their structure can be determined by inspection.

See also