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

@sonmezerekrem/echox

v1.11.6

Published

Static documentation site builder powered by Astro

Downloads

67

Readme


Echox turns a folder of Markdown files into a polished documentation site. Add a config.json, run echox dev, and you get tabs, sidebar navigation, search, optional OpenAPI docs, and file-based task boards—without touching the framework source. Perfect for product docs, API references, and internal wikis.

Features

| | | |---|---| | Folder-based routing | Your tab/group/page.md structure becomes the site. No routing config. | | Static by default | HTML + CSS. No runtime JS unless you add it. | | OpenAPI | Drop .json specs into apis/; each file becomes a tab with generated endpoint docs. | | Tasks | Add tasks.yml per tab for Todo / In progress / Done views. | | Search | Pagefind index built at build time. Cmd+K / Ctrl+K in the UI. | | Theming | One color in config; 22 Tailwind palettes. Dark mode with system detection. | | Callouts, cards, accordions | GitHub-style alerts and custom directives in Markdown. | | Syntax highlighting | Shiki, copy button, line highlight, diff view, Mermaid diagrams. |

Quick start

1. Scaffold a new project

npx echox init
# or: echox init --name "My Docs"

This creates guides/, assets/, config.json, a sample OpenAPI spec in apis/, and a tasks.yml example.

2. Run the dev server

echox dev

3. Build for production

echox build

Output goes to dist/. Use echox preview to serve it locally.

Install

From npm (npmjs.com)

npm install -g @sonmezerekrem/echox

After install, run echox from any directory that has a docs project (see Project structure).

From GitHub (clone and link)

git clone https://github.com/sonmezerekrem/echox.git
cd echox
npm install
npm link

From GitHub Packages (scoped): set @sonmezerekrem:registry=https://npm.pkg.github.com in ~/.npmrc and npm login --registry=https://npm.pkg.github.com with a token that has read:packages. Then npm install -g @sonmezerekrem/echox.

Project structure

Your docs repo stays minimal:

my-docs/
├── guides/               # Tab folder (Markdown)
│   └── getting_started/
│       └── introduction.md
├── apis/                 # Optional OpenAPI 3.x JSON (one file = one tab)
│   └── sample_api.json
├── assets/               # Images, favicon, logo (served at /)
└── config.json          # Site name, theme color, logo, links, footer
  • Tabs = top-level folders (e.g. guides, features).
  • Groups = subfolders (e.g. getting_started).
  • Pages = .md files. Use frontmatter for title, order, icon, status badge.

Add _meta.json in any tab or group folder to set display name and sort order. Add tasks.yml in a tab folder to get Todo / In progress / Done pages for that tab.

Configuration

Minimal config.json:

{
  "name": "My Docs",
  "color": "blue"
}

Optional: description, logo, favicon, github, links, footer. Valid color values: any Tailwind-style name (e.g. slate, emerald, violet, rose). Use echox logo <color> to generate a logo and favicon from your project name.

CLI commands

| Command | Description | |--------|--------------| | echox init | Scaffold guides/, config.json, apis/, assets/, and sample tasks | | echox dev | Start dev server with hot reload | | echox build | Build static site to dist/ (runs link check + Pagefind) | | echox build --no-link-check | Build without broken-link check | | echox preview | Serve the built dist/ locally | | echox logo <color> | Generate logo.svg and favicon.svg in assets/ and set paths in config |

Documentation

  • Full docs — The docs/ folder in this repo is a complete Echox site; use it as reference.
  • npm package — Install from npm.

Contributing

Contributions are welcome. Open an issue or a pull request. If you change behavior or add options, consider updating the docs/ content so it stays in sync.

License

GNU GPL v3. You may use, modify, and distribute this software under the terms of the GNU General Public License version 3. If you distribute it, you must provide the source and preserve the same license. See LICENSE for the full text.