FBML (Facebook Markup Language)

2007 - 2012
dead
in 2007 facebook decided the html the rest of the web ran on was not enough for it, and shipped a dialect of its own. you wrote an fb:name tag with a user id inside it, and facebook's servers came back with the right person's name and the right link, privacy rules already applied. that was the price of admission to the fastest developer platform anybody had seen, and it tied every application written on it to one company's parser. facebook stopped accepting new fbml apps on 18 march 2011 and dropped support on 1 january 2012. the endpoints came off on 1 june 2012.

~ the goodbye ~

For five years the largest website in the world shipped a markup language of its own, and anybody who wanted to build something that lived inside Facebook had to learn it. Not HTML with a few extra attributes bolted on. A separate dialect, parsed on Facebook's servers before anything reached a browser, with a matching JavaScript subset sitting beside it.

FBML arrived with the Facebook Platform on 24 May 2007, announced at the first f8 in San Francisco. The pitch to developers was that your application would run inside the site rather than next to it, on a profile page and in the feed. The catch was that Facebook needed control over what your code could see. So instead of fetching a person's name yourself and rendering it, you emitted a tag naming them, and Facebook's parser rendered it after checking whether the viewer was allowed to know.

It was a clever arrangement and it worked. There was a tag for a profile picture, a tag for a friend selector, one for the dialog that asked permission. You got Facebook's own interface components without building them, and they looked native because they were native. FBJS did the same job for scripts, rewriting your function names so your code could not reach outside the box it had been given.

I did not build on the platform, but there was no missing what it produced. Around 2010 and 2011 every brand page in Turkey had grown an extra tab, some competition or a discount code sitting behind a button that asked you to like the page first, and almost all of those tabs were Static FBML. Facebook shipped an application by exactly that name, so a marketing person with no engineer could paste markup into a box and get a page tab out of it. For a couple of years the most widely hand-written language on the web was one that nobody outside a single company could run.

~ the chronicle ~

Born24 may 2007, with the Facebook Platform at the first f8
Peakthe required language for page tabs and canvas apps across a platform of hundreds of millions
Killed1 june 2012
Lifespanfive years and one week
Made byfacebook
Killed byfacebook, which moved the platform to iframes and ordinary html

~ the breakout ~

The platform grew faster than anything before it. Within months there were thousands of applications, and the ones that spread did so because FBML let them plant themselves on your profile where your friends would see them. Stanford ran a course in the fall of 2007 on building them, and some of the student projects passed three and a half million users inside a month. That number is most of the reason every company on earth spent 2008 trying to work out what a social platform was and whether it needed one.

FBML was load-bearing for all of it. Nothing in the early platform could be built without it, so an entire cohort of developers learned a tag vocabulary that existed on one domain and was worthless anywhere else.

~ the actual end ~

Two things went wrong. Facebook had to parse everybody's markup on every page load, which is an expensive promise to keep forever, and the ecosystem it had created could not be modernized without breaking it. In 2010 the company started pushing iframes instead, which is the dull answer and the right one: your application is a normal website in a box, running on your own servers, talking to Facebook through an API.

The retreat was scheduled in public. On 18 March 2011 the platform stopped accepting new FBML applications. A developer blog post on 29 September 2011 laid out what remained: no support after 1 January 2012, meaning no bug fixes except for security and privacy, and on 1 June 2012 the endpoints would be removed and FBML applications would stop working. Every one of those dates held.

~ the next chapter ~

FBML proved that a platform large enough can invent its own web and get millions of people to learn it. What killed it proved the other half, which is that the same platform can withdraw that web on a year of notice and the entire cost lands on the people who built there. Agencies had shipped thousands of page tabs for clients. On 1 June 2012 those tabs went blank, and the client called the agency, not Facebook.

The pattern repeated with everything after it. Facebook's history since is largely a list of retired developer surfaces, and each one teaches the lesson FBML taught first: markup you cannot render on your own server was never yours.

~ leave a rose ~

an anonymous tribute. one rose per visitor per day.

@}-->-- ... roses left here

~ leave a wreath ~

a rose fades by morning. a wreath stays on this grave for good, with your name on it.

from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.

» one email a week: new graves and the anniversaries of the dead. subscribe

~ leave a note ~

visitors before you have left these graveside notes. anonymous welcome.

other protocols: Microsoft Chromeffects, X.400, UUCP, Works with Nest

also died in 2010-2014: HitBliss, AboveNet, QuickSilverScreen

« previous  ·  random  ·  next »