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

abfab-volto

v1.0.2

Published

abfab-volto: Volto block for AbFab

Readme

abfab-volto

This is the frontent add-on implementing AbFab for Plone.

It requires https://github.com/ebrehault/abfab.plone to be installed on the server side.

Why? What for?

The main objective behind AbFab is to provide a way to make frontend easy, fun, and pleasant.

Client-side technics do improve the user experience, nevertheless they should not damage the developer experience. Bundling is not scalable, adding a new page to an existing app should not involve to re-deploy the entire thing.

AbFab is not meant to be a gigantic framework covering thousands of use cases. It targets small features that could probably be implemented in more classical ways, but you just do not want to deploy too many things (like a database, a bunch of backend endpoints, a security layer, a frontend app, etc.), or maybe you do not want to pollute your existing stack with extra dependencies just to achieve a small widget in one given page of your entire app.

AbFab is an all-in-one platform allowing to develop simple frontend components that can be published anywhere.

Description

AbFab is a web application publication environment. It provides the essential services any web application needs:

  • a secured and fast backend storage,
  • a minimalistic yet powerful frontend component framework (Svelte),
  • a light JavaScript runtime offering routing and backend connectivity.

Components are written in Svelte, they are compiled in the browser (you do not need a local NPM), stored in the Plone site (in a soup, see https://pypi.org/project/souper.plone/), and can be published to any page as a web component.

Simple things must be simple

No bundle and no static files: You will not have to use NPM, you will not need to bundle your code. All the components and data are on the server, there is no need to generate and deploy static files.

Code-splitting: Each component is compiled automatically and independently, and each page of your app will load only the needed components.

Client-side navigation: Navigation from one page to another is performed by loading only the missing data and the application renders it on the client-side, so the application is always fast. It behaves as a Single-Page-App, but it's not.

Component approach: Components are an efficient way to structure an app (HTML is built that way actually). You should be able use them outside the SPA pattern.

Do you need to learn a new technology? NO :)

LOW CODE: To develop an AbFab app, you will just need HTML, CSS and (simple) JavaScript. Svelte could be considered as a templating layer, it is very simple to learn and to use and will not be a blocker.

LOW DEPLOYMENT: AbFab is not just a frontend solution, it comes with backend capabilities, your component are stored in the site directly.

LOW BUILD: Components can be developed directly from the AbFab online interface. No NPM, no bundling.

Installation

  • Install abfab.plone with pip:

        $ pip install abfab.plone

    Or using buildout:

        [buildout]
    
        ...
    
        eggs =
            abfab.plone

    and then running bin/buildout

  • Raise the upload max size limit in zope.conf:

      <dos_protection>
          form-memory-limit 4MB
      </dos_protection>
  • In Volto, add abfab-volto to your package.json:

        {
          "name": "my-nice-volto-project",
          ...
          "addons": [
            "abfab-volto",
            ...
          ],
          ...
        }

Then, restart your Plone server and Volto, go to the Site settings and install the AbFab add-on.

Before using AbFab, you need to upload the Svelte library and the AbFab editor implementation (the AbFab editor is based on AbFab itself, it is not Volto-based, it must be uploaded to your server). Go to your Volto project, and run the following commands:

npx abfab-upload --path ./svelte
npx abfab-upload --local-root node_modules/abfab-volto/client --path ./abfab --target-path /

The abfab-upload script allows to upload local source to your AbFab instance. It accepst the following parameters:

  • --path: The folder (or file) path to upload
  • --local-root: The root from where relatives paths will be computed locally. Default is ./node_modules.
  • --target-root: The root from where relatives paths will be computed locally. Default is /node_modules.
  • --server: The Plone server url. Default is http://localhost:8080/Plone.
  • --username: The admin username. Default is admin.
  • --password: The admin password. Default is secret.

Author

Eric Bréhault

Inspiration

Dawn French, Jennifer Saunders and Joanna Lumley.

Contribute

  • Issue Tracker: https://github.com/ebrehault/abfab.plone/issues
  • Source Code: https://github.com/ebrehault/abfab.plone

License

The project is licensed under the MIT.