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

@c1ach0/nppt

v1.0.1

Published

Nuxt Presentation Tools: turn regular Nuxt pages into synchronized viewer and presenter experiences.

Readme

NPPT

NPPT is a Nuxt module that adds a presentation layer to existing pages.

The idea is simple:

  • keep your normal site visually intact
  • add a viewer mode for the audience
  • add a presenter mode with notes, preview and controls

Documentation and live demo: https://nppt.maxence-bessi.com

What NPPT does

NPPT lets you reuse real Nuxt pages as presentation slides.

Instead of building a separate deck, you annotate parts of your site and NPPT helps you:

  • focus one section at a time
  • hide dense content during the presentation
  • show simplified content only during the presentation
  • sync navigation between viewer and presenter windows
  • keep a presenter dashboard with notes, timer and preview

Outside presentation mode, your site should remain a normal site.

Features

  • v-nppt directive for step targeting and presenter metadata
  • NpptHideOnPresentation to hide content during presentation mode
  • NpptShowOnPresentation to show content only during presentation mode
  • NpptProgress for a simple viewer progress indicator
  • synchronized viewer and presenter routes
  • built-in presenter panel

Installation

npx nuxi module add nppt

Or install it manually:

npm install nppt

Then enable the module in your Nuxt config:

export default defineNuxtConfig({
  modules: ['nppt'],
})

Basic usage

1. Mark a step

<section
  v-nppt="{
    step: 1,
    title: 'Introduction',
    note: 'Explain the main goal of the page.',
    keywords: [
      { label: 'Intro', tone: 'info', size: 'xl' },
      { label: 'Context', tone: 'neutral', size: 'md' },
    ],
  }"
>
  <h1>Welcome</h1>
</section>

2. Hide content during the presentation

<NpptHideOnPresentation>
  <p>
    This long paragraph stays visible on the normal site,
    but disappears in presentation mode.
  </p>
</NpptHideOnPresentation>

3. Show simplified content only during the presentation

<NpptShowOnPresentation on="viewer">
  <p>This shorter version is shown only to the audience.</p>
</NpptShowOnPresentation>

4. Add the presenter panel

Put it once in your app layout or app.vue:

<template>
  <NuxtPage />
  <NpptPresenter />
</template>

5. Add the launcher

<template>
  <NuxtPage />
  <NpptPresenter />
  <NpptLauncher />
</template>

The launcher opens the viewer window and switches the current tab to presenter mode.

Available components

NpptHideOnPresentation

Hide content only when presentation mode is active.

Props:

  • on?: 'viewer' | 'presenter' | 'any'

Default:

  • on="any"

NpptShowOnPresentation

Show content only when presentation mode is active.

Props:

  • on?: 'viewer' | 'presenter' | 'any'

Default:

  • on="any"

NpptProgress

Simple progress bar for the presentation view, especially useful in viewer mode.

Props:

  • on?: 'viewer' | 'presenter' | 'any'
  • fixed?: boolean
  • top?: string
  • right?: string
  • bottom?: string
  • left?: string
  • showLabel?: boolean

Default:

  • on="viewer"

NpptPresenter

Built-in presenter dashboard with:

  • active title
  • speaker note
  • keywords
  • current path
  • timer
  • viewer preview
  • step and page navigation

NpptLauncher

Small floating launcher to start presentation mode quickly.

Directive API

v-nppt accepts:

  • step?: number
  • title?: string
  • note?: string
  • next?: string
  • hideOn?: 'presenter' | 'viewer'
  • keywords?: string | Array<{ label: string; tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger'; size?: 'sm' | 'md' | 'lg' | 'xl' }>

Example:

<section
  v-nppt="{
    step: 2,
    title: 'Feature summary',
    note: 'Summarize the important points.',
    next: '/about',
    keywords: 'Summary|info|xl,Sync|success|lg'
  }"
>
  ...
</section>

Presentation modes

NPPT uses a query parameter:

  • ?role=viewer
  • ?role=presenter

Without one of these modes, presentation-only content should not appear.

That is an important project rule:

  • normal site mode should stay visually unchanged
  • presentation-specific UI should appear only in presentation mode

Playground

The repository includes a small showcase site in playground/ with 5 example pages:

  • Index
  • Article
  • Blog
  • About
  • Contact

It demonstrates:

  • normal-site rendering
  • simplified viewer rendering
  • content hiding and showing
  • multi-page presentation flow

Local development

npm install
npm run dev:prepare
npm run dev

Useful commands:

npm run dev:build
npm run lint
npm run test
npm run test:types

AI usage

This project was built with AI-assisted development.

That includes:

  • implementation exploration
  • API iteration
  • playground examples
  • documentation drafting and cleanup

The product direction, feature choices and final validation remain human decisions.

License

MIT