permashortlink

A  permashortlink  (abbreviated PSL  ) is a URL using a short-domain that expands to a permalink; on the IndieWeb, PSLs use personal short domains to expand to the same person's personal domain, thus minimizing the fragility often associated with shortlinks.

Why
There are several reasons to create and maintain permashortlinks.
 * More reliable in email (some mail programs truncate/break URLs >70 chars)
 * Quicker to recall / copy due to size in IM, browser screenshots, print, images, etc
 * Less effort to manually enter - The easier to read and type-in, the more folks visit the URL.

Older reasons that apply less or not at all nowadays:


 * Content limits on POSSE destinations, where providing a permashortlink at the end saves space over a full permalink, thus allowing you to POSSE more of your content.

See also: http://tantek.com/w/Whistle#whyshortURLs

How
Here is a simple way to setup permashortlinks:
 * Get a personal short-domain
 * Set it up to redirect to your personal domain
 * Setup short path handling on your personal domain to expand and redirect to your permalinks.

IndieWeb Examples
Ordered roughly by when deployed.

Tantek
undefined uses Falcon running on tantek.com with algorithmic permashortlinks POSSEd since 2010-01-26. Example:
 * https://twitter.com/t/status/8228455558 POSSE copy has http://ttk.me/t43W1 at the end, which links to:
 * http://tantek.com/2010/001/t1/declaring-independence-building-it

Summary description: This is sufficient to expand to:
 * http://ttk.me/tSSSn or
 * http://ttk.me/b/SSSn where:
 * SSS = sexagesimal epoch days - see http://tantek.com/w/NewBase60
 * t = literal 't' for short text notes, and 'b' for blog posts / articles. Both from this list: http://tantek.com/w/Whistle#design
 * n = nth post of that type that day
 * http://tantek.com/YYYY/DDD/tn/ or
 * http://tantek.com/YYYY/DDD/bn/ respectively, where:
 * YYYY = year
 * DDD = day of the year (see related: http://en.wikipedia.org/wiki/ISO_8601#Ordinal_dates )
 * t or b = again a literal 't' or 'b'
 * n = nth post of that type that day
 * and that's sufficient to retrieve the post from storage, including slug text which follows the "...n/" in the permalink URL

For more details and background/thinking, see the interview/article:
 * http://www.monkinetic.com/2010/05/26/tantek-celik-diso-20-brass-tacks

Michael Owens
uses Whistler on https://mowens.com/ as of 2014-07-08.

Whistler is a Node.js module that implements a flexible version of the Whistle algorithm (by Tantek at http://tantek.com/w/Whistle) for shortening, expanding, and explaining links using NewBase60.

Whistler and the NewBase60 Node.js modules are both available on NPM and GitHub:
 * Whistler
 * NPM: https://npmjs.org/package/whistler
 * GitHub: https://github.com/mko/Whistler
 * NewBase60
 * NPM: https://npmjs.org/package/newbase60
 * GitHub: https://github.com/mko/NewBase60

Marty McGuire
uses algorithmic permashortlinks, handled by a Python Flask application since April 2016.

Summary Description:
 * Each post on Marty's site has a permalink URL (or a redirect) based on the date and time it was published. They are of the form: https://martymcgui.re/YYYY/MM/DD/hhmmss/.
 * Permashortlinks are of the form http://mmg.re/DDDTTT where:
 * DDD = NewBase60 epoch days. This is expanded to /YYYY/MM/DD/
 * TTT = NewBase60 seconds in the day. This is expanded to /HHMMSS/
 * Example: http://mmg.re/4xgNaa expands to: https://martymcgui.re/2018/11/26/173535/

The source code for handling the redirects is available here.

Maxwell Joslyn
implemented version 1 of a permalink URL shortener on 2020-12-21. It lives at mxjn.me. Right now it handles only the simplest use case: straight redirects from short domain to full domain.

Summary:
 * There are a mishmash of permalink forms on his website, including /yyyy/mm/dd/slug, /slug, and /poems/slug.
 * Version 1 of Maxwell's shortener simply converts "mxjn.me" to the full "maxwelljoslyn.com" domain and redirects the request with the same path.
 * Being so simple, the entirety of the implementation was setting up DNS records and writing a couple lines of server config to capture and pass on the path after "mxjn.me".

Silo Examples
2009-12-08 I'm noticing everyone has their own URL shortener now. E.g. silos:

Flickr
Flickr: flic.kr -> flickr.com

Build It With Me
Build It With Me: bldw.me -> builditwith.me