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

pochade-electron

v0.3.1

Published

npx starter template for dual Electron + web apps with sqlite-wasm local storage and optional C++/Rust WebAssembly

Readme

Pochade-Electron

For Writing JS with Passion

There are some frameworks for writing careful enterprise software. This is not one of them.

Pochade-Electron is an npx project scaffolder — a lightweight, opinionated starter template for building apps that ship as both an Electron desktop app and a static, front-end-only web app — with SQLite local persistence and optional C++/Rust WebAssembly, all in vanilla JavaScript.

Docs and demo: https://lnsy-dev.github.io/pochade-electron/

Requirements

  • Node.js 18+ and npm
  • Chrome or Edge (or the generated app's own Electron shell) for OPFS persistence and the File System Access API
  • Optional, only if you pick WASM support and want to rebuild it: Emscripten (C++) and/or wasm-pack (Rust). Prebuilt binaries are included, so the template works without any toolchain.

What is Pochade-Electron?

Pochade-Electron provides a streamlined development environment with:

  • Dual targets - One codebase: npm run build produces a static web app (dist/), npm run electron runs it as a desktop app, npm run electron:build packages it with electron-builder
  • SQLite in the browser - @sqlite.org/sqlite-wasm running in a web worker, with read/write of entries and index generation out of the box
  • Chrome file APIs for local storage - OPFS (Origin Private File System) persistence for the database, plus the File System Access API (showSaveFilePicker / showOpenFilePicker) to export/import the database file — both work in Chrome and in Electron's renderer
  • Custom HTML Elements - Built-in support for dataroom-js
  • WebAssembly - Optional C++ (Emscripten) and/or Rust (wasm-pack) examples, with prebuilt binaries so it works before you install any toolchain
  • Modern tooling - Webpack 5, SWC, PostCSS/cssnano

Quick Start

npx pochade-electron my-project

The CLI will guide you through setup with interactive prompts:

  • WebAssembly support - None, C++ (Emscripten), Rust (wasm-pack), or both
  • Project title / description / URLs - Metadata for the generated app
  • Author name / email / GitHub username / license - For package.json

After answering the prompts, Pochade-Electron will:

  1. Create your project directory
  2. Copy all template files and prune the WASM examples you didn't pick
  3. Configure package.json (including the electron-builder appId/productName)
  4. Update index.html with your project metadata
  5. Install all dependencies automatically

Then:

cd my-project
npm start          # web dev server at http://localhost:3000

In a second terminal:

npm run electron   # the same app as a desktop app (hot-reloads against the dev server)

Inside the Generated Project

| Command | Purpose | |---------|---------| | npm start | Start the web development server | | npm run build | Build the static web app into dist/ | | npm run electron | Launch in Electron (dev server if running, else dist/) | | npm run electron:build | Build and package the desktop app into release/ | | npm test | Run the WebdriverIO e2e tests against the real Electron app (electron-chromedriver included; headless CI needs xvfb) | | npm run test:unit | Run the Vitest unit tests | | npm run build:wasm:cpp | Rebuild the C++ wasm example (needs Emscripten) | | npm run build:wasm:rust | Rebuild the Rust wasm example (needs wasm-pack) |

A Note on OPFS Persistence

The SQLite database persists in OPFS (Origin Private File System) via sqlite-wasm's "opfs-sahpool" VFS. Unlike the classic OPFS VFS, this needs no cross-origin isolation headers — the generated app persists data out of the box on any static host, in the Electron renderer, and in any modern browser (Chrome, Edge, Firefox, Safari). If OPFS is ever unavailable, the app still works with a transient in-memory database, and users can export/import it as a file via the File System Access API.

Philosophy

Same as Pochade-JS: no framework lock-in, no Shadow DOM, no CSS-in-JS, no complex build chains. Write JavaScript, not framework code.

License

Unlicense (Public Domain)

Credits

Created by LNSY, modeled on pochade-js.

Write JS with passion! 🎨