Facebook killed Search is Back.

Facebook killed Search is Back.

Edit: If you miss it, please sign the petition:
http://chng.it/C2vXG8pc

This week is a loss for access to data and users of the FB platform. RIP.

Since I launched it in 2015, the site has been used 26 million times, or around 20,000 times daily. It is, numerically, by several orders of magnitude, the most successful thing I have ever made. If you've made meaningful connections on it, I would appreciate hearing about them.

(Read to the bottom to see how I ran it for $4/month.)
EDIT: Also note that you can still type location-based "People who live in Melbourne" queries into the search bar and get good results.

Here's the story

In 2014, Facebook launched graph search, a tool to let you leverage its exhaustive database and find people who met certain criteria. You could type "friends of friends living in New York interested in hiking" and it would show a list of people who fit.

I love connecting with people and using my network to find interesting people or make connections, and started using this feature all the time. The trouble was, they had a very limited UI for it. I decided I could do better, and built a little app called Search is Back. It had all the bells and whistles and exposed every permutation of the search that was available. I figured that if FB was letting advertisers leverage our data, we should be able to do it too.

For example:
People 23-28 named Mona who went to Brigham Young
Men interested in men who are friends of friends in San Francisco
Events friends are invited to in Los Angeles today
Photos where Alyssa is tagged

I got lucky, and Josh Constine featured the app in an article, sending 13,000 people to the site in one day. That initial lift spread it far and wide, and 1/1000 of all people who use Facebook have used Search is Back.

I am a superconnector. One of my greatest joys is putting people in touch with one another, helping us work together and share resources and time and attention and love to live our best lives.

It has given me profound joy to know that every day, while I sleep and work and travel, my app has been connecting thousands of people to one another.

I've gotten messages about people who use the tool to find long lost children, make new friends, reconnect with college classmates, and more. (I see a lot of people have used it in Nigeria, which tells me there were some nefarious uses going on as well.)

Last week, I got a takedown notice from Facebook for a domain I own (facebooksearch), and the same day, I started to receive messages that the site wasn't working. FB has removed the ability to search for people using anything but location, and now implements location search with an encrypted hash. It should be possible to reverse engineer their location search, but it's not worth it if that's all FB will let you do.

I am bummed that this all-powerful platform which has so much information about us, gives us so little control over our experience and how we can connect with one another. There is a condescension there that I don't like. We can't open the box and connect on our terms.

Open data is critical. Every day we have less control over the tools we use, less ability to get off them, and we give more of ourselves. The openness of the internet is important. HTML which can be modified with browser extensions is important. Open source is important. We are headed to a world where we push one button and everything about our experience is chosen for us. We can't allow these giant platforms to choose what we are able to do on our computers, with our data, and in our relationships. We are serfs.

I'm especially bummed that the thousands who relied on this tool will have to go somewhere else, and there is nothing out there as powerful as what this tool offered.

If you were part of this adventure, if you used Search is Back to find someone, I am happy that it worked for you.

As I write this, there are six users on the site (the number usually hovered around 40.) It will keep dwindling.

Onwards!


Side note, a little about how the tool was made:

I've kept some of the secret sauce of how I made Search is Back private. Now I'm happy to divulge:

Facebook's graph search constructs URLs, for example:
/search/me/friends/110970792260960/residents
appended to the FB domain.
(That long ID string represents Los Angeles.)

All Search is Back does is send you to the appropriate URL, and Facebook executes the search for you \u00e2\u0080\u0094 so we've been lucky that they kept the URLs up even after taking the front end down.

What I had to do was find the ID string / name pairs for all locations, schools, companies, job titles, and interests.

To do this, I created a Facebook app and, over 10 months, executed 15,000 queries on the system: aaa, aab, aac, etc. for each field. I god 15,000 JSON files with Facebook's results, which I processed into five databases of ID/name pairs.

Then I put the databases into Amazon's Elasticsearch and connected the search up to the website. The trouble was, I couldn't get search to work well at all. I learned how difficult search really is \u00e2\u0080\u0094 if someone starts typing "Ang" do they mean "Anguilla" or "Los Angeles"? How to deal with "The" in the beginning?

Then I had a realization, which solved this issue and also allowed me to save a LOT of money. I already HAD Facebook's best guess for what to serve for every three-letter search query. Looking over my JSON files, Facebook's results made a lot more sense.

So I stripped my 15,000 JSON files into much smaller JSON files and uploaded them to a cheap $4/mo server, which I put behind Cloudflare (thanks Michelle!) When the user types the first three letters of a search, it pulls the right file. Cloudflare caches them all so these requests never hit the server. When the user types more letters, further searching is done in-browser.

Over four years, I probably updated the site six times or so. It was remarkably low maintenance for something that served so many people.

PS. If anyone knows how to construct new URLs and make this thing work again, please let me know!