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 🙏

© 2026 – Pkg Stats / Ryan Hefner

yday

v0.3.0

Published

Git retrospective analysis tool - smart views of recent development work

Readme

yday

📜 Why use yday?

  1. Still working your way through that first ☕️, and can't remember where you left off yesterday? (It's even worse on a Monday, trying to remember where Friday took you.)
  2. Backlogs are both Planning and Tracking tools. When work isn't explicitly planned, we can DRY up the tracking by using the commit itself to fill in a lot of the blanks.

yday provides a semantic analysis of your recent git activity across all repositories, with smart time windows and multiple views to answer the question: "What have I been working on?"

📜📜 Who benefits from this?

Anyone who works in multiple repos and juggles multiple projects.

📜📜📜 What does it do?

yday analyzes git commits across your workspace and provides semantic summaries of recent development work. It:

  1. gathers commits across multiple repos (e.g. everything in a ~/workspace folder)
  2. summarizes meaningful chunks of work across commits
  3. offers multiple contextual views of your work (e.g. Alaistair timeline, Monday morning shows Friday's work (not Sunday's nothing)
  4. TK retroactively adds unplanned work to your backlog based on commits without tickets ("shadow work")

📜📜📜📜 How do I use it?

Installation

npm

npm install -g yday

Manual Installation

git clone https://github.com/discoveryworks/yday.git && cd yday
npm install # Install dependencies
node bin/yday --help

Basic Usage

Show commits from the last work day

Running yday on a Monday might return

## Git Repository Activity in `~/workspace` (yesterday, Friday July 05)...

| Repo                | Commits | Summary                           |
|---------------------|---------|-----------------------------------|
| my-app              | 4       | Building authentication system    |
| my-app-ios          | 2       | Integrate authentication system   |
| api-service         | 1       | Fixing database connection issue  |
| docs-site           | 3       | Updating deployment guide         |

Show an Alastair table

See https://alastairjohnston.com/projects-the-alastair-method/ for more on the Alastair Method.

yday --alastair

| MTWRFSs | Project     | Commits |
| ------- | ----------- |---------|
| ··3·1·· | my-app      | 4       |
| ··2···· | my-app-ios  | 2       |
| ···1··· | api-service | 1       |
| ·1·2··· | docs-site   | 3       |

Use symbols instead of numbers

yday -a --symbols

| MTWRFSs | Project     | Commits |
| ------- | ----------- |---------|
| ··/·x·· | my-app      | 4       |
| ··/···· | my-app-ios  | 2       |
| ···/··· | api-service | 1       |
| ·/·/··· | docs-site   | 3       |

Configuration

By default, yday scans ~/workspace for git repositories. Set a different path:

yday --parent ~/code

📜📜📜📜📜 Extras

Testing

Data gets pretty hinky here; be careful to protect features with unit tests.

npm test         # Unit tests (Jest)
npm run test:bdd # BDD/Integration tests (Cucumber)
npm run test:all # All tests

# Individual tests
npm test -- tests/unit/timeline-date-parsing.test.js
npm run test:bdd -- features/user_workflows.feature

Release Process

Follow these steps to release a new version:

1. Pre-Release Checks

# Ensure tests pass
npm test

# Review git status and commit any pending changes
git status
git add .
git commit -m "feat: your changes here"

2. Update Documentation

# Update CHANGELOG.md with new features, fixes, and breaking changes
# Follow the existing format and semantic versioning guidelines

# Test the changes work as expected
./bin/yday -a --verbose

3. Version and Tag

# Bump version following semantic versioning
npm run version:patch       # for bug fixes (0.2.1 → 0.2.2)  
npm run version:minor       # for new features (0.2.2 → 0.3.0)
npm run version:major       # for breaking changes (0.2.2 → 1.0.0)

4. Push to Repository

git push                    # Push commits
git push --tags             # Push version tag

5. Publish to npm

npm publish                 # Publish to npm registry
npm view yday               # Verify successful publication

6. Create GitHub Release

# Create release with changelog notes
gh release create v0.2.2 --title "v0.2.2: Feature Description" --notes "Release notes here"

# Or create manually at: https://github.com/discoveryworks/yday/releases

7. Verify Release

# Test fresh installation
npm install -g yday@latest
yday --version              # Should show new version
yday -a                     # Test functionality

Why "yday"?

Short for "yesterday" - the tool started as a quick way to check recent work. The name feels right even for yday --today because it's fundamentally about retrospective analysis of development work.