npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

abo

v0.1.2

Published

A micro front-end A/B testing framework.

Downloads

8

Readme

abo

Abo is a micro front-end A/B testing library.

Dependency Status Build Status npm version

Installation

npm install --save abo

How it works?

The first time a user visits a page he gets an experiment assigned. The experiment's ID is stored in the user's cookies. He will not get other experiments assigned until the one he's on is active.

How is the traffic allocated between experiments? By default, the traffic is divided equally between all experiments. If some experiment has to have more or less traffic, it can be specified through the traffic parameter. The value of traffic has to be between 0 and 1. 0 is no traffic at all. 1 is 100% of the traffic.

How to target specific devices/pages/users with an experiment? An experiment will only be assigned to a user if its assignment condition is satisfied. The assignment condition is a function passed to the ac property that returns a boolean. So if an experiment is changing the homepage for mobile devices, the AC of the experiment can look like this:

function() {
  return location.href.indexOf('/homepage/') !== -1 &&
    matchMedia('(max-width: 749px)').matches;
}

Usage example

abo([{
  id: '423',
  name: 'Blue buttons on Homepage',
  /* Assignment Condition */
  ac: function() {
    return location.href.indexOf('/homepage/') !== -1;
  },
  traffic: 0.1, // 10% of the traffic will be assigned to this variation if the Assignemt condition was satisfied
  setup: function() {
    $('button').css({
      'background-color': 'blue'
    });
  }
}, {
  id: '132',
  name: 'New page title',
  setup: function() {
    $('title').html('New page title');
  }
}]);

Project generation

Don't know how to bootstrap your A/B testing project with Abo? No problems, just use Yeoman generator for Abo.

License

The MIT License (MIT)