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

usm.io

v2.3.3

Published

Represents an User Story Map and its sub-components and can render it in HTML.

Downloads

12

Readme

usm.io

A lightweight solution to integrate backlog management into your development workflow and to put your backlog into the repository with your code.

usm.io teaser screenshot

What is it?

usm.io can render an User Story Map from a structured data representation into an interactive website.

The USM is defined in json format, that is complemented by Markdown or HTML to describe the contents of the cards in the map.

This makes working on your backlog as simple as possible, as you can use your well-known development tool and focus on the stories, while usm.io takes care of proper visualization.

Why use it?

usm.io is a different approach to backlog management as opposed to common backlog management tools, which have several disadvantages:

  1. They store data separately from the actual code. So keeping the backlog in sync with the code is often tedious and taking a snapshot over your whole toolchain is difficult or even impossible.

  2. They usually are very heavy on features. This comes in handy if you want to represent elaborate workflows, but it's a bit over the top if you just want to manage your backlog.

  3. The only way to interact with them is a graphical user interface. But keeping your backlog tidy can be annoying if it involves a lot of clicking around and waiting for things to be loaded.

usm.io offers a lightweight approach to editing your backlog as code and keep it in the repository with your code.

Plus: it visualizes the backlog as an User Story Map wich gives you great transparency over your roadmap.

How to use it

usm.io comes as a npm package that you can install in your own NodeJS project:

$ npm install --save usm.io

You can now use it like this:

const Usm = require('usm.io')

const context = {
  inputDir: './input', // where to look for sources
  outputDir: './web', // where to put rendered pages
  cardsWebroot: 'localhost:80/usm' // your hosting domain and directory. If used locally: a absolute or relative directory path.
}
const mapOptions = { ... }
const cardsOptions = { ... }

const usm = new Usm(context)
await Promise.all([
  usm.renderMap(mapOptions),
  usm.renderCards(cardsOptions)
])

Please see the source code in the example(./example) directory for details mapOptions and cardsOptions.

For each rendering feature there's an asynchronous function that takes the input from the inputDirectory and writes the rendered output to the outputDirectory. They can be run concurrently.

If you're working in a team, a good practice is to integrate the generator into your build pipeline, have it run with each push to the main branch and publish the build results as a website. This way you can assure that the visualization of your backlog stays up to date with your repository and is accessible to everyone.

Run the Example

This repository comes with an example that shows how you can integrate the generator into your project. It also includes stylesheets and scripts that bring the generated html map to life. They are a good starter for your own project.

See example.

How to provide the input

See The User Story Map for details on how user story mapping works, the features of usm.io and how you need to structure your map to make it render correctly.

Contribute

I'm happy for any help with usm.io. If you would like to contribute, please look into the issues to see which new features are already in the backlog and which chores need to be done.

If you have a good idea for a new feature or improvement, feel free to file a new issue or submit a pull request.