IndieWeb IndieWeb Being social on the Web Being social on the Web - - PowerPoint PPT Presentation

indieweb indieweb
SMART_READER_LITE
LIVE PREVIEW

IndieWeb IndieWeb Being social on the Web Being social on the Web - - PowerPoint PPT Presentation

IndieWeb IndieWeb Being social on the Web Being social on the Web DrupalCamp Gent 2018 | 23 November 2018 Your domain as your identity on the Web About me realize.be realize.be About me realize.be realize.be (or swentel, on drupal.org


slide-1
SLIDE 1

IndieWeb IndieWeb

Being social on the Web Being social on the Web

DrupalCamp Gent 2018 | 23 November 2018 Your domain as your identity on the Web

slide-2
SLIDE 2

About me

realize.be realize.be

slide-3
SLIDE 3

About me

realize.be realize.be

(or swentel, on drupal.org and twitter)

slide-4
SLIDE 4

In this presentation In this presentation

IndieWeb 101 Communicating via Webmention Markup your content with Microformats2 Publishing content through Micropub Your new social reader with Microsub Authenticating with your domain Joining the Fediverse with ActivityPub Live demo - nothing will go wrong

slide-5
SLIDE 5

Goal of the talk Goal of the talk

An idea how to create a setup where you can read and interact with the web, all from one place

This talk basically describes my current setup Disclaimer: I maintain the Drupal IndieWeb module and also Indigenous for Android

slide-6
SLIDE 6

So what is this IndieWeb anyway ? So what is this IndieWeb anyway ?

slide-7
SLIDE 7

POSSE Webmention Microsub RelMeAuth POSSE Webmention Microsub RelMeAuth Activitypub Domain Feeds Pingback HWC Activitypub Domain Feeds Pingback HWC WebSub MF2 PESOS Salmention Micropub WebSub MF2 PESOS Salmention Micropub JF2 PTD Backfeed Reader IndieAuth JF2 PTD Backfeed Reader IndieAuth Fediverse Vouch Reply-context Fediverse Vouch Reply-context

slide-8
SLIDE 8

But first But first

A history of the web in 5 minutes

Iteratively built Promoting Web standards Everyone had a blog RSS feeds! (they are not dead yet) Something happened around 2006-2007

slide-9
SLIDE 9

Who uses the following ? Who uses the following ?

Twitter Facebook Instagram Snapchat LinkedIn Swarm Google+ Pinboard Pocket Flickr

slide-10
SLIDE 10

Does anyone really like them? Does anyone really like them?

slide-11
SLIDE 11

What do these services do what {insert What do these services do what {insert your favorite framework} can't do? your favorite framework} can't do?

5% posting interface 95% reader interface Benets Ease of use Clean user interfaces Network effects

slide-12
SLIDE 12

Corporations Corporations

Own your data Misuse or even leak your data Keep or delete them They work for themselves and not for you Growing lethargy and lack of competition

slide-13
SLIDE 13

Algorithms Algorithms

can be toxic no control over them no control over bias monitization gamication dopamine response

slide-14
SLIDE 14

Site Deaths Site Deaths

Short, if any notice Data disappears Community disappears Connections disappear https://indieweb.org/site-deaths

slide-15
SLIDE 15

Site Deaths Site Deaths

Storify del.icio.us App.net Orkut My Space Friendster FriendFeed Google Reader Posterous Google Buzz Geocities

slide-16
SLIDE 16

Upcoming Site Deaths Upcoming Site Deaths

Google+ August 2019

slide-17
SLIDE 17

Policy changes Policy changes

Flickr: Independent -> Yahoo -> Smugmug Recently announced switch from unlimited data to 1000 photos without paid account

slide-18
SLIDE 18

Policy changes Policy changes

Flickr: Independent -> Yahoo -> Smugmug Recently announced switch from unlimited data to 1000 photos without paid account Facebook as good as closed anonymously in Belgium

slide-19
SLIDE 19

Policy changes Policy changes

Flickr: Independent -> Yahoo -> Smugmug Recently announced switch from unlimited data to 1000 photos without paid account Facebook as good as closed anonymously in Belgium Shutting down public API's

slide-20
SLIDE 20

Policy changes Policy changes

Flickr: Independent -> Yahoo -> Smugmug Recently announced switch from unlimited data to 1000 photos without paid account Facebook as good as closed anonymously in Belgium Shutting down public API's Slack drops IRC support

slide-21
SLIDE 21

Policy changes Policy changes

Flickr: Independent -> Yahoo -> Smugmug Recently announced switch from unlimited data to 1000 photos without paid account Facebook as good as closed anonymously in Belgium Shutting down public API's Slack drops IRC support

plus side: you have WimLeers all for yourself on #drupal-contribute :)

slide-22
SLIDE 22

Benefits of your own domain Benefits of your own domain

Control Freedom Your data is yours Reach everyone who can go online! Telephone analogy

slide-23
SLIDE 23

Avoid problems Avoid problems

Content loss Identity loss Censorship Content theft Personalisation/lter bubble Negative community

slide-24
SLIDE 24

IndieWeb movement IndieWeb movement

Back to the roots of the Web Loose collective, no corporation behind Focus on people and the message

slide-25
SLIDE 25

IndieWeb principles IndieWeb principles

Own your domain and data * Scratch your own itches Use what you make Document and open source your stuff UX and design come rst! Use, promote or contribute to web standards (W3C involvement) Syndicate your content

* own your own server too ?

slide-26
SLIDE 26

HWC HWC

bi-weekly meetings in your local town ? Come talk to me if you're interested. hack on own sites, projects etc hwc.gent

slide-27
SLIDE 27

IndieWeb building blocks IndieWeb building blocks

https://spec.indieweb.org/

slide-28
SLIDE 28

Drupal IndieWeb module Drupal IndieWeb module

Functionality currently split into 8 submodules Websub, Salmention, Vouch and ActivityPub upcoming https://drupal.org/project/indieweb

slide-29
SLIDE 29

Webmention Webmention

W3C status: Recommendation https://indieweb.org/webmention

slide-30
SLIDE 30

What is it ? What is it ?

When you link to a website, you can send it a Webmention to notify it. If it supports Webmentions, then that website may display your post as a comment, like, or other response, and presto, you’re having a conversation from one site to another!

slide-31
SLIDE 31

What is it ? What is it ?

When you link to a website, you can send it a Webmention to notify it. If it supports Webmentions, then that website may display your post as a comment, like, or other response, and presto, you’re having a conversation from one site to another!

From a technical perspective, the notication part is not so different as pingback

slide-32
SLIDE 32

Extensions Extensions

Vouch: anti-spam extension Salmention Private webmention

Tricky - not supported yet by Drupal module

slide-33
SLIDE 33

Webmention model Webmention model

slide-34
SLIDE 34
slide-35
SLIDE 35

Discovery Discovery

<link rel="webmention" href="https://realize.be/webmention">

slide-36
SLIDE 36

Syndication Syndication

POSSE: Publish (on your) Own Site, Syndicate Elsewhere PESOS: Publish Elsewhere, Syndicate (to your) Own Site (e.g. )

  • wnyourgram.com
slide-37
SLIDE 37

Brid.gy Brid.gy

Allows you to publish on other networks Provides backfeed to your site All by sending or receiving webmentions https://brid.gy/

slide-38
SLIDE 38

A note with interactions (replies, repost, like)

slide-39
SLIDE 39

Privacy ? Privacy ?

slide-40
SLIDE 40

Drupal IndieWeb module Drupal IndieWeb module

Rely on

  • r use built-in endpoint

Send webmentions (via drush or cron) Create comments when a reply comes in Use brid.gy to syndicate and get backfeed Show interactions with or without avatars and so on Other implementations at Webmention.io https://indieweb.org/Webmention#Publishing_Software

slide-41
SLIDE 41

MF2 and JF2 MF2 and JF2

http://microformats.org/wiki/microformats2 http://microformats.org/wiki/jf2

slide-42
SLIDE 42

Microformats2 Microformats2

Markup structured information in HTML Extremely simple: add classes to your markup! Representation in JSON

slide-43
SLIDE 43

Why apply to your content? Why apply to your content?

Figure out response type (like, reply, bookmark ..)

  • n incoming webmention

Microformats2 h-feed: gives richer, more structured content than RSS, ideal for microsub servers

slide-44
SLIDE 44

Example 'author' h-card Example 'author' h-card

<p class="h-card">My name is Kristof De Jaeger also known as <a class="u-url p-name" rel="me" href="http://realize.be">swen <span class="p-note">My bio</span> <img src="../images/swentel-200.png" class="u-photo hidden" al </p>

slide-45
SLIDE 45

Example 'note' post type Example 'note' post type

<article role="article" class="h-entry"> <a href="https://realize.be/notes/1606" class="u-url"> <span class="dt-published">2018-10-20T12:05:57+02:00</span> </a> <a href="/" class="u-author"></a> <div> <div class="e-content p-name"><p>A note</p></div> <ul class="tags"> <li><a href="/drupal" class="p-category">drupal</a></li> </ul> </div> </article>

slide-46
SLIDE 46

Example 'reply' post type Example 'reply' post type

<article role="article" class="h-entry"> <a href="https://twitter.com/status/10" class="u-in-reply-to"> in reply to twitter </a> <a href="https://realize.be/notes/1606" class="u-url"> <span class="dt-published">2018-10-20T12:05:57+02:00</span> </a> <a href="/" class="u-author"></a> <div class="e-content p-name"><p>Awesome!</p></div> </article>

slide-47
SLIDE 47

Post types Post types

Note, article, reply, photo, like .. These can be Drupal content types or comments https://indieweb.org/posts#Kinds_of_Posts

slide-48
SLIDE 48

JF2 JF2

Working prototype of a simpler JSON serialization of MF2

slide-49
SLIDE 49

Drupal IndieWeb module Drupal IndieWeb module

Microformats2: markup content (preprocess, formatters) Feeds: generate Microformats2 or JF2 feeds (You especially need this for Brid.gy) Post context: get references from external content (or microsub content) e.g https://realize.be/reply/content/1619

slide-50
SLIDE 50

Micropub Micropub

W3C status: Recommendation https://indieweb.org/micropub

slide-51
SLIDE 51

Micropublishing Micropublishing

Allow 3rd party clients to create, update or delete posts on your site Uses microformats2 JSON to post, or form-encoded Ties in great with readers: social actions! Extensions allow managing your content from apps too (Indigenous)

slide-52
SLIDE 52

Discovery Discovery

<link rel="micropub" href="https://realize.be/micropub">

slide-53
SLIDE 53

Clients and servers Clients and servers

(iOS and Android) - also readers! Many, many more at and Indigenous https://micropublish.net/ https://indieweb.org/Micropub/Clients https://indieweb.org/Micropub/Servers

slide-54
SLIDE 54

Drupal IndieWeb module Drupal IndieWeb module

Does post type discovery on incoming requests and can be mapped onto Drupal content types

slide-55
SLIDE 55

Map 'note' to Note content type Map 'note' to Note content type

slide-56
SLIDE 56

Microsub Microsub

W3C status: Draft https://indieweb.org/microsub

slide-57
SLIDE 57

What is it What is it

Provides a standardized way for reader apps to interact with feeds. server parses RSS, Atom, Microformats2 client connects with server and consumes the feed server implements various API actions (read, delete, follow)

slide-58
SLIDE 58

Discovery Discovery

<link rel="microsub" href="https://realize.be/microsub">

slide-59
SLIDE 59

Clients and servers Clients and servers

Clients: Indigenous, Together, Monocle Servers: Aperture, yarns, ekster https://indieweb.org/reader https://indieweb.org/Microsub#Clients https://indieweb.org/Microsub#Servers

slide-60
SLIDE 60

Indigenous android: channels

Pro tip: use to follow Twitter for instance https://granary.io/

slide-61
SLIDE 61

Indigenous android: timeline with actions per post

slide-62
SLIDE 62

Indigenous Android: create posts directly

slide-63
SLIDE 63

Drupal IndieWeb module Drupal IndieWeb module

Microsub module Use external service (e.g. ) or built-in endpoint Built-in endpoint is a server, not a client! Congure channels and feeds to read. Media cache: cache images locally (also for author avatars in webmentions) Aperture

slide-64
SLIDE 64

IndieAuth IndieAuth

W3C status: Draft https://indieweb.org/indieauth

slide-65
SLIDE 65

Authenticate with your domain Authenticate with your domain

Built on top of OAuth2 Can use RelMeAuth (distributed identity authentication) Either sign-in into another website Or give 3rd party apps an access token so they can Post to your site (micropub) Read from your site (microsub)

slide-66
SLIDE 66

Discovery Discovery

<link rel="authorization_endpoint" href="https://realize.be/au <link rel="token_endpoint" href="https://realize.be/token">

slide-67
SLIDE 67

Flow: enter your URL Flow: enter your URL

slide-68
SLIDE 68

Authorize Authorize

slide-69
SLIDE 69

Drupal IndieWeb module Drupal IndieWeb module

Use external service (e.g. )

  • r built-in endpoint for authorization and access

tokens Allow Web sign-in: Drupal user accounts are created then IndieAuth.com

slide-70
SLIDE 70

Fediverse Fediverse

Examples: Mastodon, GNU social, Pixelfed Everyone can install an instance on a different domain Typically use ActivityPub or OStatus to communicate with each other Webnger to authenticate

slide-71
SLIDE 71

Fediverse Fediverse

Examples: Mastodon, GNU social, Pixelfed Everyone can install an instance on a different domain Typically use ActivityPub or OStatus to communicate with each other Webnger to authenticate What if your site can communicate with them ?

slide-72
SLIDE 72

Enter Enter

Proxy around your domain Create a post on your site, then simply send webmentions to reply, like, boost on Mastodon More support for sites comming (pixelfed) Only needs a syndication target in the Drupal conguration Mastodon uses Microformats2, or has Atom feeds so you can follow users in your reader

fed.brid.gy fed.brid.gy

slide-73
SLIDE 73

Discovery Discovery

Interact once with the fediverse and you'll be found as your site

rst 'swentel' is a test account

slide-74
SLIDE 74

Module roadmap Module roadmap

Currently at Beta5 (breaking since Beta4) Aiming for RC in the next two weeks 1.0 end february 2019 Future 1.x releases: bugxes, nish Microsub API, multiple responses in one post, quickstart module 2.0: ActivityPub, Vouch, multi-user

slide-75
SLIDE 75

Demo time! Demo time!

publish note via 3rd party client trigger syndication ask for reactions view backfeed coming back show interactions on site show notications in reader

  • ptional: reply back
slide-76
SLIDE 76

Credits Credits

Chris Aldrich - www.boffosocko.com Sebastian Lasse - sebastianlasse.de/

slide-77
SLIDE 77

Thank you! Thank you!

join us! #indieweb / #indieweb-dev on freenode.net indieweb.org