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

@namahapdf/pptx

v0.2.1

Published

Headless in-browser PowerPoint engine — parse, render, edit (.pptx write-back), export to PDF, and project to an AI-readable model. Part of the NamahaPDF SDK.

Readme

@namahapdf/pptx - In-Browser PowerPoint (.pptx) Engine for JavaScript

npm version npm downloads On-device License

@namahapdf/pptx is a headless PowerPoint engine that runs entirely in the browser - parse a .pptx, render slides to canvas, edit with faithful write-back, export to PDF, and project a deck into an AI-readable model. It's an in-house OOXML implementation (no LibreOffice, no cloud conversion service), built for the rare capability most PDF/Office SDKs skip: editing a PowerPoint deck client-side and saving a byte-faithful .pptx back, with no repair dialog on open.

Live demo · Full docs · Get a license

npm i @namahapdf/pptx
import {
  PptxEditSession,
  renderSlide,
  applyPptxPlan,
  configureLicense,
} from '@namahapdf/pptx';

// Apply your license key (without one, exports are watermarked + features limited).
configureLicense({ licenseKey: 'YOUR_KEY' });

// Load a deck into an editing session, edit by intents, save a faithful .pptx.
const session = await PptxEditSession.load('deck.pptx', bytes);
await session.apply([
  { op: 'replace-text', anchor: { fmt: 'pptx', slidePart: 'ppt/slides/slide1.xml', shapeId: '2' }, newText: 'Q3 Review' },
]);
const editedBytes = session.bytes;              // still a valid .pptx

Features

  • Parser - .pptx → a resolved slide model (theme/master/layout composed), fully client-side
  • Renderer - high-DPI slide raster + positioned, selectable text segments
  • Faithful write-back - edits apply as surgical XML splices on the original package, so everything an edit doesn't touch is preserved byte-for-byte
  • PDF export - hybrid raster + real selectable text, no LibreOffice
  • AI-ready - a small, JSON-serializable EditPlan vocabulary (replace-text, move-shape, add-slide, replace-image, …); validate with validateEditPlan and the same plan an LLM emits is the plan the UI emits
  • TypeScript-first, ESM + CJS builds

Why teams pick @namahapdf/pptx

Client-side PowerPoint editing is rare. Most document SDKs that support Office formats lean on server components or offer view-only rendering. @namahapdf/pptx edits and re-saves a real .pptx entirely in the browser.

Round-trip fidelity by construction. The parsed slide model is a render view, not the source of truth - the writer always re-opens the original zip/XML and splices only what an EditPlan intent changed, so untouched slides, masters, and layouts are byte-identical to the source file.

On-device by architecture. Parsing, rendering, and editing all run client-side - no upload step, no cloud dependency for the common path.

One intent vocabulary for humans and AI. The UI and an LLM agent emit the exact same EditPlan JSON against the exact same apply path - there's no separate, riskier "AI editing" code path to maintain or trust.

API surface

  • PptxParser - .pptx → a resolved slide model
  • renderSlide - a slide → a high-DPI background raster + positioned text segments
  • applyPptxPlan / PptxEditSession - write-back (intent-sourced, undo/redo)
  • toStructure - a semantic projection for Markdown / RAG / AI
  • pptxToPdf - export a deck to PDF

The full API reference and edit-intent contract live in the PowerPoint SDK docs.

Licensing

Free to install and use - trial mode renders a watermark and gates premium features. A per-domain license key removes the watermark and unlocks the full feature set. Get one at pdf.namahatech.com/sdk; pricing at pdf.namahatech.com/pricing. A ready-made React slide editor (@namahapdf/react) is planned.

Related packages

| Package | What it is | |---|---| | @namahapdf/pptx | This package - the headless PowerPoint engine | | @namahapdf/core | Headless PDF engine | | @namahapdf/sheets | Headless Excel (.xlsx) engine | | @namahapdf/react | React <NamahaEditor> (PDF today) |

FAQ

Does this upload .pptx files to a server? No. Parsing, rendering, and editing all run in the browser. Nothing is uploaded for the common path.

Will edited decks open in PowerPoint without a repair-dialog warning? Yes - that's the core design constraint. Write-back is byte-preserving on anything an EditPlan doesn't explicitly touch; npm run audit:pptx in the source repo is the fidelity regression gate.

Can an LLM agent edit a deck with this? Yes - EditPlan is a small, Zod-validated JSON schema (validateEditPlan/editPlanJsonSchema) designed to be handed to an LLM as a tool definition; the agent emits the same intents the UI does.

Is there a free tier? Yes. It's free to install and use in trial mode (watermarked, feature-limited). See pdf.namahatech.com/pricing for licensed tiers.


License: proprietary (see LICENSE). A license key from pdf.namahatech.com/sdk removes the trial watermark for production use. Questions or enterprise inquiries: same link.