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

carousel-pdf-cli

v1.0.1

Published

Deterministic text-to-carousel PDF generator for LinkedIn and X. Converts markdown and articles into high-resolution multi-page slide decks. Zero browser overhead.

Readme

carousel-pdf-cli

Deterministic text-to-carousel PDF generator for LinkedIn and X. Converts markdown, notes, and articles into high-resolution multi-page slide decks. Zero browser overhead.

License: MIT Node.js: >=18.0.0 Engine: Resvg Rust + PDFKit Powered by PostReady

carousel-pdf-cli transforms plain markdown, notes, or blog summaries into publication-ready, multi-page PDF documents formatted specifically for LinkedIn document carousels.

It features a 100% deterministic, script-based rendering pipeline with zero headless browser requirements, compiling vector SVG layouts into high-DPI PDFs in milliseconds.

Part of the PostReady.org open-source content repurposing toolkit.


Highlights

  • Standard LinkedIn 4:5 Aspect Ratio: Optimized for the 1080x1350 vertical portrait dimension that dominates mobile feeds (also supports 1080x1080 square).
  • Zero Browser Overhead: Renders complete 5–10 page carousel decks in under 2 seconds using native Rust @resvg/resvg-js and PDFKit.
  • Intelligent Deck Auto-Splitter: Accepts raw unformatted articles and automatically produces cohesive Cover, Content, and Outro slides.
  • Developer Palettes: Four minimalist themes (dark, light, terminal, gold) designed to match high-authority technical personal brands.
  • Web App Ready: Shared pure SVG rendering architecture allows instant client-side preview in React/Next.js before triggering server-side PDF export.

Quick Start (CLI)

Generate a carousel PDF directly with npx:

# Compile a markdown file into a dark-themed carousel PDF
npx carousel-pdf-cli article.md -t dark -o linkedin-carousel.pdf

# Target square ratio (1080x1080) with terminal theme
npx carousel-pdf-cli notes.txt --ratio square -t terminal

# Pipe text directly from terminal and export individual PNG slides too
cat blog.md | npx carousel-pdf-cli -t gold --images ./slides

Install globally:

npm install -g carousel-pdf-cli

Input Formats

1. Structured Markdown (Recommended)

Separate slides with --- on its own line. Headings (#) automatically become slide titles, while bullet points (-) render as structured cards:

# How We Built an AI Content Studio
Lessons learned from shipping 4 developer tools in 24 hours.
---
# 1. Deterministic Over Non-Deterministic
- Core rendering should run on deterministic scripts.
- Eliminates recurring API fees and model hallucinations.
- Guarantees 10ms execution times.
---
# 2. Strict Input Validation
- Validate all subprocess and shell arguments.
- Never trust client parameters directly.
- Defense in depth at the boundary.
---
# Actionable Summary
Explore PostReady at postready.org today.

2. Raw Plain Text

Paste an unformatted blog post or notes document. The built-in parser will automatically extract the title, group body paragraphs into clean sequential slides, and generate an outro call-to-action slide.


Programmatic API

Install locally:

npm install carousel-pdf-cli

Usage in Node.js / TypeScript:

import {
  splitTextToDeck,
  generateCarouselPdf,
  renderSlideSvg
} from 'carousel-pdf-cli';

// 1. Parse text into structured slide data
const slides = splitTextToDeck(rawArticleText, {
  brand: 'POSTREADY.ORG',
  author: 'eco-null',
  url: 'postready.org'
});

// 2. Generate multi-page PDF document
await generateCarouselPdf(slides, './output/carousel.pdf', {
  theme: 'dark',
  ratio: 'portrait'
});

// 3. Render raw SVG for real-time browser preview
const svgPreview = renderSlideSvg(slides[0], 1, slides.length, {
  theme: 'dark'
});

Web Integration Guide

Looking to integrate this tool into your SaaS or Next.js website? Read the comprehensive step-by-step documentation in INTEGRATION_GUIDE.md for React components, serverless API routes, and connecting to AI credit engines.


About PostReady

This tool was created by PostReady.org — the AI content repurposing studio that turns blog articles, podcasts, and notes into publish-ready X threads, LinkedIn posts, and newsletter drafts.

Explore other tools in the suite:


License

MIT © eco-null