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

presentator

v1.7.1

Published

Zero-dependency Swiss/editorial HTML presentation generator. 12 layouts, 8 animations, canvas waves, cursor FX, KaTeX, Mermaid. JSON or Markdown input, single index.html output.

Readme

Presentator (Swiss Deck Gen)

Generated by AI because the author was too lazy to write a presentation framework by hand. Every line has been reviewed by a human with functioning eyeballs (yes I really did) and a healthy distrust of machines. Zero dependencies. Zero supply chain risk. Zero npm install. Zero excuses.

A self-contained HTML presentation framework with Swiss editorial design. You write JSON or Markdown. build.js spits out a single index.html. Open it. Present. Look smart.

Zero dependencies. Actually zero.

There is no "dependencies" field in package.json. Not even devDependencies. The build uses only Node.js built-ins (fs, path). The browser runtime uses only the Web Animations API (native in every modern browser).

KaTeX and Mermaid are loaded from CDN at runtime but only when your deck actually uses math or diagrams. No math? No KaTeX. No diagrams? No Mermaid. You can host those JS files yourself if you want complete air-gap.

If you're worried about supply chain attacks on a presentation framework, breathe easy. There is no supply chain. It's just JavaScript files you can read in an afternoon.

Quick start

# JSON input (full control, all fields)
node build.js deck.example.json dist/index.html
open dist/index.html

# Markdown input (human friendly, YAML frontmatter)
node build.js deck.example.md dist/index.html
open dist/index.html

What you get

  • 12 layouts: title, split, metric-grid, eda-grid, card-row, quote, code, image-full, columns, agenda, timeline, video
  • 8 animation recipes: hero, grid-reveal, split-statement, fade-in, slide-up, scale-in, stagger, none
  • Canvas wave background: per-slide sine waves and particle networks. Add "background": "both" to any slide. Configurable per slide.
  • Cursor effects: custom dot + ring pointer, glow, trail, click ripple. All optional.
  • KaTeX math: inline $E=mc^2$ and display blocks. CDN only when used.
  • Mermaid diagrams: graph TD in slides. CDN only when used.
  • Pop-out presenter window: notes, timer, keyboard shortcuts.
  • Fullscreen present mode: CSS-driven, works even when API is blocked.
  • Click-to-reveal build steps: data-step elements reveal one at a time.
  • Slide transitions: slide, fade, or none. Configurable.
  • Hash routing: #1, #2 in the URL jumps to that slide.
  • Auto-advance timer: set "autoAdvance": 5000 and slides advance automatically. Pauses on mouse/keyboard interaction.
  • Progress bar + slide counter: always visible position tracking.
  • Grid overview: Esc to see all slides.
  • 8 theme presets: light, dark, accent, slate, warm, cool, mono, nature. Plus a runtime dark/light toggle button.
  • Configurable fonts: "fontSans" and "fontMono" (default: Inter + Space Mono).
  • Configurable keyboard shortcuts: remap every key binding.
  • Print/PDF export: @media print styles make Ctrl+P produce clean slides.
  • Video embeds: { "type": "video", "value": "https://..." } blocks.
  • External notes file: "notesFile": "notes.json" loads speaker notes from a separate file.
  • Touch swipe: for tablets.
  • Low-power mode: B key kills animations and canvas.

Configuration

{
  "title": "My Deck",
  "accentColor": "#002FA7",
  "cursor": "both",
  "transition": "slide",
  "slides": [
    {
      "layout": "title",
      "theme": "accent",
      "background": "both",
      "titleMain": "Hello"
    }
  ]
}

Files

build.js              # CLI builder
skill-install.js      # Install agent skill to ~/.agents/skills/
schema.json           # JSON Schema draft-07
SPEC.md               # Exhaustive reference
deck.example.json     # 12-slide JSON demo
deck.example.md       # 7-slide Markdown demo
package.json          # Zero deps, MIT license
.agents/skills/       # Agent skill definition
src/
  layouts.js          # 11 layout renderers
  theme.css           # Styles, themes, canvas, print
  deck-runtime.js     # Nav, animations, canvas, cursor, transitions
  animate.js          # Standalone animation micro-library (WAAPI)
  md-parser.js        # Markdown + YAML frontmatter parser
test_check.js         # Puppeteer test suite (optional)

Install the agent skill

node skill-install.js

Copies to ~/.agents/skills/swiss-deck-gen/. Your agent discovers it automatically.

Who made this

An AI wrote the code (used my own Saddle model (coming soon) and deepseek v4 as a preliminary reviewer). The human (devsimsek) reviewed every line. If something breaks, blame the machine. If something is brilliant, credit the prompt.

License

MIT. Present to whoever you want. The framework doesn't care if your slides are good. That's on you.