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

@pixelfehler310/sdde

v1.0.0

Published

Spec-Driven JSON Documentation Engine (SDDE) - a lightweight, portable spec documentation system for AI pair-programming and humans.

Downloads

83

Readme

Spec-Driven JSON Documentation Engine (SDDE)

An ultra-compact, portable, and AI-optimized documentation ecosystem.

SDDE enforces a strict separation of raw documentation data (stored as flat JSON files) and the rendering UI (a zero-dependency Read-Only SPA Viewer). This design completely eliminates structural breakage when documentation is compiled or updated by AIs, minimizes Context Load for Large Language Models, and integrates seamlessly with Git-based workflows.


🚀 Key Features

  • Zero-Dependency CLI: Written entirely using native Node.js APIs (http, fs, path). Starts instantly in < 5ms with zero NPM dependency bloating.
  • Folder-as-a-Tree AST: Naturally reflects the project folder structure. Handles folders as nested sections and hides prepended index numbers used for sorting (e.g. 01-architecture displays visually as Architecture).
  • Modern Dark Glassmorphism SPA: Rendered using high-fidelity Vanilla CSS, custom animations, custom scrollbars, and premium typography (Inter/Outfit).
  • Interactive Diagrams: Generates diagrams directly from text schemas via Mermaid.js, and injects svg-pan-zoom for seamless mouse drags, wheel zoom scrolling, and viewport resets.
  • Path Traversal Protection: Employs strict URL routing resolution ensuring static and API loads never escape the designated /docs root.

📂 System Directory Structure

sdde/
├── package.json               # Package definitions and binary registry
├── README.md                  # Detailed system instructions and schemas
├── bin/
│   └── cli.js                 # Local server and folder-as-a-tree compiler
├── frontend/
│   ├── index.html             # The Glassmorphic SPA shell
│   └── app.js                 # SPA engine (JSON parser, Mermaid, svg-pan-zoom hook)
└── docs/                      # Target documentation folder
    ├── spec.config.json       # Global project metadata
    ├── index.json             # Welcome/Intro page spec
    └── 01-architecture/
        ├── database-benchmarks.json  # Data metrics spec page
        └── vtt-engine.json           # Interactive Mermaid pipeline spec

🛠️ Installation & Usage

You can use SDDE either from this repository during development or as a lightweight dev dependency in another workspace.

1. Install from GitHub Packages

Add the GitHub Packages registry for the scope and install SDDE as a dev dependency:

npm config set @pixelfehler310:registry https://npm.pkg.github.com
npm install -D @pixelfehler310/sdde

1.1 Initialize a Consumer Workspace

From the root of the consuming repository, scaffold the minimum SDDE setup:

npx sdde init

This creates docs/ if needed, writes starter specs, copies the SDDE skill into .github/skills/sdde-spec-writer/, and adds docs:dev and docs:validate scripts to the local package.json when present.

2. Run the Local Server

From the root of the consuming repository, spin up the server:

npx sdde dev

Alternatively, specify a custom port or target directory:

npx sdde dev --port 8080 C:\path\to\custom\docs

2.1 Validate Documentation Specs

Before concluding documentation changes, validate the full docs tree:

npx sdde validate

If you used sdde init, the generated package scripts are also available:

npm run docs:dev
npm run docs:validate

2.2 Update the Copied Skill

When the package version changes, sync the packaged skill into the current repository:

npx sdde sync-skill

Add --force to overwrite existing skill files.

3. View in Browser

Open the following link to view your interactive spec dashboard:


📋 JSON Schema Standards

To ensure successful visual hydration, all JSON specs must comply with flat, easy-to-generate schemas.

1. Global Config (spec.config.json)

Placed at the root of the /docs directory to govern overall metadata.

{
  "projectName": "SDDE Spec Engine",
  "version": "1.2.0",
  "theme": "dark" // "dark" | "light" | "system"
}

2. Content Pages (page.json)

Every documentation page is a simple JSON file containing title, description, optional order (for navigation sorting), and an array of content blocks.

{
  "title": "Welcome Screen",
  "description": "Short explanation of the spec content.",
  "order": 1,
  "content": [
    {
      "type": "heading",
      "level": 1,
      "text": "Welcome Header"
    },
    {
      "type": "paragraph",
      "text": "Supports **bold** formats and `inline code` elements."
    },
    {
      "type": "bullet-list",
      "items": [
        "First item here with **bolding**.",
        "Second item with `code snippet` formatting."
      ]
    },
    {
      "type": "table",
      "headers": ["Resource", "Status", "Response Time"],
      "rows": [
        ["/api/tree", "Active", "0.08 ms"],
        ["/api/page", "Active", "0.14 ms"]
      ]
    },
    {
      "type": "diagram",
      "format": "mermaid",
      "code": "graph LR\n    A[JSON Spec] --> B[CLI Engine]\n    B --> C[SPA Viewer]"
    }
  ]
}

🤖 Guidelines for AI Co-Authors

AIs and LLMs can edit files safely without breaking the user experience:

  1. Never write raw HTML or script tags inside JSON files.
  2. Stick strictly to the content block array schema (heading, paragraph, bullet-list, table, diagram).
  3. Maintain small, specialized files (keep them under 5KB). This keeps context windows extremely compact, resulting in fast compilation and lower tokens consumption.