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

aiiinotate

v0.9.1

Published

a fast IIIF-compliant annotation server

Readme

aiiinotate

aiiinotate is a fast and lightweight annotation server for IIIF. It relies on nodejs/fastify and mongodb and provides an API to read/write/update/delete IIIF annotations and index manifests.

NOTE: currently, only annotations following the IIIF presentation API 2.0 and 2.1 are supported.


API

See the docs on the aiiinotate API.


PROD USAGE

Install

  1. Install mongodb.

  2. Install aiiinotate

npm install aiiinotate

Env definition

Basic definition

Copy config/.env.template to .env and edit it.

Runtime env sourcing

Once the package is installed, it must access variables from the .env file. However, running aiiinotate <commands> creates a subscript which means you can't source an .env file.

# THIS WILL FAIL: `aiiinotate` is executed in a subscript that doesn't inherit from the variables fetched in `source`.
source /path/to/.env && aiiinotate <command>

The solutions: do either:

  1. use dotenvx to inject variables:
    npx dotenvx run -f /path/to/.env -- aiiinotate <command>
  2. manually export variables:
    set -a
    source /path/to/.env
    set +a
    aiiinotate <command>

For clarity, we omit env sourcing from the below commands.

Setup the app

  1. Start mongod
sudo systemctl start mongod
  1. Create and configure the database
aiiinotate migrate apply

Usage

All commands are accessible through a CLI (./src/cli).

Run the app

aiiinotate serve prod

Run the CLI

The base command is:

aiiinotate -- <command>

It will give full access to the CLI interface of Aiiinotate. Run aiiinotate --help for more info.

For more information, see the CLI docs.

Import data

See the CLI docs.


DEV USAGE

Install

# clone the repo
git clone [email protected]:Aikon-platform/aiiinotate.git

# move inside it
cd aiiinotate

# install mongodb
bash ./scripts/setup_mongodb.sh

# install node
bash ./scripts/setup_node.sh

# install dependencies
npm i

Setup

After installing, some setup must be done

  1. Setup your .env file after config/.env.template and place it at ./config/.env.

  2. Start mongod

sudo systemctl start mongod
  1. Configure the database
npm run migrate apply

Usage

Remember to have your mongodb service running: sudo systemctl start mongod !

  • Start the app
# reload enabled
npm run dev
  • Test the app. NOTE: the tests will probably fail if you set the env variable AIIINOTATE_STRICT_MODE to true.
npm run test
npm run cli
# NOTE: the `--` is necessary !
npm run migrate -- <command> <arguments?>
# NOTE: the `--` is necessary !
npm run cli -- import <arguments>

Test coverage

aiiinotate is well tested: over 90% test coverage on all files !

ℹ ----------------------------------------------------------------------------------------
ℹ file       | line % | branch % | funcs % | uncovered lines
ℹ ----------------------------------------------------------------------------------------
ℹ all files  |  90.02 |    79.43 |   78.73 |
ℹ ----------------------------------------------------------------------------------------

License

GNU GPL 3.0.