communication

 communication  in the context of the indieweb refers to using your personal website as a starting point and potentially way for people to contact you.

Why
See:
 * Toward A People Focused Mobile Communication Experience

Make your homepage homescreen friendly
Add an icon to your personal site so that others can add your site to their home screens on their devices.

Add a contact card
Put an h-card on your home page with links to ways you want to be contacted, in your preference order.

Add a contact UI
Put that h-card on a separate /contact page on your website, e.g. at you.example.com/contact with:
 * 1) Easily recognizable / clickable icons for each link to a way to contact you.
 * 2) Optional: conditionally show/hide ways to contact you based on:
 * 3) * browser device/OS
 * 4) * your time of day / or how available you are to being interrupted

For detailed markup instructions, see:
 * http://tantek.com/2014/120/b1/markup-people-focused-mobile-communication

For examples, see below.

URLs for contact buttons
You can use these URLs and URL schemes to make contact buttons.

These are all actual schemes in live use on currently active IndieWeb contact pages, not a comprehensive list of possibilities.

Text:
 * sms: e.g.  for an email address registered with iMessage
 * mailto: e.g.
 * skype: e.g.  using a Skype name instead of example123

Call:
 * facetime-audio: e.g.  using an iCloud registered address
 * skype: e.g.  using a Skype name instead of example123

Video call:
 * facetime: e.g.  using an iCloud registered address
 * more on facetime: URLs: https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/FacetimeLinks/FacetimeLinks.html

See more URL schemes, some historical: URLs For People Focused Mobile Communication

Want to add another URL/scheme to this list?
 * First add your own contact page (that uses that URL/scheme) to the section below

IndieWeb Examples
IndieWeb community members with mobile-friendly contact pages with one-click/tap buttons as described.

Tantek
undefined is experimenting with a prototype at tantek.com/contact since 2014-11-18 (and previously at contact.html since 2014-06 at IndieWebCamp 2014)
 * conditional showing of FaceTime Audio button only for iOS and MacOS (since 2022-05-27)
 * previously was a FaceTime button only for iOS and MacOS (as of 2014-10-11 at IndieWebCamp Cambridge)

previous add to home screen
Dropped as of 2022-05-27 as it seems more a distraction than useful to the user:
 * animated "add to home screen" instruction drop-down on first load (as of 2014-10-29 at W3C TPAC - verified on 's iPad). Lot's of fiddling, but here's the code using Matteo's "Add to Home Screen" library that worked: 

capjamesg
has a /contact page on his website at jamesg.blog/contact since 2022.

James' page shows links to his:


 * Email address
 * Instagram page

James also has an unlisted contact link for FaceTime.

Ben Werdmuller
Ben Werdmuller used icons to link to a small handful of ways to reach him on his werd.io homepage. (2014-...-...?)

Tim Owens
Tim Owens had set up a nice indie comms page on http://timowens.io/contact/ since 2014-10-11 (at IndieWebCamp Cambridge) including:
 * shows an animated "Add to Homescreen" instruction drop-down on first load.
 * 404/down as of 2016-12-02 or earlier (maybe 2015?)

Other Independents
Other independent examples:

Terence Eden
See:
 * https://edent.tel/

Where he has a similar mockup of an mobile phone home screen / app buttons UI with clickable links (with various URL schemes) for various contact methods, as well as links to his profiles on various silos and communities.

(screenshot needed)

Contact Icons

 * Twitter SVG button

See also: FreeMyOAuth for additional common silo button images.

Lets Talk
 Let's Talk  is a userscript that renders h-cards in a standard format. When you go to someone’s web site, Let’s Talk shows you at a glance how to contact them and which methods they prefer. See https://snarfed.org/2014-03-10_lets-talk-userscript for more details.

Three button UI
Ideally an IndieWeb contact UI (e.g. someone's /contact page) should have three buttons:

[txt] [call] [video] (screenshot/mockup needed!)

Perhaps enabled/disabled based on sign-in, time of day, sleep status etc.

The three buttons would behave as follows:

Txt button
[txt] button -> reveal a text message entering UI:

(Sign-in) (if they're not already signed in with indieauth) [ message text area ] (Send) (screenshot/mockup needed!)

Clicking the (Send) button would:

At a minimum:
 * submit the message to the recipient's IndieWeb server
 * the recipient's IndieWeb server would send a push notification to the recipient's currently active client devices (e.g. mobile, laptop).

Better (advantage: sender's site keeps a copy of the message)
 * webaction to send a direct message
 * handled by the sender's already registered indie-config handler
 * the sender's own site shows a pop-up confirmation UI to send that message to the recipient
 * the sender's site saves the message at a private permalink
 * and sends a IndieWeb private message from their site to the recipient's site
 * the recipient's website saves a copy of the private message at a private permalink
 * the recipient's IndieWeb server sends a push notification to the recipient's currently active client devices (e.g. mobile, laptop).

Even better (advantage: no need for additional pop-up confirmation UI)
 * have already gotten Micropub authorization from the sender at sign-in time
 * use Micropub to private publish the message as a private outgoing message on the sender's website
 * the sender's site saves the message at a private permalink
 * and sends a IndieWeb private message from their site to the recipient's site
 * the recipient's website saves a copy of the private message at a private permalink
 * the recipient's IndieWeb server sends a push notification to the recipient's currently active client devices (e.g. mobile, laptop).

So people can txt you without ever leaving the web, or depending on a 3rd party site/intermediary/service/addressing system.

Fallback:
 * without IndieAuth sign-in, fallback to a page of existing services
 * sms, FB Messenger, Gtalk, email, Twitter DM

Call and video buttons
[call] + [video] -> initiate a WebRTC call (e.g. Firefox Hello) with only-voice or video+voice accordingly
 * assuming your client browser supported that
 * if not, it can fall back to a page of existing services
 * FaceTime, Skype, etc.

Ideally the mechanism for an audio call, while in-progress, could allow the caller and/or callee to opt-in to allowing for video, and if both did so, the audio call would be upgraded to audio+video.

Verb redirect URLs
Might be convenient to setup a few redirect URLs (perhaps even as a building block of said 3 button UI)


 * /txt and/or /sms - redirects to an SMS: URL for you, or provides a simple SMS txting UI (similar to such UIs on mobile apps like iMessage, Google Hangouts etc.)
 * /call - redirects to a FaceTime (audio) URL, or tel: URL, or provides a WebRTC start call UI.
 * /facetime - redirects to a FaceTime (video) URL to make a video call

iOS7 home page
Here are some mockups for how you could present a top level bar of communication, collaboration, and other options that feel familiar to an iOS7 iPhone/iPod user:



Contact expanded
When a viewer taps the Contact icon folder it expands as follows, and then the viewer can tap the mode of messaging/communicating they want to use to contact me which immediately opens a new message (txt, FB Messenger, G+ Hangouts, AIM IM), or starts a new call (FaceTime, Skype), or Twitter new direct message window. Directly to communicating - bypassing all comm app home page / activity distractors.

The one change I'd make from these mockups are some of the labels. All of the labels should be verbs, not nouns, indicating the action the user wants to take and thus reinforcing their intention.

E.g. "Messages" should be "txt message", "Messenger" should be "FB message", "Hangouts" should be "GTalk", and the rest seem to read fine as verbs.



iOS6 mockups
Original prototypes done in iOS6, probably not worth implementing, but may contain interesting UI ideas nonetheless:



Contact expanded

The one change I'd make from these mockups are some of the labels. All of the labels should be verbs, not nouns, indicating the action the user wants to take and thus reinforcing their intention.

E.g. "Messages" should be "txt message", "Messenger" should be "FB message", "Hangouts" should be "GTalk", and the rest seem to read fine as verbs.



Improving Install Experience
Currently sites have to use a convoluted script to attempt to prompt the user to add their comms page to the home screen AKA install it.

"Web App install banners" may be one way of improving this UX, but it requires that your comms page be / have:
 * HTTPS
 * have a web app manifest (see sample manifest)
 * short_name
 * 144x144 png icon with explicit mime type of image/png
 * a service worker registered on the site, e.g. see the simple custom offline page example

Limitations:
 * The user must visit your site "twice over two separate days during the course of two weeks."
 * This fails to address the use-case of meeting in person and exchanging contact (web) addresses and expecting it to be one-click "installable" upon loading the page *once*

Authentication
When communicating from one indieweb user to another, how do you authenticate that the person you are communicating with is actually the person you think it is? This applies to messaging in general.

(This use-case is a stub and should be expanded)

Articles
Articles on some of the challenges of person-based communication:
 * 2013-11-18 WIRED : Can We Talk? by Mat Honan . http://www.wired.com/2013/11/canwetalk/

Articles about researching and solving personal / indieweb based communication:


 * 2014-04-30 Tantek Çelik : Markup For People Focused Mobile Communication
 * 2014-03-25 Tantek Çelik : URLs For People Focused Mobile Communication
 * 2014-03-19 Ben Werdmüller: Seeking an #indieweb alternative to Google Voice
 * 2014-03-08 Tantek Çelik : Mockups For People Focused Mobile Communication
 * 2014-03-08 Tantek Çelik : Building Blocks For People Focused Mobile Communication
 * 2013-12-04 Tantek Çelik : <cite class="p-name">Toward A People Focused Mobile Communication Experience