POSSE란 독립 사이트를 만들어 한번에 전파하자-Publish (on your) Own Site, Syndicate Elsewhere라는 뜻의 약어입니다. 이는 여러분이 소유한 자체 도메인에 먼저 콘텐츠를 올리고, 이를 다른 외부 서비스로 전파하여 원래 콘텐츠 사이트로 돌아오게 하는 전파 모델에 기반합니다.
POSSE 모델에 의하면 여러분의 친구가 다른 소셜 네트워크를 사용하더라도 (Facebook, Twitter, 등) 여러분의 글을 쉽게 받을 수 있습니다.
이는 "IndieWeb" 운동이 "모든 사람이 자신의 사이트에 블로그를 하자" 혹은 "모든 사람이 StatusNet/Diaspora와 같은 소셜 네트워크를 구축하자"와 확연히 다른 접근입니다.
POSSE는 실제로 웹 사이트 연합 보다 좀 더 중요합니다. POSSE는 앞으로 미래에 연락 하게될 사람과 커뮤니케이션하는 것 보다는 현재 활동중인 친구와 지금 연결하는 게 더 중요합니다. 물론 소셜 네트워크 연합 방식이 POSSE보다 더 빠르게 적용이 되더라도 더 많은 사람들이 연결 될 수 있는 장점이 있습니다.
아래 IndieWebCamp 참여자들은 POSSE 구조를 지원하는 웹 사이트를 가지고 있습니다. 직접 구현이 완료되었다면 스크린샷을 만들어서 올리시거나 해주시기 바랍니다.
Tantek.com as of 2010-01-01 (2010-01-26 Twitter syndication started and caught up). Tantek Çelik implemented POSSE in Falcon on tantek.com.
- all self-hosted posts (notes, articles, etc.) are openly PuSH+Atom real-time syndicated with a PubsubHubbub hub to Google Buzz, StatusNet, etc.
- notes (and article titles) are snowflake copied by the personal site server to Twitter with permashortlink citation links/references (see Whistle for details) back to the original. Copies of notes to Twitter are also automatically recopied from there to Facebook.
Waterpigs.co.uk as of 2012-03-12. Barnaby Walters implemented POSSE over at waterpigs.co.uk
- as of 2012-09-25 all collections (notes, articles, activity) are PuSH-subscribable feeds.
- Using the Client to Server to 3rd Parties flow --Waterpigs.co.uk 06:08, 25 September 2012 (PDT)
- Syndicating to Twitter + Facebook
- As of 2014-06-19 Taproot can now optionally post additional POSSE tweets when updating a note or article — example of updated note and POSSE tweet for the update. Note that Bridgy successfully backfeeds silo interactions from the update tweet as well as the original POSSE tweet
brennannovak.com as of 2012-07-01. Brennan Novak implemented POSSE on his site brennannovak.com with copies posted to Twitter and Facebook
aaronparecki.com as of 2012-08-19. Aaron Parecki implemented POSSE on his site aaronparecki.com with copies posted to Twitter containing permashortlinks back to originals on his own site.
- as of 2012-08-19 all collections (notes, articles, replies) are PuSH-subscribable feeds.
- Posting UI as of 2012-09-09: http://aaronparecki.com/2012/253/note/3
User:Sandeep.io First post POSSE'd on 2012-11-05. I primarily syndicate to Twitter using a very lo-fi solution of adding silo (Facebook, Twiiter, Google+) provided share links to each post that I can manually click to prefill content, edit and post. I've avoided API integration because of the extensive experience I've had using Facebook API and dealing with it's random changes. "Integration" has high costs sometimes so I keep it as simple as possible.
werd.io as of 2013-05-31 . Ben Werdmuller implemented POSSE in his idno platform via plugins. New content has an associated Activity Streams object type; POSSE plugins listen for post events associated with those object types and syndicate appropriately.
- Notes and articles are syndicated to Twitter and Facebook
- Images are syndicated to Facebook, Flickr and Twitter
- Places are syndicated to Foursquare
- More plugins are very easily possible; the Foursquare plugin took about an hour to build
- Shane Becker using Dark Matter on veganstraightedge.com (since 2013-07-17) with automatic rel-syndication markup on manual POSSEing:
glennjones.net as of 2014-01-14 Glenn Jones The blog implemented POSSE using a new version of transmat.io system. New content added to transmat is associated with objects types. A POSSE twitter plugins listens for post events syndicating content. At moment only notes are syndicated.
adactio.com as of 2014-05-27 Jeremy Keith has implemented POSSE using his own custom CMS.
- Notes have been POSSEd since he first started posting them on his own site, on 2014-05-27 (Note POSSE copy may say 2014-05-26 presumably because of timezone differences, Jeremy's is in BST, while a PDT viewer sees datetime adjusted accordingly). See also related blog post 2014-06-01.
- Photos have been POSSEd to Twitter since he first started posting them on his own site on 2014-07-05 and to Flickr since 2014-07-08. Examples:
- http://adactio.com/notes/7021 - first photo POSSEd to both Twitter and Flickr:
shanehudson.net as of 2014-09-19 Shane Hudson has implemented POSSE to Twitter for Craft CMS.
- Previously working on Wordpress but he was not keen on the UX.
- Has reply contexts working but has to manually copy the ID.
- Not yet POSSEing photos but plans to.
- Currently he has to manually copy the tweet from the main text box to a 140 character limit tweet text box. He plans to make that automatic.
기타 한국어 사이트
여러분이 만든 POSSE 지원 사이트를 모아서 아래에 올려 주시기 바랍니다.
부분적인 POSSE 사이트
아래 사이트는 POSSE 기능 일부를 지원하고 있습니다.
- User:Hupili.net implements a partial POSSE with the following setups:
- SNSAPI is a lightweight middleware to unify the data structure and interfaces of different social networking services. It gives the scripting flexibility for developer users to manipulate social silos.
- SNSRouter is a web UI built upon SNSAPI where one can read an aggregated timeline from different sites, mass forward messages, and update statuses on all channels.
- Part of my daily usage is to go to my running SNSRouter, read messages and update statuses on it. The new status is written to the RSS feeds, http://hupili.net/feeds/all.xml , and other silos. ( This feed is indeed a mix of POSSE PESOS )
- As is said in one of the description paragraph above, this model is not truly POSSE. One can not (hardly) distinguish original/ syndicated status. I'm planning to put a page with permlink on my site upon each status update and then use SNSAPI to syndicate to other silos.
다른 접근 방식
A similar but opposite approach is PESOS where content is posted first to 3rd party services and then copied/syndicated into a personal site.
If exact copies of content are posted on both a personal site and 3rd party services, there's no way to tell (short of comparing possibly non-existent sub-second accurate published dates) whether a site is using POSSE or PESOS. Sites can provably support POSSE by including perma(short)links in syndicated copies that link/reference back to published originals.
PESETAS is like PESOS but copying/syndicating everything to a particular silo (without any involvement of a personal site).
For example, most silos support cross-posting to Twitter, thus you could connect everything to your Twitter account and always (auto-)cross-post there to keep a copy.
E.g. Tumblr has a UI for cross-posting to Twitter. See Webapps StackExchange post for documentation and screenshots of UI.
Tumblr is a better PESETAS destination however, since it is well established, allows for a wider variety of content, and allows more text, and links to URLs directly instead of linkwrapping them like Twitter does.
POSSE is considered a robust and preferable syndication model for the following reasons:
- Ownership. By posting first on your own site, you create a direct ownership chain that can be traced back to you without any intervening 3rd party services (silos) TOS's getting in the way (which is a vulnerability of PESOS).
- Reduce 3rd party dependence. By posting directly to your own site, you're not dependent on 3rd Party services to do so -- if you can access your site, you can publish your content
- Own canonical URLs to your content. Canonical URLs to your content are on your domain.
- Copies can cite the original. By posting content first to your own site (and thus creating a permalink for it), copies that you post on 3rd Party services can link or cite the original on your site (see syndication_formats and POSSE Notes to Twitter)
- Discovery of your original content. discovery of your original content from the copies on 3rd party services is enabled by the permashortlinks to your originals posted on said services
- Better search. Searching public content on your own domain (with any web search engine of your choice) works better than depending on Twitter exclusively to search your tweets.. And when the copies link to your original posts, search engines figure that out by following those links back to the original and ranking it higher.
- backfeed can be used to pull in (reverse syndicate) responses from other services
- allows taking advantage of other services' social layers and aggregation features while storing the canonical copy of your content on your own site
How To Implement
There is no one POSSE implementation technique, you have to implement it per silo destination.
In general, when your content posting software posts something, it should also post a copy to the silo destinations of your choice, with a permashortlink (or permashortcitation) back to your original.
The details of how to do so vary per destination. See the sections below.
Twitter is perhaps the most popular POSSE destination and a good place to start.
If you can start posting notes (tweets) to your own site and POSSEing to Twitter, instead of posting directly to Twitter, you have taken a big step towards owning your data.
- API Access - posting new tweets works nicely due to permanent API tokens, and the return value contains a URL to the posted
- Supports very complete web action endpoints, so semi-manual posting is easy to implement
See POSSE to Twitter for details on how to POSSE both notes and articles (blog posts) to Twitter.
- API Access - New posts can be created through the API using the Publishing API
- A web action endpoint (
https://www.facebook.com/dialog/feed) is supplied by the Feed social plugin for semi-manual posting. Requires a facebook app id, but no authentication. It accepts a callback URL, to which it redirects with ?post_id GET param set, from which a URL can be constructed.
- No write API (yet)
- There are several endpoints which can be used as web action dialogs, but none of them support callbacks, so it’s trick to get the URL of the posted copy.
- Mobile App endpoint:
- Share button endpoint:
https://plus.google.com/share?url=(doesn’t support text injection as far as I can tell --Waterpigs.co.uk 14:41, 7 December 2012 (PST))
- Mobile App endpoint:
- How does veganstraightedge.com do it? (some his articles are manually POSSEd to Medium)
- How does veganstraightedge.com do it? (all his articles are manually POSSEd to WordPress.com)
Plain Text Notes
Some destinations (e.g. SMS or push notifications) may require a pure plain text representation.
- h-entry_to_text is a method of generating a plain text representation from an arbitrary h-entry
- The POSSE namespace in php-helpers (might be moved to a separate package) contains various truncation, preparation and syndication functions including HTML => plaintext µblog syntax converter
There's at least two ways to implement a POSSE content posting flow:
Client to Own Domain to 3rd Party Services
- The user writes a piece of content using a publishing client
- Optional: client provides UI for selecting which 3rd party services to push to if it knows about them, with optional customizations for per service
- Having finished the content, the user publishes content to their server (optionally: with metadata of which 3rd party services and any customizations thereof)
- Optional: client can generate a permalink knowing the state of the server, and publish to that permalink
- The server publishes the content, generates a permalink and summary (and/or customized content suited to 3rd party services) if necessary
- The server posts copies with permalinks to 3rd party services
- User only has to interact with one site over the internet, their own
- Syndication can be done fully automatically by the server
Client to Own Domain and 3rd Party Services
- The user writes a piece of content using a publishing client
- Having finished the content, the user publishes it to their server
- The client queries the server for the URL of the content it just pushed
- The publishing client presents the user with an interface for selecting:
- Which 3rd party services to publish to
- The exact content published to the services, pre-filled with a summary based on the produced content
- The user selects the services and submits the form
- The publishing client posts the content summaries out to the 3rd party services
- More user control over timing and editing of copies of content to 3rd party services
- Syndication requires a manual step each time
- Dependent on client connectivity directly to 3rd party services (problematic in flakey mobile situations, or when client is publishing using domain-censored internet access).
All of the above, and to date (2013-222), POSSE has solely described syndicating the Creation of content on your site (publishing) to other sites. This model has been quite successful and perhaps may be sufficient.
However, it is worth exploring the potential utility of a full CRUD protocol for POSSE.
Create is the POSSE default. You create content on your site, you POSSE your creates to other sites. All of this is described above, and in silo-specific details on silo pages.
Read as a verb is interesting when applied to POSSE.
At a minimum, it's useful to implement storing links to syndicated copies of your content to provide for the future possibility of reading from downstream POSSE copies.
- u-syndication for how to markup links to syndicated copies of your content
- syndication-link-use-cases for why to do so
Actual direct uses of Reading from downstream POSSE copies:
- reverse-syndication / backfeed of activity around the POSSE copy onto your original:
In addition, keeping a u-syndication link to the POSSE copy enables deleting it to perform an Update or a Delete action, as described in the following sections.
If a downstream service allows updates/edits, then when you edit your post, you could propagate that update to the downstream POSSE copy as well. (Any existing POSSE destinations that allow this?)
It would be possible to POSSE updates to Twitter (or any other silo that disallows edits to posts) by deleting the POSSE tweet and reposting.
Consider only POSSEing updates to Twitter:
- if no one has replied to it yet (otherwise you'd break a threaded conversation on Twitter)
- if your changes would be shown in the truncated copy on Twitter (i.e. if your changes are past the 140 (more like 120) character horizon, no point in churning the Twitter copy).
- within a very short time window, maybe like 2-5 minutes, because otherwise the update will be seen as a duplicate to people who are reading you on Twitter.
All of these concerns are regarding the experience that you provide to your friends reading your tweets on Twitter, which of course should be the whole (design) reason you're bothering to POSSE to Twitter in the first place.
Deletes seem fairly straightforward to POSSE, especially to services which themselves propagate deletes to clients.
E.g. one can delete a note on Twitter at any point.
Similar to updates, consider:
- if there are already replies to a POSSE copy (or activity like favorites/retweets), consider keeping it to keep conversation threading (and others' favorites/retweets).
However, if you really feel like deleting the content from your site and POSSE copies (e.g. on Twitter), go ahead and do so.
Perhaps this is an opportunity for the UI for the deletion of a post to check to see if there's been any activity (replies, favorites, retweets) on the POSSE copy before performing the delete. One possible implementation could involve the UI informing the user of this activity (or lack of it) and reconfirming the delete request on a per-service basis.
Worry about search engines and duplicates
Q: Do we need to worry about search engines penalizing apparently duplicate posts?
A: That's why the POSSE copies SHOULD always link back to the originals. So that search engines can infer that the copies are just copies. Ideally POSSE copies on silos should use rel-canonical to link back to the originals, but even without explicit rel-canonical, the explicit link back to the original is a strong hint that it is an original.
This is also an advantage of POSSE over PESOS. With PESOS - there's no way to tell what's the original and what's the copy - so they do look like duplicates.
POSSE-post-discovery and backlinks
Q: Brid.gy can use posse-post-discovery to find the relationship between a syndicated post and the original when there is not explicit link. Does this mean I should stop adding backlinks to syndicated copies?
A: POSSEing without a backlink is considered a last resort, and has some costs associated with it. See posse-post-discovery#Tradeoffs for more details.
- 2010-05-26 POSSE first described online as a concept in Tantek Celik on DiSo 2.0: Down to Brass Tacks :
Publish on your own site, own your URLs, your permalinks, and
Syndicate out to other sites. Your text updates to Twitter, your checkins to Foursquare, your photos to Flickr etc.
- 2010-10-06 POSSE+backfeed conceptual architecture (predating the terms)
Note the arrows to/from the "Personal site" in the middle. Arrows outward are conceptually illustrating POSSE, while those returning, backfeed.
See 2011-01-10 post relating/expanding on it: On Owning Your Data: Follow-up to @Zeldman and the #indieweb
- 2011-06-25 IndieWebCamp 2011 session: "Publish Then Syndicate and Replicate" further explored POSSE conceptually.
- 2012-06-21 POSSE term defined: http://tantek.com/2012/173/t1/posse-core-indieweb-approach
- sometime before 2014-06-21: POSE (Publish Once Syndicate Everywhere) term defined at some point prior to POSSE. Conceptually it was looser than POSSE, as "once" could be interpreted as on a silo rather than your "own site", which POSSE (and the conceptual predecessors) made explicit.
Articles and blog posts about POSSE, especially implementing it:
- Relevant session from 2011: Publish Then Syndicate and Replicate
- Documentation on syndication formats
- microsyntax for POSSEing to plain text destinations