Twitter provides the following features currently:
At launch, Twitter provided the roughly following features:
This list may be incomplete/imprecise and was done from ~8 year old memory. Please update if you have documentation of specifics!
If you recreate these features on your own site, including POSSE support to Twitter for each, then you no longer have any need to directly use Twitter.
To fully replace your usage of Twitter you must also support (roughly ordered by importance, expected frequency of usage)
Twitter has several clients that all have a fairly complete implementation of the above features:
CC license your tweets
Note, tweetcc's creators decided to take it down in July 2013."
We're looking into having tweetcc restored.
This allows anyone else wanting to:
Etc. your tweets to do so, per that CC license (e.g. CC-BY, attributing you) independent of Twitter's TOS, and thus independent of any Twitter requirements, e.g. their display "guidelines".
Reverse Syndicating At-Replies
Per the POSSE model, you may want to reverse-syndicate @-replies on Twitter to the tweet-copies of your post as "comments" back into your post permalink page on your own site. By using TweetCC, you can check to see if those @-replying to you have CC-licensed their tweets and then incorporate them using the CC license, displaying them however they fit in with your site design, instead of having to shoehorn Twitter's display "guidelines" into your site / post-permalink page design.
Download all your tweets
The Twitter archive is made of per month JSON files. It can be used as a way to PESOS a whole Twitter history, even though POSSE is the recommended way to do it.
The most interesting things in the JSON twitter archive are:
After you download your archive, you can update in using a Ruby Gem called GrailbirdUpdater.
Download Direct Messages
Backup using t command line tool
You can also export your lists with the "t" command line tool:
Porting to the IndieWeb
freedom.io (source) can copy all of your tweets to WordPress, Tumblr, Blogger, creating a new blog post for each, with the original dates and with replies and retweets (yours and others') included as comments.
It's rough and unpolished. Ryan eventually plans to polish it up and advertise it more widely.
POSSE to Twitter
POSSE to Twitter in general
Given Twitter's limitations:
When POSSEing to Twitter:
Once POSSE is successful:
POSSE Notes to Twitter
For notes, you can POSSE out up to 140* characters of your note to Twitter.
POSSE entire note to twitter
has the permashortcitation of a permashortid in a classical parenthetical citation:
which is easily expanded (see related: original-post-discovery) by unparenthesizing and joining the two pieces with a forward slash "/":
which resolves (redirects) to the original post:
You should NOT include a post permashortlink at the end of tweet copies of notes that include the entire note.
There's an unspoken convention on Twitter that a link in a tweet (especially at the end of a tweet) should provide more information.
Having an active permashortlink at the end of your tweet when all you provide on your own site is the *exact* same content is bad UX for your friends that follow you on Twitter.
The whole point of POSSE is that you still care about your friends on Twitter (or other silos) reading you, so you should care about their UX also.
Only provide permashortlinks as part of your POSSE tweets when they link to an the original post with more content than in the POSSE tweet copy. Otherwise use permashortcitations so that your original posts are still automatically discoverable using the original-post-discovery algorithm.
POSSE abbr note to twitter
If your note (with permashortid) exceeds 140 characters, you should abbreviate your note to 117 (116) characters (e.g. using the CASSIS
When shortening to 117 (116) characters, you must count other http (https) URLs within that as 22 (23) characters (excepting schemeless pathless ccTLDs). You can use the CASSIS
You may want to put an ellipsis character at the end of your POSSEd note to Twitter before your perma(short)link. Be sure to leave room for the ellipsis too: instead of just 1 character for a space before your permashortlink, save 4 characters for "... ", or 2 characters for "… " (ellipsis entity character). Note Twitter now counts characters in a sensible fashion, they count codepoints in Unicode NFC: https://dev.twitter.com/docs/counting-characters. Ideally elide at a punctuation boundary (like sentence terminator or a comma - the above-mentioned CASSIS function does this too). Examples (which link to original posts after eliding with "... ")
Exception, if your abbreviated tweet already has a ":" (colon) character at the end, no need for an ellipsis, simply append a space " " and your permashortlink. Examples which truncate after a ":"
IndieWebCamp community members who are doing this:
POSSE Notes to Twitter Pseudocode
Assume that to start with you have some HTML markup representing the content of the note ($text), the canonical URI to link back to from the syndicated tweet ($url) and an optional in-reply-to url associated with the note ($inReplyTo).
POSSE note with photos to Twitter
If your note has photos, e.g. auto-embedded JPG/PNG etc. URLs, consider POSSEing those photos (first four if any, per Twitter photo-attachment limitations) as image uploads associated with your POSSEd text note.
POSSE Articles to Twitter
Similar to POSSEing a note, you can POSSE an article to Twitter, but instead of the first 140 characters of the post, you should POSSE the first 140 characters of the entry name (title) of the article, followed by optionally a ":" character (unless the entry title already ends with punctuation), then a space " ", then the perma(short)link to your original post. Examples:
IndieWebCamp community members who are doing this:
POSSE Replies to Tweets
Similar to POSSEing a note to Twitter, when POSSEing a reply to a tweet, you also set the
You can use this regular expression to extract tweet IDs from tweet URLs:
Examples, i.e. IndieWebCamp community members who are doing this:
POSSE Replies to Twitter
If original has a POSSE tweet copy:
When posting a comment which is a reply to another indieweb post, the POSSE tweet of your comment should attempt to set the
This is similar to how you POSSE Replies to Tweets but with one extra step to discover the POSSE tweet of the original post:
If original does not have a POSSE tweet copy:
If the indieweb post (or other URL) has no equivalent POSSE tweet and is not a tweet URL itself, then:
POSSEing your reply to Twitter is still useful if your reply is "self-contained" enough to be relevant to your Twitter readers. It's definitely a judgment call and matter of personal preference at that point. Indieweb community members have also found joy out of site-to-site replies that never hit Twitter, and thus reflect another level of independence.
POSSE Reposts of Tweets
When posting a repost of a tweet, the proper POSSE behavior should be to do a native retweet (on Twitter) of the tweet that you're reposting on your own site.
POSSE Reposts to Twitter
When you do a repost of an indieweb post:
POSSE Favorites of Tweets
When posting a favorite of a tweet, the proper POSSE behavior should be to natively favorite (on Twitter) the tweet that you're favoriting on your own site.
POSSE Favorites to Twitter
When you post a favorite of an indieweb post:
Twitter offers copy/paste embed markup on its site that allows one to embed the appearance/text of a tweet in one's own page, as well as oEmbed option. As both the oEmbed and the embed markup include the text of the tweet in a blockquote, if Twitter shut down, this could continue to display the text minus the appearance.
When a Twitter user includes a link to someone else's photo on Twitter, the Twitter website shows the photographer's name and Twitter account under the photo.
(Note: the attribution only appears in-stream, not on the Tweet permalink)
See full article: Twitter-API
The Twitter iOS client has an option to use a different API root, "intended for a Twitter proxy server"
It may be theoretically possible to re-implement enough of the Twitter API on your own site to set your own site as a "Twitter proxy server" and thus use the Twitter client as a client to post directly to your own site (and perhaps read from it as well).
Bad or failing behavior on the part of Twitter. Roughly sorted by most problematic / frequently so first.
Poor handling of abuse
As very well documented in:
Twitter's UX now makes it easier to post abusive content, than protect oneself from the same.
Broken Without JS
In a piece Does Twitter's exec team even use Twitter? (April 2015), a web developer (@sidawson) found that 7 of 11 top Twitter executives tweet less than once a day, and most did not use the service before working at Twitter.
Most recent first:
spammy cross-posting to facebook
This may be a side effect of both Twitter and Facebook doing arbitrary photo cropping (FB likes square images, Twitter likes 16:9 wide ones, both often crop rather than fit to space with background). Kevin Marks posted screenshot of Facebook to twitter.
When this was replicated to facebook by Twitter's app it looked like this:
Get the whole picture - and other photos from Kevin MarksEmphasis added - which implies deliberate behavior of a spammy sort (using your cross-post to advertise broader use of Twitter than just that one permalink).
Twitter built their entire business on top of the developer community. Almost all Twitter features were originally from Twitter clients, such as Retweets and Hashtags. Closing sections of their API and RSS feeds has made the developer community lose trust in Twitter.
Twitter to Offer New Tools for App Developers
Lack of Communities
Twitter has no mechanisms for [defining a community]. Every user floats by themselves, interacting with who they please. This denies us the ability to build communities, to set social norms, and to enforce them. Twitter has absolutely no way for me to share with others that someone isn't a person I want in my communities
Correctable issues with Twitter.
Email Identity Removal
This 2013-05-17 screenshot seems to demonstrate an odd interaction and vulnerability on Twitter:http://twitter.com/t) with a yellow warning box just below the global black toolbar that says:
New email address required. Twitter has removed the email address from your account, by request of the email owner.
Hyperlinks as present in original. No such warning on m.twitter.com equivalent page when logged in (i.e. on a mobile device).
It's not clear how this happened, how the email address was revoked, how to avoid having it revoked in the future etc.
Appears to be an identity threat/vulnerability.
Early User Interface
Twitter's early user interface (circa 2006, before 2006-11-14 since no favorites) was quite simple and minimal:
Lots of UI revisions
Look for #newtwitter and #newnewtwitter
Circa 2011 styling of Twitter stream and tweet permalink:
Ignore the red borders / boxes - those were there to indicate/ask a question about those items.
Showing Arial (presumably on Microsoft Windows) for tweet text in a stream, and Georgia for tweet text on a tweet permalink page.
As of 2014-04, Twitter has yet another UI revision, this time nearly cloning Facebook profile pages' look & feel:
Facebook on the left, new Twitter UI on the right.
If you don't see the image inline above (e.g. only see the text Bl-chggIMAAGyBZ.png) then click on the Twitter link to see it on their site.
Profile Image URLs
Unfortunately, those fields are absolute URLs for the *current* profile image, and usually break when the user changes their profile image.
Unofficial alternatives: these both 302 redirect to the current profile picture. Replace
If you omit
Twitter profile images can also be found by choosing "View Image" on context menu on a profile, those URLs may end with:
You can change any of the above suffixes to any others in order to get a few different sizes.