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

zyvop

v1.0.7

Published

Official CLI for ZyVOP - Write once in Markdown and cross-post to Dev.to, Hashnode, Medium & Bluesky.

Readme

ZyVOP CLI

Command-line client for publishing Markdown articles to ZyVOP and cross-posting to Dev.to, Hashnode, Medium, and Bluesky.


Installation

Run directly with npx:

npx zyvop --help

Or install globally via npm:

npm install -g zyvop

Quick Start

1. Authenticate

zyvop login

You can pass credentials interactively, or supply an API token via flag / environment variable:

zyvop login --token <your_token>
# or set ZYVOP_TOKEN in your environment

Verify your session:

zyvop whoami

2. Publish a Markdown Article

Create a Markdown file with YAML frontmatter:

---
title: Building Scalable Microservices with Go
subtitle: A practical deep-dive into distributed architecture
tags: [golang, backend, microservices, docker]
canonical_url: https://myblog.com/go-microservices
category: backend
generate_toc: true
cross_post:
  devto: true
  hashnode: true
  medium: true
  bluesky: true
---

# 1. Introduction

Your article content here with code snippets, tables, and diagrams...

Publish and syndicate:

zyvop publish ./my-article.md

ZyVOP will:

  1. Parse the frontmatter and render Markdown into semantic HTML.
  2. Publish the post to ZyVOP.
  3. Queue background workers to syndicate the article to Dev.to, Hashnode, Medium, and Bluesky.
  4. Set canonical URL headers on all targets to preserve SEO ownership.

Command Reference

zyvop publish <file>

Publishes a Markdown file to ZyVOP and connected syndication targets.

| Flag | Description | |---|---| | --title <string> | Override article title | | --subtitle <string> | Subtitle or description | | --tags <list> | Comma-separated tags (e.g. react,nextjs,typescript) | | --category <slug> | Category slug (e.g. frontend, backend, devops) | | --canonical <url> | Custom canonical URL for SEO | | --cover <url> | Header cover image URL | | --draft | Save as draft instead of publishing live | | --toc | Generate and render a floating Table of Contents | | --devto / --no-devto | Explicitly enable / disable Dev.to cross-posting | | --hashnode / --no-hashnode | Explicitly enable / disable Hashnode cross-posting | | --medium / --no-medium | Explicitly enable / disable Medium cross-posting | | --bluesky / --no-bluesky | Explicitly enable / disable Bluesky link broadcast | | --wordpress | Enable WordPress cross-posting | | -t, --token <token> | ZyVOP API token (overrides stored token) | | --endpoint <url> | Custom GraphQL endpoint URL |


zyvop import <source> <identifier>

Imports past articles from existing blogging platforms into your ZyVOP dashboard:

# Import from Dev.to
zyvop import devto myusername

# Import from Hashnode
zyvop import hashnode myblog.hashnode.dev

zyvop whoami

Prints the current authenticated user profile, email, and connected endpoint.


zyvop logout

Clears the local credentials stored in ~/.zyvop/config.json.


Continuous Deployment (GitHub Actions)

To automatically publish whenever you push Markdown files to your repository:

# .github/workflows/publish.yml
name: Publish to ZyVOP

on:
  push:
    branches: [main]
    paths:
      - 'posts/**.md'

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Publish posts via ZyVOP CLI
        env:
          ZYVOP_TOKEN: ${{ secrets.ZYVOP_TOKEN }}
        run: |
          for file in posts/*.md; do
            npx zyvop publish "$file"
          done

License

MIT © ZyVOP