Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Social Buttons Server

Join the chat at

Install social share counters on your website with your own hosted solution which only makes 1 API request and loads minimal or zero assets to display the counters.

This is an open source and self-hosted alternative to services such as AddThis and ShareThis.

Because you run the middle man server your self, you are also defending your users privacy against the social networks. (Users only opt into the tracking once they decide to share and not just because they visited your page)


  • Heroku enabled, create an app and deploy instantly
  • Has cache control variable(default 4 mins) so you can throw CloudFront in front with ease which result in faster API calls and less chance of getting rate limited

Getting started

  1. Clone(or fork) the repository
  2. Install dependencies npm install
  3. Run the server node social-buttons-server.js
  4. Access your stats at http://localhost:5000/?networks=facebook,twitter,googleplus&url=
  5. Optionally push to a heroku app to automatically deploy


Options are passed through query parameters in the url


Currently only Twitter, Facebook and Google Plus are supported

You use the networks query parameter to specify which ones you want to use as a comma-separated list e.g.

networks=facebook,twitter,googleplus or networks=facebook


You use the url parameter to specify the address which you want to count the total number of shares for e.g. url=

If you don't specify a url then the server will try to get the referring urls total share count. So if you make the API call on your homepage without the url parameter, the API server will return the numbe rof shares for your homepage url.


You don't want to be hitting the social networks API's constantly so it would be wise to throw up a cache in front such as CloudFront.

In CloudFront just make sure you to inherit cache control directives from the server and enable query string forwarding.

Eithr use your CloudFront url to access the API server or cname it with a custom domain of your choice.

Cross domain

The server as it is has CORS enabled which means any website can call the API SERVER. You can easily white list if this becomes a problem.

HTML Widgets

We would love to start collecting widgets that people design and want to share, please submit them in a pull request to the gh-pages branch and we will create a new section to list them

You can do anything you want to display your share totals when using the API. There are the examples linked at the top of the README and some short code below. Notice that we are using a CloudFront distribution in the examples.

    <span id="twitter"></span>
    <span id="facebook"></span>
    <h3>Google Plus</h3>
    <span id="googleplus"></span>

  <script src="//"></script>
  <script type="text/javascript">
    $.ajax(',twitter,googleplus&url=', {
      success: function (res, err) {
        $.each(res, function(network, value){


Host your own social counters servers while pulling live data from Facebook, Twitter and Google Plus




No releases published


No packages published