From IndieWeb

URLs How? was a session at IndieWebCamp Düsseldorf 2019.

Watch: ▶️41:03s

Notes archived from: https://etherpad.indieweb.org/urls

IndieWebCamp Düsseldorf 2019
Session: URLs How?
When: 2019-05-11 11:30

Structuring URLs, future proof, aggregation,



URL design


  • Charlie shows her current URL design:
    • /notes
    • /notes/123
    • /posts
    • /posts/some-pretty-url
    • Should /note/123 go to /notes/123? What should load on /bookmarks/123 when 123 is only an ID for a note?
  • Has different content types for different concepts.
  • wants a page to show different things together in one place. How do you call that?
  • ... add notes


GitHub's blog post URLs are human readable, but not memorable, e.g.

  • (Charlie showed one that she had bookmarked)


  • /things
  • /things/ID
  • /things/ID/otherthings
  • /things/ID/otherthings/ID


more notes

  • feels like there is a difference between elements in a path and things in the query string
    • things in the path feel like you have to keep available always
    • things in the query string could be temporal / ephemeral

uppercase vs lowercase

  • Martijn van der Ven’s URL is case-sensitive, because it uses a path.
  • Charlie’s URLs are case-insensitive. /Bookmarks will rewrite to /bookmarks.

URLs as part of the UI

  • How much control does a CMS give you over the URLs?
  • We are all designers of the experience, we should be designing URLs.

How people use URLs

  • People put URLs in the Google Search field, and expect the first hit to be the thing they want to visit.
  • So do people actually “hack” URLs? Do they understand them?
  • Do people even see URLs? Mobile browsers will only show the domain, some browsers (Safari) have started doing this on the desktop.
  • Omnibar may have made a difference here too: previously browsers had separate fields for URLs and search. Writing a search term in the URL bar would not have worked, automatically informing people more about URLs.

Migrating URLs

  • Charlie kept all the URLs when going from Craft CMS to Drupal
  • If IDs are in the URL, and the IDs can stay the same, it is often easy to change non-ID parts of the URL (e.g. categories) and still have the CMS redirect automatically.
  • On Template:seblog the slug is not part of the unique URL for a post, so the slug can changed or removed.
    • His URLs are also hackable, drop parts from the end and you go back to posts that day, month, year.
    • Posts are stored as YEAR/ORDINAL/ID.
    • 5eb.nl/4zt2 – number of days since epoch, encoded in newbase60: 4zt, and the ID of the post that day: 2.

See Also