POSSE icon
POSSE is an abbreviation for Publish (on your) Own Site, Syndicate Elsewhere, the practice of posting content on your own site first, then publishing copies or sharing links to third parties (like social media silos) with original post links to provide viewers a path to directly interacting with your content.
▶️ watch Zach’s 1min* video intro to POSSE
Why
Let your friends read your posts, their way. POSSE lets your friends keep using whatever they use to read your stuff (e.g. social media silos like Instagram, Tumblr, Twitter, Neocities, etc.).
Stay in touch with friends now, not some theoretical future. POSSE is about staying in touch with current friends now, rather than the potential of staying in touch with friends in the future.
Friends are more important than federation. By focusing on relationships that matter to people rather than architectural ideals, from a human perspective, POSSE is more important than federation. Additionally, if federated approaches take a POSSE approach first, they will likely get better adoption (everyone wants to stay in touch with their friends), and thereby more rapidly approach that federated future.
POSSE is beyond blogging. It’s a key part of why and how the IndieWeb movement is different from just “everyone blog on their own site”, and also different from “everyone just install and run (YourFavoriteSocialSoftware)” etc. monoculture solutions.
Why In General
POSSE is considered a robust and preferable syndication model for the following reasons:
- 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. On the contrary with PESOS, when the 3rd party site is down, you are unable to add content.
- 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).
- 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)
- Better search. Searching public content on your own domain (with any web search engine of your choice) works better than depending on silos exclusively to search your posts (e.g. Twitter for a while only showed recent tweets in search results. Facebook still has very poor search results).
- 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
- …
Why Link To Your Original
Common POSSE practice is to link from POSSE copies to your original, using a permashortlink. Here are a few reasons why:
- 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
- Subvert spammers who copy your posts. When spammers (e.g. @sin3rss) mindlessly copy from your POSSE copies and repost, they also copy the link back to the original, and thus provide more distribution for people to find and view your original post. “2011-01-09 internet aikido” of a sort.
- Better ranking for your original posts. If/when your POSSE copies are themselves copied by others and (re)posted elsewhere (e.g. manual retweets, RSS bots etc.), 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.
How to
How to implement
This section is for web developers implementing POSSE.
In General
In general, when your content posting software posts something, it should also post a copy to the silo destinations of your choice, with an original post link (e.g. permashortlink or permashortcitation) back to your original.
The details of how to do so vary per destination. See the silo-specific sections below.
Once you have posted the copy to the silo, you should:
- link to the syndicated copy from the original in a posts-elsewhere section on your post.
User Interface
The best user interface (UI) is automatic, dependable, and invisible. If you can implement POSSEing in a way that always does exactly what you want, predictably, then no explicit UI is needed.
Preview
One way to provide more predictability and inspire confidence is to show what will be POSSEd (within the limitations of the destination) as a preview before publishing
(needs screenshot)
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.
Details:
See POSSE to Twitter for details on how to POSSE both notes and articles (blog posts) to Twitter.
There are two options for POSSEing to Facebook currently:
- Manually crosspost
- Semi-automatically with the Bridgy browser extension for Facebook
Medium
WordPress
- How does veganstraightedge.com do it? (all his articles are manually POSSEd to WordPress.com)
Chris Aldrich uses a WordPress plugin WordPress Crosspost to POSSE from a self-hosted WordPress install 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
Software
Software and libraries to implement POSSE:
- PHP
- 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
- Python
- SiloRider is a command-line tool, implemented in Python, that lets you implement POSSE to various services (Twitter and Mastodon as of 2018-08-01).
- Feed2Toot is another command-line python tool that parses any number of RSS feeds and posts their content on ActivityPub based services (tested with: Mastodon, Pleroma). Contains some neat bells and whistles like advanced post filtering, numerous options for feed parsing and toot formatting.
- Docker
- POSSE Party: self-hosted software for POSSE
Services
- Bridgy Publish is POSSE-as-a-service. It supports Twitter, Flickr, GitHub and Mastodon. You can use it interactively or programmatically via webmention.
- Mugged Tweets – will POSSE a note to a mug (may require first POSSEing to Twitter)
- IFTTT allows automatically reposting content with an RSS or Atom feed to a number of silos incuding Twitter, Tumblr, and Facebook
- EchoFeed
Publishing Flows
There’s at least two ways to implement a POSSE content posting flow:
Client to site to silo
- 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
Advantages:
- User only has to interact with one site over the internet, their own
- Syndication can be done fully automatically by the server
Disadvantages:
- any?
Client to site and silo
- 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
Advantages:
- More user control over timing and editing of copies of content to 3rd party services
Disadvantages:
- 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).
IndieWeb Examples
The following IndieWebCamp participants’ sites support a POSSE architecture. If you have an implementation, add it, make screenshots or a screencast or blog about it and post the details/link here. In date order (earliest first) :
Tantek
Tantek.com as of 2010-01-01[1] (2010-01-26 Twitter syndication started[2] and caught up[3][4]). Tantek Çelik implemented POSSE in Falcon on tantek.com.
- all self-hosted posts are openly with PuSH v0.4 + h-feed and Atom real-time syndicated with a PubsubHubbub hub to StatusNet, other subscribers etc. (also to Google Buzz til it shutdown)
- note (and article titles), reply, RSVP posts 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.
- likes of tweets are “copied” (more like propagated) to Twitter using Bridgy publish
Barnaby Walters
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
Brennan Novak
brennannovak.com as of 2012-07-01[5][6]. Brennan Novak implemented POSSE on his site brennannovak.com with copies posted to Twitter and Facebook
Aaron Parecki
aaronparecki.com as of 2012-08-19[7][8]. 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
Sandeep Shetty
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.
Ben Werdmuller
werd.io as of 2013-05-31 [9]. 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
- Shane Becker using Dark Matter on veganstraightedge.com (since 2013-07-17[10]) with automatic rel-syndication markup on manual POSSEing:
Glenn Jones
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.
Jeremy Keith
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/6978/
- http://adactio.com/notes/7021 – first photo POSSEd to both Twitter and Flickr:
Shane Hudson
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.
Ravi Sagar
http://www.ravisagar.in/blog/implementing-posse-my-site Implementing POSSE on my site as of 2018-02-21.
- The new blogs and notes are posted on Drupal
- http://www.ravisagar.in/rss-social.xml RSS Feed is generated for the blogs and notes tagged with “Share” keyword
- Using Rebrandly to create shortlinks for the RSS Feed
- Using Zapier to share the newly created rebrandly links to Twitter and Linkedin
Ludovic Chabant
ludovic.chabant.com as of 2018-07-30 Ludovic Chabant has implement POSSE to Twitter and Mastodon from PieCrust CMS, using SiloRider
- SiloRider is CMS independent — it only relies on Microformats found in the published markup.
- New articles are posted as title and link.
- New microblogging updates are mostly copied verbatim (if the fit the external service’s character limits), and support photo posts, including multi-photo posts.
Adam Dawkins
adamdawkins.uk as of 2019-01-16 Adam Dawkins has implemented POSSE using his own custom CMS.
- Notes have been POSSEd since he first started posting them on his own site, on 2019-01-16
Examples
Shaun Ewing
shaun.net as of 2020-01-16 Shaun Ewing has implemented POSSE using Jekyll, and custom APIs.
- More information https://shaun.net/notes/taking-back-control-of-my-content/
- Syndication is still manual, and I’m still working on Level 3/4 “IndieMark” items s


Aaron Parecki
rubenwardy
Tantek Çelik