Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including reasons with all npm packages installed. Try it out:

var reasons = require("reasons")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

reasons v0.1.3


Tools to support the collection of and analysis of user reasons, as per


There's a database API, and several React widgets that work with that database.

The database is built on Firebase, and in order to use it you’ll need to have users authenticate into the db, using code like this:

let FIREBASE = new Firebase('')
FIREBASE.authWithOAuthPopup('google').then(YOUR CODE HERE)

The database lets you add reasons, list them, and find completions for a partially typed reason string.

import Reasons from ‘reasons’
let newReasonId = Reasons.add(‘response’, ‘bored’)

There are widgets for picking reasons, and collecting reasons and outcomes from users about a chain of activities.

And activity looks like the following:

let exampleActivity = {
  blame: '',
  elapsed: 30*60*1000,
  over: [*60*60*1000,],
  recognizer: 'indirect',

  favIconUrl: '',

  verbPhrase: ‘browsing links’,
  examples: ‘A, B, and C’,

An assessment consist of the reported reasons and outcomes for an activity:

let assessment = {
      author: userID,
      assessment: feeling,
      reasons: [],

      blame: activity.blame,
      elapsed: activity.elapsed,
      over: activity.over,
      recognizer: activity.recognizer,
      verbPhrase: activity.verbPhrase

Getting started

npm install




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free