Share buttons that stay out of the way.no account required
AddToSite

Share buttons, in two lines of HTML.

Pick the services, copy the snippet, paste it where the buttons belong. No account, no dashboard, and no script sitting on your page watching who reads it.

In your snippet — 7 services

  • + add services
Full builder
12 lines
<div class="ats_kit ats_kit_size_32">
  <a class="ats_btn_facebook"></a>
  <a class="ats_btn_x"></a>
  <a class="ats_btn_linkedin"></a>
  <a class="ats_btn_whatsapp"></a>
  <a class="ats_btn_telegram"></a>
  <a class="ats_btn_email"></a>
  <a class="ats_btn_copy"></a>
  <a class="ats_dd"></a>
</div>

<script async src="//static.addtosite.com/widget.js"></script>
paste anywhere in <body>

79

services

20

icons inline

1

request

0

cookies

Here is every byte we receive.

One beacon, and only when a reader actually presses a button. Nothing on page view, nothing in a cookie, nothing that identifies anybody.

  • No cookies, no identifierNo cookies, visitor identifiers or fingerprinting. Optional service preferences stay in the browser for the current site.
  • No page-view trackingSharing sends an anonymous action ping. Optional count badges fetch aggregate totals; the widget does not send a page-view tracking event.
  • Three fieldsService, page URL and a timestamp. The domain comes from the Origin header, never from the body.
  • IPs are never storedThe address is hashed with a local salt on arrival and kept only long enough to ignore the same press twice inside a minute.
Read the privacy page

POST data.addtosite.com/v1/share

{
  "network": "facebook",
  "url": "https://yoursite.com/post",
  "ts": 1789286400
}

The domain is read from the Origin header, never the body. Turn the whole thing off with track: false.

Where are you pasting it?

All 12 guides

WordPress

Add the buttons under every post without touching a theme file twice.

Ends up

Under the content of every post, on self-hosted WordPress.

Editing the parent theme loses your work

Anything added through Appearance → Theme File Editor on a parent theme is overwritten by the next theme update. Use a child theme, or a code-snippets plugin, and the buttons survive.

  1. 01 Load the script once, site-wide

    Appearance → Theme File Editor, or better, a child theme. Add this to functions.php so the script loads on every page rather than being pasted into each post.

    add_action('wp_enqueue_scripts', function () {
        wp_enqueue_script(
            'addtosite',
            '//static.addtosite.com/widget.js',
            array(),
            null,
            true
        );
    });
  2. 02 Append the buttons to every post

    Still in functions.php. Filtering the_content puts the buttons under the post body wherever your theme renders it, so a theme update cannot lose them.

    add_filter('the_content', function ($content) {
        if (!is_singular('post') || !in_the_loop() || !is_main_query()) {
            return $content;
        }
    
        $kit = '<div class="ats_kit ats_kit_size_32"'
             . ' data-url="' . esc_url(get_permalink()) . '"'
             . ' data-title="' . esc_attr(get_the_title()) . '">'
             . '<a class="ats_btn_facebook"></a>'
             . '<a class="ats_btn_x"></a>'
             . '<a class="ats_btn_linkedin"></a>'
             . '<a class="ats_btn_email"></a>'
             . '<a class="ats_dd"></a>'
             . '</div>';
    
        return $content . $kit;
    });
Full guide

Everything it does

Ten things, all of them switched on by a class or a single line of config. None of them ask for an account.

Share anywhere

79 destinations, plus any you add yourself. Each button opens the reader's app when they have it and the web when they do not.

Made for thumbs first

On a phone the menu fills the screen and the floating bar drops to the bottom edge. Tap targets stay comfortable at every button size.

Icons that stay sharp

Vectors drawn on a 24-pixel grid and inlined in the script: nothing to fetch, nothing to blur on a high-density screen, no icon host to be blocked.

Built to behave

Loaded async, labelled controls, real focus rings, Escape closes the menu. Your page renders first and the buttons catch up.

Analytics, no extra tag

If gtag or Tag Manager already runs on the page, every press arrives as a standard share event with the service and the URL. We add nothing of our own.

Nothing to sign up for

No registration, no key, no account to manage. Paste the two lines and the buttons work on the next page load.

Counts when you want them

One flag puts a badge on each button. A service nobody has shared yet shows nothing at all rather than a zero on launch day.

Floating share bars

A bar that follows the reader down the page — pinned left, pinned right, or laid across the bottom once the screen gets narrow.

A guide per platform

12 platforms, each with the exact file to open, the snippet to paste and the one thing that usually bites.

Customizable to the edge

Override a brand colour, swap one service's endpoint, add a destination the catalog has never heard of, or point counting at a backend you run.

Add it once.
Forget it forever.

No account, no dashboard, no script watching your readers. Two lines of HTML and the buttons are somebody else’s problem.

Build my snippet
Builder