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 🙏

© 2025 – Pkg Stats / Ryan Hefner

capella

v1.2.0

Published

Capella cross browser addon framework.

Readme

Capella: a cross-browser extension framework

Capella is a work in progress!

capella logo

Capella is a cross-browser extension framework. Up to now it supports chrome, opera and firefox.

How it works:

If you deal with cross-browser extension development, you have to address two main issues:

  • Every browser has its own API
  • Every browser has its own mechanism to import/include files to your extension

So this is how Capella deals with the issues:

  • Capella has a cross-browser API that hides the different browser APIs.
  • All browsers have a thing in common: they have a persistent background script and contents script which run in the web pages. Capella has a preprocessor which is able to include files (.html or .js) to scripts. So you can include jquery by writing INCLUDE(jquery.min.js) in your content script, and that will copy the content of jquery.min.js to your content script. By using the import mechanism you can use every library you want!

How to install Capella:

  1. Install node.js with npm
  2. Install google chrome if you want to develop chrome extensions
  3. Open command shell
  4. Run npm install -g jpm to install build tool for firefox addons
  5. Run npm install -g capella to install capella

Capella project structure:

my-extension/
    +-- manifest.json
    +-- data/
        +-- js/
        +-- css/
        +-- html/
        +-- ...
    +-- build/
        +-- my-extension-chrome/
        +-- my-extension-firefox/

In your main directory, there is the chrome-style manifest descriping your extension and the data folder containing all resources. Run capella build in your main directory to build your extension. The build output is copied to the build directory.

Capella commands:

  • capella init: create an (nearly) empty but valid example extension
  • capella build {target}: run this command in the main directory (where manifest.json is situated). Creates extension for target browser (chrome or firefox) or both if target is not specified. The output is saved to directory build

Preprocessor commands:

  • INCLUDE(myscript.js): Replaces the include command with the content of the specified files
  • INCLUDE_AS_STRING(myfile.html): Includes the content of the file as a string. Example: var popup = INCLUDE_AS_STRING(mypopup.html);

Capella API:

To use the Capella API you have to insert INCLUDE(capella.js) to your file javascript file.

TODO: add API reference