👈🏼 🕸💍 👉🏼
Skip to main content
 
 
 

Started working on a JSON Schema for microformats2 about a week ago. Posted the first version on GitHub tonight – https://github.com/cleverdevil/microformats2 – Feedback welcome!

 

I’m really enjoying using Together from iOS for reading and posting on the IndieWeb: https://cleverdevil.io/s/A94HmEbBLALplpcALmAc.mov

 

Freeing Myself from Facebook

5 min read

Ever since my discovery of the IndieWeb movement, I've wanted to free myself from Facebook (and Instagram) and their brand of surveillance capitalism. I want to own my own data, and be in control of how it is shared, and I don't want it to be used for advertising.

I've had this incarnation of a personal website for a few years, and have mostly been following the POSSE publishing model, publishing most forms of content on my website, and then automatically (or manually) syndicating that content to silos like Facebook and Twitter. But, much of my content still remains trapped inside of Facebook and Instagram.

Until now.

As of March 4, 2018, I've pulled the vast majority of my Facebook content into my website, and all of my Instagram photos into my website, paving the way for me to delete myself from Facebook (and potentially Instagram) by the end of 2018. What follows is a high-level overview of how I made the move.

Facebook

Exporting Data from Facebook

While Facebook does offer an export feature, its extremely limited, only includes very low resolution versions of your photos, and is generally very difficult to process programmatically. After some research, I discovered the excellent fb-export project on GitHub. Once installed, this tool will dump a huge amount (though, not quite all) of your Facebook data into machine-readable JSON files.

Since my website is compatible with the Micropub publishing standard, I then needed to convert this Facebook-native JSON data into microformats2 formatted JSON. Enter granary, an amazing swiss-army knife of IndieWeb by Ryan Barrett. Using granary, I whipped up a quick script that transforms the exported data into native microformats2 formatted JSON:

https://gist.github.com/cleverdevil/f33530706d6e8dacd13a8bd8e8c15dba

Publishing Liberated Data

At this point, I had a directory full of data ready to publish. Sort of. Unfortunately, not all of the data is easily translatable, or even desirable, to publish to my website. As a result, I created another script that let me, on a case by case basis, publish a piece of content, choose to skip it entirely, or save it to deal with later.

https://gist.github.com/cleverdevil/c857695bb2de1e46686d720cad9d124c

After running this script, I had a significant amount of my data copied from Facebook to my website. Huzzah!

Dealing with Photo Albums

Facebook has a "photo albums" feature, and I definitely wanted to get those memories onto my website. Again, I wrote a script that processes the exported data, and selectively allows me to upload all of the photos in an album to my website via Micropub, and then drops microformats2 JSON out that I could publish later.

https://gist.github.com/cleverdevil/d9c08ddc6eb2da0d060a5f6fe87ddf64

Once I finished processing and uploading all of the photos for the albums I wished to copy over, I ran a simple utility script I keep around to publish all of the albums as new posts to my website.

Here are some of the results:

Notice, one of these comes all the way back from 2009!

Almost There

There are still quite a few photos and other types of posts that I haven't yet been able to figure out how to migrate. Notably, Facebook has strange special albums such as "iOS Uploads," "Mobile Uploads," and "iPhoto Uploads" that represent how the photos were uploaded, not so much a group of related photos. Unfortunately, the data contained in the export produced by fb-export isn't quite adequate to deal with these yet.

Still, I am quite pleased with my progress so far. Time to move on to Instagram!

Instagram

Instagram has been slowly deteriorating as a service for years, so much so that I decided to completely stop publishing to Instagram earlier this year. It turns out, dealing with Instagram is a lot easier than Facebook when it comes to liberating your data.

Downloading My Data

After some research, I found instaLooter on GitHub, which allowed me to quickly export every single photo in its original resolution, along with nearly every bit of data I needed... except the photo captions. I ran instaLooter, and embedded the unique identifier in the filenames (which instaLooter refers to as the "code').

Getting Metadata and Publishing

I wrote a script that used granary to lookup the photo metadata and publish to my website via Micropub:

https://gist.github.com/cleverdevil/5bb767fd152de9b4c246d01086e91399

Note, I used the non-JSON form of Micropub in this case, because Known's Micropub implementation doesn't properly handle JSON for photos yet.

Conclusions

It turns out, that with a little knowhow, and a lot of persistence, you can liberate much of your data from Facebook and Instagram. I feel well on target to my goal of leaving Facebook (and maybe Instagram) entirely.

 

Once I'm finished copying over individual photos, I'll complete my goal of completely extricating myself from Facebook by the end of 2018. 🎉

 

Just created a Lambda function that looks at my website's On This Day page, and publishes the memories to a special channel in my Microsub server.

 

@wences.com welcome to the IndieWeb! If you need help getting started, we have an awesome community chat you can access via Slack - https://chat.indieweb.org/

 

Great news from @brentsimmons on his view of the .

http://inessential.com/2018/01/25/evergreen_diary_9_on_indieweb

 

Again, welcome to the joys of the IndieWeb. I, too, share your concerns about the long-term viability of community oriented projects like Known, Brid.gy, etc. I've recently heard it suggested that perhaps IndieWeb work should be managed under the umbrella of a foundation, which is supported by active community members and corporate sponsors.

The other encouraging note is that commercial endeavors are popping up that support IndieWeb specs and share similar philosophies. Notably, I like what I'm seeing from Micro.blog.

 
 
 

Great progress is being made on Together - https://github.com/cleverdevil/together - an open source "reader" for the open web, with support for IndieWeb standards like Micropub and Microsub. Check out this quick demo – http://share.cleverdevil.io/JNrG4pVNfY.mp4

 

Micro Monday: Eddie Hinkle

1 min read

Its our first ever Micro Monday, people! Thanks to @manton and @macgenie for deciding to make this happen. I think its a great way to grow the community of Indie Bloggers and Micro.blog itself. My first recommendation for my followers is @eddiehinkle.

Eddie is a fellow IndieWeb developer that I've enjoyed getting to know over the past year or two. Eddie works on an iOS app called Indigenous:

Indigenous is an iOS app that is in development. It’s goal is to provide a native iOS interface to the indieweb movement.

Indigenous is open source, written in Apple's Swift programming language. If you're an IndieWeb-curious developer on Apple platforms, I'd encourage you to get involved with Eddie, and help him with Indigenous!

In addition to his work on the IndieWeb, I also appreciate following Eddie because he writes thoughtful posts about, you know, being a human. Its always refreshing to see someone share how their faith informs their life in an open and honest, accepting way.

Thanks for being awesome, Eddie!

 

IndieWeb Idea: Follow Friday, but for blogs.

https://twitter.com/brentsimmons/status/949354384541990912

 

This is great! I'd love to see @evergreen_mac support the broader via Micropub and Microsub! We're doing that in Together – https://github.com/cleverdevil/together – but would love a native macOS alternative. Excited for @evergreen_mac!

https://twitter.com/evergreen_mac/status/947562202730344448

 

One thing I loved about the early days of Twitter was the UX innovation from third-party clients like Twitterific and Tweetie. I’d love to see that happen for Micro.blog, and RSS, JSON Feed, Micropub, Webmention, and other IndieWeb concepts make it entirely possible.

 
 

Checked into Wurstküche

IndieWeb Meet-up!

 

Impromptu IndieWeb Meetup

Sausages, fries, beer, and the open web

Location: Wurstküche, 800 E 3rd St, Los Angeles, CA 90013

-

Join us for dinner, drinks, and IndieWeb conversation.