PennApps 2012

Joe Sullivan and I are headed down to Philadelphia today for Penn Apps 2012, an awesome bi-annual 48-hour hackathon for university students, run by Penn students themselves. There’s thousands of dollars in prizes, not to mention mentors from sponsors like us, Facebook, Google, Dropbox, Mongo, Mozilla, the New York Times, Quora, Zappos, and more. They’ll even reimburse your bus fare (which is extra rad since the price of a ticket from New York has risen substantially from the $5 I paid as an undergrad).

This session is already completely full, but there’s a waiting list for student hackers, and the next PennApps is just six months away. (All developers in the area are invited to come by to help advise teams in their areas of expertise.)

If you’re a student looking for help, or live in Philly and just want to meet your friendly local AddThis developers, please drop me a line or send a tweet (@itsjoesullivan or @keesan)! We’re excited to be sponsoring our first university hackathon.

Introducing Our Newest Sharing Experience

We’re happy to announce major updates to the AddThis sharing tool suite: the new design we’ve been testing in AddThis Labs graduates today, with a slew of new features. Go grab the new code!

We’ve written before about the mind-boggling amount of data every day, and how we use it to provide insights both to our publishers and into trends across our network. But we also use data to drive and refine our own processes and designs. Today, we’ve used what we’ve learned to make sharing even easier, and more personal. That means more engagement from your visitors, more sharing, and more traffic for your site.


Simpler design.

First, we have a new look. We’ve streamlined and simplified the compact menu. We’ve made our email form a lot easier to use, like the email clients you’re already familiar with. Our expanded menu’s been optimized for faster sharing to the most popular services in your region, and easier searching for your personal favorites. (As always, we’ll highlight the services you use for even easier sharing next time.) We’ll take advantage of jQuery on pages that already include it for simple but lovely transitions. And while our new platform takes advantage of HTML5 and loads of modern browser features, we won’t leave you out in the cold if you’re stuck on IE6–though, seriously guys, it’s time.

In Labs, the updated design increased sharing by 11%. In production, it’s going to do even better–due to our second major update.

Instant sharing.

Sharing to Facebook or Twitter used to mean popping a new window. That’s fast, but we figured if we made it even faster, more people would be sharing your content. To that end, we’re introducing “instant” inline sharing to the most popular social networks. If your users link their social accounts with AddThis, they’ll be able to share directly to Facebook or Twitter without even leaving your page. The new inline interface means there’s no extra page load–that means more unimpeded sharing. Even better, once a user authenticates, they’ll remain logged in on every single site with AddThis, until they log out. Everybody wins.

Adding social sign in to our sharing tools doesn’t just mean it’s easier to share. It also means it’s a lot easier to personalize your AddThis experience–easily choose the services you want to see once, and you’ll see them across all the sites that use AddThis.

Pain-free pinning.

Our recent updates for Pinterest are fully integrated with the new design. We’ve created the simplest and easiest way to integrate with Pinterest: almost no work necessary! Put AddThis on any page you want to make pinnable, and we’ll show a simple, elegant lightbox to showcase all the images on your page for your users to pick from. You can always specify your own image, too, if you want! We’ve found this feature can boost sharing to Pinterest by 20% or more.

You can add all these capabilities to your site with one simple code snippet. Take a look and try it out!

Our plugins for WordPress, Magento, and Shopify will be updated this week to support the new surfaces.

Questions? Comments? As always, we’d love your feedback.

Introducing Social Sign In

We’re stoked to announce the newest addition to AddThis Labs:
Social Sign In.

You’ve probably noticed that many websites now allow you to register or sign in using one of your existing social network accounts, like your Facebook username or your Twitter ID. It’s not just a startup fad; in fact, there’s solid science behind it. Blue Research studied the holiday shopping habits of US consumers and noticed that the vast majority of us are annoyed by having to create a new account to use a site, and would generally rather use one of our existing social network accounts.

If you’ve ever had to register on an obscure website just to buy one perfect gift, you probably know exactly how this feels! Even outside of retail applications, users are much more likely to register for and engage with your site if the process is bootstrapped with their existing online identity–some research has shown users authenticating socially spend up to 50% more time on site than the rest.

Seeing the value of social authentication is easy. Building it, though, hasn’t been. Most existing social authentication solutions have either required a lot of complicated server-side programming; mastering the ins and outs of OpenID, OAuth, and other specifications; or paying for a hosted solution and thus giving up control over your users’ data, not to mention some of your budget!

Our approach is simpler. And it might be the right one for you.

Example of Google, Twitter and Facebook sign in buttons
Use their standard buttons, or design your own.

Social Sign In by AddThis is a straightforward JavaScript library that makes it easy to strengthen your relationship to your users by adding Facebook, Twitter or Google authentication to your site.You provide the application keys for each service you’d like to integrate. We take care of rendering the buttons and managing the authentication flow. When a user successfully authenticates, we provide the data directly to you, via JavaScript.


Some of the social data you’d get,
if I logged into your site using Social Sign In.

From then on, it’s your show, whether you want to pre-fill a registration form, directly create a new account, or store the data for later analysis. Our goal is just to make it easy to bring your users’ social data to your site, whether for registration, authentication, or personalization. You can try it out live on our Labs page.

Want to offer as many services as possible? No problem. Regardless of the network used, the data comes back in the same format — so you only have to write code once.

Like all our tools, you’ll get data in our analytics dashboard, too. We’re starting by keeping track of what networks your users are logging in with, but we’d love your thoughts on other information that might be relevant.

To make integration even easier, we’ve open sourced a fully functional demo in JavaScript, PHP and MySQL, with a simple user registration system based on Social Sign In. If you’ve always wanted a user system, feel free to start with ours! Or you can use our code as a basis for integrating Social Sign In into your existing registration and authentication system.

Questions? Comments? We’d love your feedback!

Pride, Glory and Scotch: A Wrap-Up of Hackathon Summer 2012

Innovation, collaboration … sleep deprivation. Put all those together and you know that AddThis Hackathon Summer 2012 was a great success!

Over a dozen amazing presentations were given this morning from individuals and teams, showing off some of the most impressive projects to date! Fun new products, feature overhauls and internal tools for improved efficiency – our talented crew covered all the bases.

While the grand prize — a fancy bottle of scotch, some gift certificates, and bragging rights until the next hackathon — could only go to one project, every participant is a winner in teamwork, creativity and dedication.

We’ll be sharing more information about the various projects as we roll some of them out in the coming months but to give you an idea, topics and tools ranged from new Pinterest solutions for publishers to usage of gestural and voice control technology. It was an impressive array of presentations and they made one thing very clear: the A-Team is proving that the future is now!

Here is a look back at the past 24 hours. Now excuse us while we go catch some Zzz’s!

The winners with their most important prize.

Shhh! Sleepy hackers! ...

Cats hacking?! Only at AddThis.

Hungry, hungry hackers enjoying our early morning omelete bar!

If this looks like fun to you, check out our careers page. We’re hiring hackers and other great minds to join the party!

AddThis Hackathon Summer 2012 is Underway!

Coders crack your fingers, on your keyboards, ready, set, GO! It’s Hackathon time — one of our favorite pastimes here at AddThis.

What is a Hackathon exactly? Hackathons are our 24-hour full-team sprints of innovation.  Individuals can work alone or as part of teams. The only real rules are:

  1. The projects have to have something loosely to do with AddThis.
  2. They should be compelling.
  3. And finally, they must be built and demoed within 24 hours!

Not only are Hackathons a great way to reinforce the importance of teamwork, but some amazing products and tools have been born out of the tradition.

Keep checking in on our Twitter account, where we’ll be live tweeting photos and other fun  behind-the-scenes Hackathon action! Here are some early snapshots:

Look at all that collaboration! We love it!

Big Data Part III: A Simple Decision – Performance, Predictability, Price

This is the last in a three part series on the processing and infrastructure of AddThis. Make sure to check out part one and part two.

In the end, our decisions rest on cost and control.  For our uses, CPU cycles in the cloud are about 3x more expensive than the fully loaded cost of dedicated cycles in our own data center.  Data stored in the cloud is at least 10x more expensive than in our own clusters.  Even if data storage were free, we would still be paying for CPU cycles to process the data and network costs to expose it.  But the killer is still latency and IO bottlenecks.  At our scale, there aren’t meaningful pricing options to overcome these in the cloud.

As both our business and cloud offerings have matured, we would still make the same choices around internal build-out vs shared cloud.  If there is one reason that drives this decision, it’s the fact that we have a business in which our needs can be modeled and anticipated.  And with the ability to predict comes the ability to optimize resources for both cost and performance.  With our own build-outs, we are able to regain control and apply it to the bottom line.  But to achieve this goodness requires a clear understanding of your needs, a skilled dev/ops team, a hacker mentality and focus.

  • clouds remain king for spot capacity, typical web apps, development
  • they do not solve complex management problems or magically scale apps
  • operations at even modest scale still requires skilled, creative staff
  • once a baseline of capacity is known, dedicated hardware can’t be beat

Depending on the profile of your business, cloud computing could be a game changer.  Our decision to bypass the traditional cloud was game changing for us;  we are noticeably stronger, faster and larger than our competitive set.  And with our developed abilities in large scale data and processing, we are in control of our destiny, ready for what comes next.

If you have any questions or want to hear more about our data processing capabilities, please feel free to reach out to us.

Big Data Part II: AddThis Today

This is the second in a three part series on the processing and infrastructure of AddThis. Make sure to check out part one and part three.

Fast forward to today. Our data infrastructure supports AddThis code deployments on more than 14 million domains, ingesting billions of events and terabytes of logs daily.  Scores of machines has grown to around a thousand totalling tens of terabytes of RAM and petabytes of disk space.

The majority of our internal compute capacity is dedicated to our custom data processing platform.  This platform is highly dependent on large IO capacity and low latency more than CPU cycles.  Virtualization, generally speaking, can be manageable for many CPU and memory-bound tasks, but is almost always destructive to the performance of network and disk subsystems.  As a result, we employ no virtualization save for a few test machines.  And while we run relatively commodity network gear, our decisions around topology and infrastructure have been made deliberately and carefully to maximize performance.  In our experience, the compounding effects of latency and IO bottlenecks quickly become a non-linear problem.

  • even with the best of intentions, virtualization kills performance
  • compress everything, keep it compressed even in RAM until it’s needed
  • all data must stream (compressed!), remote procedure calls are evil
  • data must be sharded for locality of processing, not physical locality (see previous)
  • model around simple tasks that can checkpoint and replicate
  • anything that provides transactional safety between checkpoints works against you
  • design for (constant) failure whether in a public or private cloud

AddThis employs top-tier CDNs for most static web-asset serving, but we have still chosen to internalize our http-based APIs.  Even though cloud offerings excel at many web-service scenarios, they mainly rely on traditional LAMP stacks with limited back-end commitments beyond scripting and modest databases.  In these environments, virtualization is usually OK because most instances vastly under-utilize system resources. But when contention rears its head in the cloud, there is no recourse other than take the penalty or provision random new hardware.

Our “edge” and eventing API are http services that require maniacal tuning for performance and reliability.  With billions of requests a day spread across millions of domains, our code is trusted by site owners to respond quickly.  Latency *is* supreme.  Flowing from our edge and eventing APIs to the backend are terabytes of real-time data.  This live stream is forked into log storage and real-time systems.  Proximity to our compute clusters enables both faster and more economical processing of data by avoiding repeating data across high-cost, high-latency links to remote data centers.

  • commodity network gear with the right topology and software can work wonders
  • optimization of networks, proxies and kernels remains a high art
  • chrome does unspeakable things (for another day)

AddThis’ compute clusters are constantly processing and re-processing hundreds of terabytes of data, applying new algorithms, generating new metrics and finding deeper insights.  Our current model supports complete visibility into optimizing our stack.  With a top to bottom view on hardware and software, we can squeeze out more than 10 times the performance per dollar than we can get from cloud-based offerings.  Equally important, we can do this reliably and predictably.

Continue to Part III: A Simple Decision – Performance, Predictability, Price

Big Data Part I: Sailing Past The Clouds

This is the first in a three part series on the processing and infrastructure of AddThis. Be sure to check out part two and part three.

Sailing Past the Clouds

The emergence and maturation of multi-tenant, virtualized, commodity computing (“the cloud”) has enabled entirely new business models by bringing large scale distributed computing at an affordable price point.  But by designing systems flexible enough to function well in most scenarios, but tackling no specific problem, cloud vendors have made architectural trade-offs that are particularly challenging to us.  Over the last five years, we’ve built a lower cost, more effective, more scalable solution that is closely tailored to the needs of a large scale data, low latency businesses like ours.  And in doing so we have gained control over performance, predictability and price.

A Little History

AddThis’ success in the Widget business, starting in 2006 / 2007, catapulted us directly into scale problems that early clouds of that time were not ready to handle.  At that time, our platform was providing real-time analytics for hundreds of thousands of widgets being viewed hundreds of millions of times a day.  It doesn’t seem like much compared to the billions of events we’re tracking today, but it was on par with the social giant of that time: MySpace.

Early decisions, which were formative to our thinking, were based on pragmatism.  We were small and the price to upgrade databases at the scale we needed was out of the question.  The performance of scripted / hosted commodity web stacks could not predictably meet our needs.  Before long, we were forced to replace our SQL databases with a much faster (and simpler) in-house developed noSQL store just to keep up with massive data growth (the term noSQL, like Hadoop itself, didn’t exist yet). We found we could get better scale with operational safety and huge cost savings by architecting around a few key learnings:

  • Databases can be fast, but network connections and serialization are slow
  • Transactional safety is untenable overhead for real-time anything
  • In-process local data CRUD is at least 1000 times faster
  • Have hot spares/replicas, stagger checkpoints
  • Backup only logs, not databases
  • Design around replay from logs

Continue to Part II: AddThis Today

Open Source at AddThis

If you have followed this blog in the past, you know that AddThis has worked to lead the way with open standards like OExchange and Web Intents. What you might not know is the engineers at AddThis are also leading the way with Open Source Software.

This month we sponsored the Second Annual Open Source Software BBQ in Washington, DC.  Four local open source meetups, WordPress DC, DC PHP, jQuery DC, and DC Droids came together to celebrate open source software with some delicious pulled pork and an array of sides. In the past we have also sponsored individual open source meetups that focus on other open source projects including Cassandra and regularly host and sponsor the Big Data DC meetup which often discusses Open Source Software.

Members of the AddThis team eating BBQ and chatting about Open Source

In addition to supporting the local open source communities, the engineers at AddThis contribute to many open source projects, both the popular and the obscure.  WordPress, GNU Emacs, CLISP, and Apache Kafka are some of the best known projects that we have contributed to.

If that isn’t enough, the Stream-Lib, MetricCatcher, Phetric, and TracBoard projects all have grown from work we do at AddThis and have been made available to the larger development community.  Checkout our github account to see some of the things we are working on now.

If working on open source software and open standards interests you, checkout out our job openings.

Web Intents and You (and AddThis)

Google Chrome 19 landed yesterday, bringing with it Web Intents, a new method for web sites/apps to communicate with one another. We wrote about Web Intents earlier this month, but now that it’s here we are making good on our promise and rolling out a suite of AddThis features to help publishers and users take advantage of Web Intents right off the bat:

Web Intents Support

Want to add Web Intent support to your site? If you use AddThis, you already have. Just drop this line into your addthis_toolbox:

<a class=”addthis_button_intent_share_url”></a>

Web Intents users will be able to share your page through their favorite intent handler just like any other service.

Intents support for non-Chrome users

Web Intents are great for Chrome users, but what about the other two-thirds of visitors? AddThis provides another one-liner to make web intents work no matter what. Set:

addthis_config.webintents = true;

and AddThis will handle Intent events in the absence of native support. Implement Web Intents however you like—in the AddThis toolbox or not—and rest assured that your visitors will have access to their preferred service.


Chrome’s response to a share intent.

The AddThis Intent Handler

For those of you testing out your brand-spanking-new Chrome installs, remember that not all of your favorite services have an intent handler in the Chrome Web Store yet. Not to worry—AddThis does! Install it as you would a normal Chrome extension and give it a spin on a demo intent.

Watch this Space

As Web Intents grows, so will our support for it. Meanwhile, we’re developing tools to enable OExchange providers to handle Web Intents and integrating intent handling into our browser extensions.

Web Intents is a new tool in your sharing arsenal, and AddThis is thrilled to support it! Your feedback on our Web Intents support is invaluable, both now and in the coming months as your implementation of intents evolves alongside Web Intents itself.