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

@avodado/studio

v0.12.1

Published

Avodado Studio — the local, AI-native visual editor for documentation-as-code. Edit Markdown + typed YAML blocks for API docs, architecture & system design, ADRs, and frontend design systems with live preview, browse the built docs site, and present as sl

Readme

@avodado/studio

Avodado Studio — a full-screen local visual editor for Avodado docs (Markdown + typed YAML blocks). The files on disk stay the single source of truth: the studio reads and writes them through the CLI's JSON file bridge, and all parsing, validation, and rendering happens in the browser via @avodado/core and @avodado/render.

Usage

Run it from an Avodado project:

avo studio

The CLI serves the built app (from this package's dist/app/) together with the file-bridge API (/api/* + /__events SSE) and opens the browser.

Editing model

Authoring is keyboard-first, directly on the rendered doc:

  • Click selects — a block on the canvas, or a part inside a rendered block (a sequence message, a diagram node, a table cell).
  • Enter (or double-click) edits the selection: a block opens the edit sheet — a schema-generated form with smart per-field controls, plus a raw YAML tab — while a diagram part opens an in-place micro-editor for exactly that YAML value.
  • Arrow keys move the selected part — grid cells for diagram nodes, reorder for list items, cell navigation on table cells; ⌥+arrows nudge the hovered part, ⌫ deletes an item, Tab cycles parts, Esc pops back out.
  • Drag moves parts on the diagram itself — block-graph nodes snap to grid cells, order-based lists reorder with a live insertion indicator.
  • Insert via the + menu (a searchable gallery of every insertable block with live-rendered thumbnails) or the / slash command; ? shows the full shortcut list.

Edits are written back as surgical rewrites of individual fenced blocks, and outside changes to the same files (e.g. by an AI agent) repaint live over SSE.

Development

# terminal 1 — the file-bridge API on 127.0.0.1:4174 (avo studio --no-open, or a mock)
# terminal 2 — the app with hot reload; /api and /__events proxy to :4174
pnpm --filter @avodado/studio dev

pnpm --filter @avodado/studio build produces:

  • dist/app/ — the static app (Vite build), and
  • dist/index.js + dist/index.d.ts — a tiny Node entry exporting assetsPath() so the CLI can locate dist/app/.