checkin

A  checkin  is the action of checking into a location and sharing that information. The term is often also used as a verb, to check in.

Services like Foursquare, Gowalla (shutdown after being acquired by Facebook), Dodgeball (shutdown after being acquired by Google), Google Latitude (also shutdown by Google) are social community sites specifically designed for sharing checkins.

The indieweb community is exploring how to post checkins to one's own website (likely privately), and how/when to syndicate (in POSSE style) such checkins to checkin-related community sites.

Why
Why should you publish checkins? A few use cases :

serendipitous meetups
If a high enough percentage of your friends use checkins, or view them, you can checkin to increase the chance of serendipitous meetups happening.

But to enable this use-case, checkins have to be really simple and unobtrusive, i.e. like the old Dodgeball txting UI was so simple that it made it very efficient to do so, so more people did so more often, thus enabling serendipity.

personal logging
I'm entering a specific venue, I'd like to quickly/automatically capture the fact that I'm entering that venue (similarly for exiting) for personal logging / quantified self purposes.

Personal tracking could be done purely with private posts, however, friends-only checkin posts, without any expectation of anyone showing up, serve the purpose of also letting friends know where you are (and thus providing a feeling of being implicitly connected, even if mediated through such an indirect means).

in town
I'm visiting a city other than my home town, and rather than try to figure out who I know may be in that town at the moment and compile far too many explicit messages or a long BCC email, I'd like to announce to my friends who happen to also be in that city that I've arrived there and will be around a bit in case they'd like to meet up.

just in time social meals
I'm out at a coffee shop and want to quickly see if any friends are are nearby and might interested in getting brunch/lunch/dinner/drinks together.

finding people in a crowd
I've just arrived at a busy place/event, and I want to see if other people I think are coming have arrived yet so I know whether to look out for them.

earning cred

 * I want my local coffee shop to see I'm their best customer.
 * I want my boss to see I'm always in the office.
 * I want people to see I regularly help out at the local children's hospital.

awkward situation mitigation

 * I want to see who else is here before I go in, so I can avoid people I don't want to see.
 * I want to tell the world I'm somewhere I'm not.

geo-gaming

 * geocaching is a game in which players try to find containers hidden at particular locations and checkin usually via a silo site
 * geohashing is a game inspired by an XKCD comic in which players checkin to coordinates randomly-determined each day

why not to checkin

 * home. Frequent checkins at home can be annoying to your friends that see your checkins.
 * work. Similarly, if you mostly checkin to work at the same time every day, that too can be annoying to your friends.(from personal experience with early Dodgeball usage).
 * privacy. Some people won't checkin to maintain privacy or are worried about potential stalkers and/or harassment. Checkin after the fact may be a potential solution. See also postsquare.

Publish
How to markup a checkin post:
 * Use h-entry
 * Use the property  and make the value the h-card for the venue
 * Include your other h-entry properties as normal

Checked in to Venue Name

...

or a checkin with content from the user

Checked in to Venue Name User-entered text as part of the checkin

...

of course if you want to include latitude/longitude information for the venue, then your h-card will be larger:

Checked in to    Venue Name User-entered text as part of the checkin

...

Most consumers of checkins will ignore the  of the h-entry, so that is really only there for fallback for consumers that don't recognize the checkin property.

POSSE
What are best approaches to POSSEing checkins?

POSSE to Foursquare
POSSEs his checkins to Foursquare with Known.

POSSE to Facebook
currently manually POSSEs from his site to Facebook, manually picks the venue etc.

Can likely call Facebook API to get a list of venues at a geo location.

Could also create a Bridgy Publish feature that looked checkin post with a Facebook venue URL and then POSSE the checkin to FB.
 * https://github.com/snarfed/bridgy/issues/317

PESOS
For those not using POSSE yet.

PESOS from Foursquare
Felix Schwenzel modified OwnYourGram by to allow PESOS of checkin on Foursquare (really Swarm) via micropub using OwnYourCheckin.

PESOS from Swarm
OwnYourSwarm, also by, PESOSes your Swarm check-ins, photos, and "with..." person-tags to your own site via micropub.

PESOS from Geocaching sites
has implemented a plugin which streamlines PESOS of geocaching logs from the dominant silos (e.g. Geocaching.com) into WordPress.

IndieWeb Examples
In rough launch/implementation order:

Barnaby Walters
Barnaby Walters is using Taproot on waterpigs.co.uk to post notes with location data (including rev-geocoded address data) represented with an embedded h-card venue and in an embedded map, since 2013-01-24. Currently manually tagging specific check-ins with #checkin, but is working on adding richer venue information. Examples:
 * 
 * See Barnaby's notes tagged checkin for more
 * And notes tagged location

Tom Morris
Tom Morris is using Ferocity on tommorris.org to publish notes with venue data in an embedded h-card with geo microformat hyperlink (with title="lat;long") since 2013-02-02. Examples:
 * http://tommorris.org/posts/8073
 * http://tommorris.org/posts/8074

Ben Werdmuller
Ben Werdmuller is using Known to post checkins since ????-??-??. e.g.:
 * http://werd.io/2014/checked-into-moscone-center

Michael Owens
is using indie.js to post checkins with POSSE to Foursquare since 2014-09-07 e.g.,
 * https://mowens.com/checkins/2014/09/07/1/checking-in-from-my-own-website (POSSE)
 * https://mowens.com/checkins/2014/10/16/1/ (PESOS)



Ryan Barrett
is using WordPress with his own modifications to post checkins since 2014-11-13, usually PESOSed via ownyourcheckin, occasionally manually POSSEd to Facebook, e.g.
 * checkin with nested event: https://snarfed.org/2014-11-13_11514
 * with  (broken due to using class attribute) image and nested:
 * with  (URL, name), with nested:
 * (just URL, name)
 * Note 1: We haven't specified how to check-in at an event (something Swarm lets you do at some venues, like movie theaters), so this is an interesting prototype to further analyze.
 * checkin with photo: https://snarfed.org/2014-11-24_11741
 * same as previous, but no u-featured, and a "u-photo" property on the photo img inside the h-entry instead
 * checkin with a person: https://snarfed.org/2014-12-07_11859
 * same as checkin with nested event, but without u-featured, and inside h-as-checkin:
 * nested h-card for the person with, with name & URL
 * checkin with two photos: https://snarfed.org/2014-12-23_12146
 * same as checkin with photo, however, the two photos are not marked up with u-photo
 * checkin with two people and a photo: https://snarfed.org/2014-12-27_12198
 * same as checkin with a person, both people are marked up as h-cards inside the h-as-checkin.
 * the photo is not marked up with u-photo

Ben Roberts
is using google maps static map to generate display in Postly since 2014-12-24. e.g.:
 * https://ben.thatmustbe.me/checkin/2014/12/19/3/

Chris Aldrich
began owning his checkins on 2015-02-15 using Known while also syndicating to Foursquare. On 2016-04-03 he began owning his checkins using micropub to his WordPress site using OwnYourCheckin and WordPress Post Kinds.

Ryan Rix
can post checkins from Arcology] since 2016-04-13 by creating a post with the CHECKIN tag on it and then calling a function `arcology-checkin-get-venue-id' which calls out to the Foursquare API to pull and cache the information for a venue.

Martijn van der Ven
posted his first checkin during HWC 2016-12-14 based on a discussion of the format on IRC.

Sebastiaan Andeweg
also posted a checkin during HWC 2016-12-14, from the same venue as. His CMS recognises the 'checkin' field now and renders it as a  with   and. No real posting UI or venues yet.
 * 2017-05-19: changed my storage of checkins to a full embedded h-card (instead of just a name and url field) to support OwnYourSwarm, to use Swarm/Foursquare's posting UI and venues.

Aaron Parecki
added support for posting checkins using p3k on 2017-03-18.
 * https://aaronparecki.com/2017/03/07/19/

Barry Frost
posted his first checkin via Micropublish on 2017-03-15 to his Transformative site. He then used OwnYourSwarm to post his second checkin on 2017-03-20.

Eddie Hinkle
added support for posting checkins using abode on 2017-04-21. This is powered by using OwnYourSwarm, and He is importing previous Swarm posts as well.
 * https://eddiehinkle.com/2017/04/21/1/checkin/

Ravi Sagar
Ravi Sagar is using Drupal site to post notes with location. Not yet using the h-card format though. Also using another Known site http://www.sagar.ravi.pro and evaluating how checkins can be sent to Foursquare and vice versa.
 * http://www.ravisagar.in/checkins

Marty McGuire
added support for checkins on 2017-06-23.
 * https://martymcgui.re/2017/06/23/132159/

He uses OwnYourSwarm to syndicate checkins from Swarm to his own site. Checkins from prior to 2017 have been backfilled using aaronpk's Swarm-Checkins-Import.

His checkin posts typically have:
 * a map image with a pin via a selfhosted copy of staticmaplite, which pulls and caches images from Stamen's hosted Toner tilemaps.
 * plain text summary (e.g. "📍 Checked in at VENUE, City, Region")
 * any photos posted to Swarm
 * any text note attached to the checkin
 * person-tags of other Swarm users. Mapped to their own domain, if possible.
 * Example: https://martymcgui.re/2017/06/25/124528/

Vika
Vika's pyindieblog is able to render checkins since 2019-09-09: https://fireburn.ru/posts/1567956895

The venues are filled in with curl (for now), an interface is planned.

The checkin property in Micropub can either be a URL (then it's fetched and a minimal h-card is created to help XRay parse the checkin) or an h-card object (in which case its inserted directly). The h-cards are stored in the /hcards/ (no listing of h-cards for now, but geoqueries are supported!)

capjamesg
uses his own Micropub client to publish checkins on his site. He also uses OwnYourSwarm to syndicate Swarm checkins back to his own website.

Checkins are listed on a dedicated /checkins page which shows a feed of checkins. The feed is marked up using the h-feed microformat.

Here is an example checkin:


 * https://jamesg.blog/checkin/berwickupontweedharbour-lxi

Manton Reece
is using Micro.blog and OwnYourSwarm to post check-ins to: https://manton.coffee

Google Maps is used to show the location from longitude/latitude stored in Micro.blog.

Manton has also imported old check-ins from Ohai / App.net with a script that sends data via Micropub: https://www.manton.org/2022/07/05/importing-checkins-from.html

Prototypes
Some folks have experiments or prototypes of posts resembling or approximating checkins but are lacking key information in some way, e.g. explicitly marked up location information.

Tantek
undefined has manually PESOSed a couple of checkins to his site tantek.com from inadvertent Twitter cross-postings from Swarm on 2015-03-28: These posts are notes that show how a checkin could be presented in plain-text form, i.e. how a full checkin post could be POSSEd to Twitter, based on how Swarm cross-posts checkins to Twitter. Note how the Twitter copies have a permashortlink after their text content that links to the respective Swarm posts.
 * http://tantek.com/2015/087/t2/athletic-tshirts-sale (on Swarm, on Twitter)
 * http://tantek.com/2015/087/t1/post-bike-riding-yum (on Swarm, on Twitter)

Kyle Mahan
used Red Wind on kylewm.com to publish checkins since 2014-03-24. E.g.:
 * Archived example
 * added support for checkins to actual (permalinked) venues on 2014-10-26.
 * checkin: Archived example
 * venue: Archived example


 * Venues are saved as a name, lat/lng location, and reverse geocoded location. Permalinks are name-locality-region. Still TBD what to do about duplicates within a locality, e.g. chipotle-san-mateo-california

sessions
Past discussion sessions on indieweb checkins: Pretty good notes in there that could be abstracted and captured in general form in new sections here.
 * 2012-181 OSBridge BarCamp Day: Foursquare is down! Let's figure out IndieWeb Checkins!
 * 2012-182 IndieWebCamp 2012: Open Checkins
 * 2016-023 IndieWebCamp 2016/NYC: Checkins, Locations, Venues
 * 2017-133 IndieWebCamp 2017/Düsseldorf: Checkins

questions
More explorations/brainstorms than FAQ yet.

just a note with a location
Is a checkin actually a separate post type?

Or is it just a note with location information?

Or does a note with location information become a checkin only when the location is a specific venue?

E.g. what are the user-expected/intentioned differences between:
 * checking into Foursquare
 * posting a note on Twitter with location information?

The posts page has some discussion about the general question about explicit vs. implicit post kinds.

Brainstorming
More ideas than creations, some thoughts about how individual indieweb community folks want to do indieweb checkins.

indieweb venues
Main article: venues.

"I'd rather post a check-in on my own site, and have it use a venue URL that is *also* on my own site. Then at that indieweb venue URL, it can link to equivalents on Foursquare, OSM, FB, and whatever other centralized venue databases are created in the future. - Tantek"

Experience with Foursquare's "community generated/patrolled venues database" is that a few nitwits can pollute/damage the data quite badly, with deletions, overmergings etc. Sad to say, same thing happens with Wikipedia (excessive deletions, overmergings). Thus little hope that a "community hosted venues database" wouldn't have all the same problems, if not worse.

Just use hCard on indieweb venue URLs.

see also:
 * 2012 IndieWebCamp Open Checkins Venue discussion

geolocation detection
In general it is good to use multiple source of geolocation information in order to increase accuracy and decrease latency to provide this information when querying for and presenting (multi-factor prompts) nearby venues.

GPS
"GPS is great. Except when you are inside a building - it doesn't work. Then you go and get on the Tube, and pop out the other side. It takes time for GPS to seek. You spend much more time waiting for GPS to work out where you are than you do just typing in the name of the bar or whatnot."

wifi location
wifi-assisted location determination can do better than GPS when inside a building.

velocity prediction
Last time(s) you checked in (or GPS was detected), you were moving in this direction at this pace, therefore you're likely at this location now.

pattern prediction
The last n times you checked in at place A, you checked in at place B within the next thirty minutes.

co-checkin prediction
You just checked in with friend F at location A, your friend F just checked in at location B, therefore you might be at location B as well.

plain text design
Like other types of posts (e.g. likes), it makes sense to figure out a plain text design for checkins, for various contexts.

Examples:
 * Foursquare provides a plaintext version of checkins when viewing a user's history page.
 * "aaronpk checked in at Laurelhurst Theater & Pub for Whiskey Tango Foxtrot"
 * 's page of checkins: https://snarfed.org/?s=checked shows a plain text equivalent (summary) for each individual checkin, e.g.
 * "Checked into Pleasanton Ridge Regional Park with Vanessa Barrett and Richard Barrett."
 * "checked into" venue, "with" person "and" person

offline checkins
Background: "offline foursquare" projects
 * https://technobabbl.es/2015/11/blast-from-the-past-offline-foursquare/
 * aaron straup cope's privatesquare: https://github.com/straup/privatesquare

Use-case: wanting to checkin to a location without (good?) connectivity.
 * special case of "async" checkins?

Workaround:
 * undefined I will often take a photo at a location where I want to checkin but lack connectivity (yet somehow the photo gets close-enough location info from SSID triangulation etc.), and then later use Instagram to post the photo with an explicit venue and cross-post from there to Swarm to do a "Postsquare" checkin.
 * Problem: Instagram's venues database (since 2014?) is based on Facebook's venues which is of very poor quality in comparison to Foursquare/Swarm’s venue database.

after-the-fact checkins

 * I'll often either forget to checkin or purposely not checkin for social reasons (i.e. not wanting to be rude in pulling my phone out and spending the time checking in when friends, colleagues, etc. are around). In these cases it would be nice to check in after-the-fact. To some extent, Swarm allows this functionality--see the documentation below. This could potentially be done in stages on one's own site, either by POSSE or potentially PESOS. As an example, at an event like a birthday party, I might like to checkin when I arrive (to indicate presence), then take photos (of drinks, food, atmosphere, other participants) as the event proceeds (which could be uploaded in real time, or if phone battery, connectivity, other social circumstances dictate they could be uploaded afterward). Finally, it would be nice to have the ability to checkout, or alternately provide a timestamp for when I left the location/event. Most silo checkin services only have a single timestamp for the checkin (and not necessarily for the actual arrival/departure times.)

verified checkins

 * https://aaronparecki.com/2016/10/14/20/verified-checkins


 * Re: fake checkins likelihood: ": If checkins weren't posted on Foursquare, but instead were posted on each person's own website, the possibility of fake checkins is much greater." undefined: I disagree with this premise and expect the opposite is true based on existing silo vs indie posting. People post all kinds of lower quality (e.g. sometimes fake) content on silos, and when the same people start posting to their own site, typically the quality improves, perhaps because they feel their identity is more (publicly) tied to it, or for private posts, why bother lying to yourself on your own site? With checkins I would expect the same, higher quality checkins (fewer fakes) on a personal site than a silo.
 * The fake checkin example was more about spam than fake checkins on legitimate websites. Aaron Parecki 14:10, 15 October 2016 (PDT)


 * Re: four digit code on a TV at the venue: ": The venue's TV screen always displays a 4-digit code and instructs people to include that code in their checkin post on their website." undefined: The extra 4-digit code thing sounds like "work", and as a user I'd always just blow it off, or blow off anything that required it, unless there was a very good incentive to bother with it (e.g. coupon / discount at the venue). Concrete example of the 4 digit code laziness problem. Coffee Bean & Tea Leaf (California based coffee / cafe chain) used to have a 4 digit code on their TVs for logging into their captive portal for their free wifi. They eventually got rid of it.

Checking in to Events
Swarm provides a feature that allows users to check in for an event while checking in to a location.
 * Venue managers add events to a schedule. When a user checks in during the time of the event, Swarm prompts the user to also check in for that event after choosing the venue.
 * The checkin on Swarm and Foursquare shows the venue as well as the event name in the checkin.

How should this be displayed and represented on an indieweb site?

past checkins as a venue cache
Relying on a system like Swarm+OwnYourSwarm gives access to Swarm's great venue data, but requires checking in via Swarm.

No matter what method initially used to create a checkin post, an existing set of checkins could be used as a cache of venues for future checkins.

For example, proposed "Moresquare", a Micropub client that caches venues from your existing checkin posts. This could be useful for repeated visits without leaning on (or sending data to) external location services.

Abandoned Brainstorms
The following ideas were iterated on, perhaps even in the wild, but have been abandoned for various reasons.

h-as-checkin explicit object
As a result of a brainstorming session about ActivityStreams and microformats at the 2012 Federated Social Web Summit in San Francisco there was a proposal to use prefixed (sub)types for posts as a way of representing ActivityStreams post types explicitly in microformats.

One of those was.

As use of explicit post types have been gradually abandoned in various UIs (being replaced by generic posts with any number of user-optional properties), the use of explicit types in markup has similarly been abandoned (UI leading/driving the plumbing as it were), including h-as-checkin. post type discovery shows some current thinking regarding post types.

Bottom line: Avoid using h-as-checkin.

Swarm
Swarm, formerly Foursquare and still made by the company by that name, is a popular checkin client.

Swarm Permalinks


NEED SCREENSHOTS

Swarm Posting UI
Swarm has a single "post" button in the middle of the row of buttons at the bottom of the default homescreen iOS dsiplay that looks like a map drop pin where the outline of the pin has a small arrow on the lower left side.

NEED SCREENSHOT

Tapping it opens the create checkin post UI, which shows:




 * your icon in the top left
 * the auto-chosen venue to check-into
 * "Change location v" drop-down menu
 * camera icon (which you can tap and then choose from existing photos or take new photos in the app)
 * to post up to 7 photos (a photo or multi-photo) as a secondary aspect of your check-in post
 * series of four "badge" or "sticker" icons you can choose from (or tap again to toggle off), some of which apply multipliers to your check-in points, with a "…" ellipsis to open up a menu of more stickers to choose from.
 * auto-focused text field to enter a checkin note, prompted with the default text "What are you up to?"
 * +(person) icon to add others to your checkin
 * lock icon to set a private checkin
 * Facebook icon toggle to cross-post your checkin to Facebook
 * Twitter icon toggle to cross-post your checkin to Twitter
 * ( Cancel ) and ( Check In ) buttons

Choose photos checkin UI variant, and choose sticker checkin UI variant:

Checkin after-the-fact
Swarm will occasionally provide notifications in its mobile app to remind you to checkin at places you may have previously missed. This functionality can also be accessed from the user's profile screen typically with the label "#+ to confirm" where the # is the number of locations not checked in at. The list of places visited can be either accepted by clicking on the green location pin icon or the ... "more" indicator can be chosen to modify the location of the checkin; indicate one was there, but not be checked in; or remove the item from one's timeline.



Checked in by
Swarm allows you to check in your friends if they've enabled the feature. When you tag someone in your checkin, a new checkin on their account is created. This is a separate post from your post.

When you check in to a place where you have been checked in by a friend, the post gets updated with the text, photo's and sticker you chose.



Facebook
Facebook supports checkin posts.

NEED SCREENSHOTS

Geocaching.com
Geocaching.com and other geocaching silos allow players to publish checkins to locations (which can usually be independently verified by the signing of a logbook at those coordinates, or in the case of some silos by acquiring a password from that logbook).

Former Silo Examples
Silos that support checkins (checkin silos) that have either gone away (site-deaths), or dropped checkin as a feature.

Brightkite
Brightkite was a checkin silo.

NEED SCREENSHOTS

Fire Eagle
Fire Eagle was a checkin silo created by the Yahoo! Brickhouse team in August 2008. It stored a user's location and shared it with other authorized services and inspired other future location services. A user could authorize other services and applications to update or access data via API, allowing a user to update their location once and then use it on any Fire Eagle enabled-website. The intention of Fire Eagle was to serve as a central broker for location data. Services which supported Fire Eagle included Pownce, Dopplr, Brightkite and Moveable Type. It was one of the first sites to use the OAuth protocol to connect services together. The service closed circa February 2013.

NEED SCREENSHOTS

Gowalla
Gowalla was a checkin silo.

NEED SCREENSHOTS

Dodgeball
Dodegeball was one of the earliest popular checkin silos (if not the first?). It was acquired by Google in 2005 and shut down in 2009 being replaced by Google Latitude.

NEED SCREENSHOTS