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

scalpeljs

v0.1.8

Published

ScalpelJS — Surgical DOM updates for Vanilla JavaScript without a Virtual DOM.

Readme

🪓 ScalpelJS

Surgical DOM updates with Vanilla JavaScript.

ScalpelJS is a lightweight ecosystem for building modern Web Component applications while keeping most of your code in plain Vanilla JavaScript.

Instead of introducing heavy abstractions, ScalpelJS adds small utilities that solve the exact pain points of working with the DOM.

No Virtual DOM.
No template compilers.
No proprietary syntax.

Just precise, predictable updates to the real DOM.

Keywords: Web Components, Custom Elements, Reactive JavaScript, Vanilla JS Framework, Lightweight Frontend Framework, Virtual DOM Alternative


Quick Start

Create a new ScalpelJS project:

npx create-scalpeljs@latest 

Then start the development server

cd my-scalpeljs-app
npm install
npm run dev

The CLI sets up a ready-to-use development environment with Vite and the ScalpelJS ecosystem.


Manual Installation

If you prefer to integrate ScalpelJS into an existing project:

npm install scalpeljs@latest

What is ScalpelJS?

ScalpelJS is a curated distribution built on top of several lightweight libraries that work together seamlessly.

Instead of installing multiple libraries individually, ScalpelJS provides a single entry point that integrates them into a cohesive stack for building Web Component applications.


The Ecosystem

ScalpelJS brings together a set of focused tools designed to work naturally with Web Components.

| Package | Purpose | |------|------| | redgin | Reactive Web Component engine | | redgin-store | Global state management with persistence | | jong-router | Lightweight client-side router | | pao-form | Declarative form handling and validation |

These libraries remain independently usable, but ScalpelJS provides a unified developer experience.


CLI

To quickly start a new ScalpelJS project:

| Package | Purpose | |------|------| | create-scalpeljs | Official project scaffolding tool |

Run:

npx create-scalpeljs@latest

Why ScalpelJS?

Surgical Reactivity

ScalpelJS updates only the exact DOM nodes that change.

Instead of diffing Virtual DOM trees, ScalpelJS performs direct DOM updates for predictable performance.


Native by Design

ScalpelJS builds directly on browser standards:

  • Custom Elements
  • ES Modules
  • Native DOM APIs

No proprietary runtime layer.


Vanilla JavaScript First

ScalpelJS keeps most of your application code plain JavaScript.

Rather than replacing the platform, it introduces small helper functions that solve specific problems:

  • reactive state updates
  • DOM binding
  • component lifecycle handling
  • state synchronization

Lightweight and Transparent

Without a Virtual DOM or complex runtime, ScalpelJS applications remain:

  • lightweight
  • predictable
  • easy to debug

Philosophy

ScalpelJS follows a simple principle:

Fix the limitations of Vanilla JavaScript without replacing it.

Many modern frameworks introduce entirely new programming models, compilers, and rendering engines.

ScalpelJS takes a different approach.

Instead of abstracting the browser away, ScalpelJS enhances the platform.

The core philosophy is surgical updates:

  • update only what changes
  • avoid expensive diffing
  • keep logic explicit
  • remain close to native browser APIs

The goal is simple:

Write applications that feel like clean Vanilla JavaScript, but with the precision and ergonomics of a modern framework.


When to Use ScalpelJS

ScalpelJS is ideal for developers who:

  • prefer browser-native technologies
  • want fine-grained control over the DOM
  • dislike heavy framework abstractions
  • want predictable performance
  • enjoy writing Vanilla JavaScript

Contributing

Contributions are welcome.

If you'd like to improve ScalpelJS:

  1. Fork the repository
  2. Make your changes
  3. Submit a pull request

Support

If you encounter issues or have feature requests, please open an issue:

https://github.com/josnin/scalpeljs/issues