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

@caperjs/core

v0.6.1

Published

An opinionated HTML game framework built on PixiJS v8

Downloads

2,920

Readme

@caperjs/core

An opinionated HTML game framework built on PixiJS v8.

@caperjs/core is the framework package of Caper, a personal fork of dill-pixel by Relish Studios that narrows scope, modernizes the dependency stack, and ships fewer half-finished things.

It sits on top of PixiJS — a renderer, not a game engine — and adds the parts you'd otherwise rebuild for every project: scenes, plugins, asset pipeline, build config, type-safe IDs, signals, and a project layout that scales from a 48-hour jam to something you ship.

Status

Published on npm as @caperjs/core.

For AI agents

  • npx caper agent init installs the caper skill + AGENTS.md pointers for this project.
  • The reference is node_modules/@caperjs/core/extras/llms.txt — read it by section (grep -n '^## '), not whole.
  • Engine source ships in the package under src/.

Highlights

  • Pixi v8 native, pinned to the latest 8.x
  • Auto-discovered scenes / plugins / popups / entities via the bundled Vite plugin — drop a file in the right directory, the build picks it up
  • Type-safe IDs for scenes, plugins, popups, entities, locale keys (string-literal unions on every API that takes one)
  • Per-bundle asset types generated from your AssetPack manifest
  • Plugin requires: [...] declarations + topological sort at bootstrap
  • Build-time validation for asset bundles, plugin IDs, dependency cycles, duplicate IDs
  • A Vite preset (@caperjs/core/vite) — plugins: [caper()], then plain vite / vite build
  • caper add CLI for scaffolding scenes, plugins, entities, popups
  • Signals via typed-signals
  • Tested — Vitest covers Plugin, Store, Scene, SignalRegistry

Minimal example

// src/scenes/MenuScene.ts
import { defineScene, Scene } from '@caperjs/core';

export const scene = defineScene({
  id: 'menu',
  assets: { preload: { bundles: ['ui'] } },
});

export default class MenuScene extends Scene {
  initialize() {
    this.add.text({
      text: 'Caper',
      anchor: 0.5,
      style: { fontFamily: 'system-ui', fontSize: 64, fill: 0xffffff },
    });
  }
}

The Vite plugin discovers this file on next reload. The id 'menu' flows into the generated AppScenes union, so app.scenes.load('menu') is fully typed.

Documentation

There's no docs site yet — the upstream apps/docs/ was deleted in Phase 6 because it almost entirely described pre-fork state. A new docs surface will land when there's enough audience to justify it. Until then, the plan/ directory + JSDoc on Scene and IPlugin are the documentation:

  • plan/fork-plan.md — long-form architectural rationale
  • plan/tasks.md — execution log of what's shipped and why
  • CLAUDE.md — repo conventions and common commands

The kitchen-sink (apps/kitchen-sink/) is the canonical reference implementation — every plugin, every UI primitive, scenes, popups, entities, signals, storage all exercised end-to-end.

License

MIT. Original dill-pixel framework architecture credit to Relish Studios.