Using Evernote and Drupal as the ultimate blogging and social network broadcasting setup

The problem

Often I come to a crossroads where I can either experience a moment or capture it. This is a difficult decision. Do I take a picture, or do I watch with my own eyes? Do I think unrestrained, or do I write it down? Do the benefits of having the memento or reminder outweigh being a little more in the moment? 

That question is tough enough. But then the time spent out of the moment is compounded when sharing the moment with others. Downloading images from the camera, uploading them to Flickr, tweeting about it or updating your Facebook status. It takes time, and it's hard to measure the payoff. Are these artifacts that we're sacrificing a little slice of our lives for really worth it?

I'm pretty sure good to share, particularly with the right motive. If it took no time at all, the effort can only land on the side of good to convey interesting experiences or ideas to others. We can add to the global consciousness and do our part in the push towards greater things. But the reason I don't blog, and I don't tweet, and I don't FB these days is because the cost is too steep. I have specific work-oriented goals I'm shooting for, I have a son I'd love to spend a lot more time with, and another one on the way. I have a yard to mow and a body to keep from languishing. I feel like I'll have time to share someday, but usually it's not now. Or, when I share it can only be for very specific reasons that match up with other goals too.

I've been steadily working towards solving the first problem of capturing. A service called Evernote (you may have heard of it) plays a huge part. Of all the data-capturing applications I've worked with, Evernote streamlines the capturing process. It has a global hotkey (at least for Mac), so I can use it even if it's not open. All I need my mind to do is think that hotkey, and in a second (or a couple if the app has to open) I'm capturing. It syncs up with my iPod Touch so I can capture on the road.

In order to enrich my ability to capture other media, I recently purchased a mobile phone with audio and video capturing abilities. I can e-mail these to my Evernote account. This streamlines the capturing process so it feels like the cost is about as low as it can get without having embedded photo sensors in your forehead. No transferring of media, it just syncs up on its own.

This wasn't enough for me. I also wanted to tackle the problem of the lowering the overhead of sharing to the point where it felt like it was no longer a matter of if I had the time, but rather if the information was worthy of sharing.

One issue I have with sharing information is the multiplicity of channels. How can I expect that someone will monitor my Flickr, Twitter, Facebook, Blip, Digg and Delicious accounts, plus several of my own media channels. And even though there is some integration between these services, as far as I know there's not a single application that provides a centralized method of distributing media, so managing the distribution of the data I want to share requires hooking into multiple interfaces. Even if there was a unified interface, there's then two places to manage that data - your local copy and the copy on the channel, and I feel like it should be possible to reduce this to one. Change it locally, and it changes on the service as well.

The issue of centralizing the consumption of your media can be solved by pulling in all the data to a centralized feed - like a blog. It can aggregate your tweets, your videos, your blog posts, and anything else. But, there's still the problem of getting that data into the blog in the first place, and managing it once it's there.

The solution

So, I started putting a couple of pieces together. Evernote provides a method of embedding files of various types inside the notes, and it syncs them with a remote server. I remembered reading that Evernote also had an API, so I started looking into it to see if there might be a way to sync up a web site with Evernote. If so, then I could feasibly create a post locally and have it automatically appear in my blog. If I could centralize my media into Evernote and use it as a blog broadcasting tool, then I would have a solution to multiple problems: 1) Having only one interface for distributing multiple types of media, solving the multiple channels issue 2) Since I capture ideas and information in Evernote anyway, sharing it wouldn't add any overhead at all. 3) If I could broadcast out to multiple channels, I could get a lot of leverage for the data I capture, making it more likely that I would want to capture it in the first place - a useful feedback loop.

The idea really excited me, and as I started digging into the Evernote API, I realized it was totally possible. It's times like these that I'm really happy to be a developer.

I'll be posting more about the solution I came up with, but the idea is to use a Drupal site as a hub which polls Evernote for new notes that meet particular criteria (i.e. they have a particular tag) and adds them as nodes (pages) to the site. Any updates that are made in Evernote are automatically pushed to the site. I built a Drupal module (which will be available soon) that manages this process, and allows two types of tagging - the traditional type which organizes the nodes (i.e. family, recipes, etc) and the second which can be used as triggers for other activity. On this site, for example, I can add a tag called *tweetand Drupal will automatically tweet the node with a shortened URL. If I add a *fb tag, then the twitter post will be sent to Facebook as well.

So just to be clear, here's the workflow:

  1. I create a note in Evernote
  2. I give it the tags *tweet and *fb

That's all. The note is broadcasted to my blog, to Twitter and Facebook. You don't even have to save your note in Evernote, it saves it in the background. If there are any media files attached, it automatically saves them to the appropriate place in Drupal. If that media changes in Evernote, it will be updated in Drupal.

You'll have to excuse me, but I think this is pretty bad ass.

One other issue I wanted to solve was the issue of inter-linking between notes. Evernote is suspiciously wiki-ish, but there's no way to link between notes. What this Drupal module will do is post back a new note with a list of the pages that have been published through the module - with links - so you can copy and paste the links in other notes. Because Evernote has awesome search, it's easy to find the link if you know even a single word.

Oh, and one more piece of awesomeness? Evernote OCRs images on their server, and this module will capture the OCR-ed text and pull it back into Drupal to add to your pages in a variety of ways. Images become searchable! Damn!

The upshot is that I now have a tool that makes it amazingly natural to share information. Of the things that I think are worthy of capturing for my own benefit, there's a handful that I can see being useful to others. To share it, I only have to add a tag.

More to come about this, as well as a release of the Drupal Evernote module. 



Comments

Sweet. Can't wait to see the module. Nice work.

Apart from the technical solution you're developing here, I know where you're coming from in terms of publishing channel overload.

I've used Evernote on and off, but always loved the OCR capability...this sounds very interresting...pls keep posting about this.

Check out the service posterous.com. It's a dead simple blogging system that integrates with various sites like fb, twitter, etc. and it is fairly intelligent enough to know when to post what where. Basically you email your content (notes, images, videos, etc.) and it posts the information out to your other services.

Hi Craig - someone pointed me to this yesterday, and I'm sure I can draw some inspiration from it. From what I gathered from their home page you send an e-mail in and they create a web site for you, and take care of broadcasting out new posts, is that right? Do you know if you can post to to an external site?

It seems like if your blog was straight up text and you did a lot of mobile posting, it could be helpful. With the Evernote module, you can do that, but you also would get a ton of other benefits, like tagging, inline images, file attachments and such.

I'll definitely look into posterous more, though, thanks!

What do you mean by "post to an external site"? (facebook, twitter, etc.??)

Posterous does have a web editor if you want to create content directly on the site, however I use the email method. In the email you can add tags, select which external sites to post to, etc. Check out the FAQ/Help/Mobile menu items at the bottom of the posterous homepage.

FYI... my drupal blog runs off of posterous.

Nice! I'll have to check it out more. By "post to an external site", I meant specifically a blog you own (not on Posterous), which it sounds like it can do. Thanks!

Ping.fm is another option and better tailored to this purpose than posterous. But neither of these alternatives have evernote's flexibility - which is why your module is so exciting, Chris. I can't wait!

Bless you my son!! I'm a rigorous user of both drupal and evernote...but not a developer. I hope to see/hear much more about this soon, I'd love to try/beta it?

This is one of the most useful modules there is. Do you have a beta?

I'll be releasing the module soon. It's in the Drupal CVS repository under "evernote" if you're looking for a preview, but I'll have a project page up before too long.

Drupal is great, Evernote is great, and your module will be great, I'm sure. Can't wait to see it...

This sounds great, Chris, I can't wait to try it out!

Great meeting you at DCCO10 a couple weeks ago, keep up the awesome drupal work! (and thanks for sharing!)

Hey Benj, thanks, I'll be looking forward to your feedback. It was great meeting you too! Your name actually just came up a couple days ago when my wife and I were discussing baby names. "Benj" has made it to the short list. :)

Really very excited to hear about your Evernote module, and can't wait to play with it.

Thanks in advance, mysty

The first beta of the Evernote module for Drupal was released today, check it out: http://drupal.org/project/evernote.

I'm looking forward to feedback!

This is great news, I was thinking about a similar approach and haven't had enough time to develop the module, so I'm very happy to see that you've done it.

Downloaded and tested the module. Looks like there is an error in evernote.module:28 where you have ":" as the path separator which should be ";"

Once I've corrected this I was able to add an evernote account but I can't add a feed. When I call that page I get a WSOD and the PHP log shows

Uncaught exception 'TTransportException' with message 'THttpClient: Could not connect to www.evernote.com:443/edam/user' in D:\Drupal6\sites\all\libraries\evernote\transport\THttpClient.php:187

I'm not sure where this is coming from. Maybe my web server is blocking outgoing traffic to evernote.com? I doubt it.

Hi Jürgen!

I created an issue in the Evernote issue queue here http://drupal.org/node/851810, and here was my response:

"It sounds like this is an issue with the Pear Request.php library. Did you create your own API package, or download the zip from http://chrisshattuck.com/blog/instructions-setting-evernote-library-ever...?

Just to make sure, I did a fresh install on two separate sites and servers, and didn't run into either of these issues. I'd love to know what's going on here, but I'll need to be able to re-create it somewhere to dig in.

Anyone else having these issues?"

I apologize for the uncaught spam, I've added some better spam filtering so those who are subscribed to this thread shouldn't be hearing about this particular type of product again. Thanks!

Had the idea for exactly this a few weeks ago but don't have the skill to know where to start. VERY glad that someone else had the same idea and the skill to actually do something about it! Really looking forward to trying this out and will be keeping a close eye on further developments.

Thanks!!

Hi Farren, a couple of folks have mentioned that they were thinking about something along these lines. Let me know if you get a chance to give it a run, and if there's any ideas you had that you'd like to see incorporated. Cheers!

I've used MS OneNote for some time, but have no experience with Evernote. They sound like they have the same capabilities, almost exactly.
Does anyone have experience with the use of OneNote vs. Evernote?
The info would be appreciated!
Les

Wow. This is effing brilliant. My mind is speedracing through the possibilities!