# What Are the Dependencies for Archify? A Complete DevDependency Guide

> Discover Archify's dev dependencies: ajv, parse5, saxes, and simple-icons. Learn how these essential packages enable JSON validation, HTML parsing, and UI rendering for the Archify project. Get the complete guide.

- Repository: [tt-a1i/archify](https://github.com/tt-a1i/archify)
- Tags: deep-dive
- Published: 2026-09-12

---

**Archify ships with zero runtime dependencies and requires only four development packages—ajv, parse5, saxes, and simple-icons—to handle JSON validation, HTML parsing, and UI rendering.**

The **archify** repository (`tt-a1i/archify`) is a Node.js-based architecture visualization tool engineered to operate without external runtime bloat. While production builds rely exclusively on built-in Node.js APIs, the dependencies for Archify development are strictly confined to specialized devDependencies listed in [`archify/package.json`](https://github.com/tt-a1i/archify/blob/main/archify/package.json).

## Understanding Archify's Zero Runtime Dependencies

Unlike typical Node.js projects that pull in dozens of production packages, Archify implements its core functionality using only Node.js built-in modules. This design means the `dependencies` section in [`archify/package.json`](https://github.com/tt-a1i/archify/blob/main/archify/package.json) is intentionally empty. All external modules required for the project—validation, testing, and UI generation—are isolated to the `devDependencies` block at lines 30–35.

Because these are development-only dependencies, a production build of Archify can be bundled and deployed without pulling in any third-party code at runtime.

## Complete List of Dependencies for Archify

The [`archify/package.json`](https://github.com/tt-a1i/archify/blob/main/archify/package.json) file pins four specific packages to exact or caret-prefixed versions:

### ajv (^8.17.1)

**ajv** (Another JSON Schema Validator) validates the typed Intermediate Representation (IR) against JSON Schema definitions. This ensures architectural descriptions passed to the CLI conform to expected structures before processing.

### parse5 (7.3.0)

**parse5** is an HTML5 parsing and rendering library. Archify uses it to parse embedded HTML when generating the viewer UI, ensuring compliant DOM tree generation from architectural markup.

### saxes (6.0.0)

**saxes** is a fast, streaming XML parser used by the HTML renderer. It processes XML streams efficiently during the diagram generation pipeline, supporting the parse5 workflow with high-performance tokenization.

### simple-icons (16.28.0)

**simple-icons** provides the collection of SVG brand icons displayed in the generated UI. When Archify renders architecture diagrams, it pulls specific icon SVGs from this package to represent technologies (e.g., Redis, AWS, React).

## Installing the Development Dependencies

To work with Archify locally, you must install these devDependencies using a Node.js version manager. The repository requires **Node.js >= 18**.

```bash

# Clone the repository

git clone https://github.com/tt-a1i/archify.git
cd archify

# Install exact dependency versions from package-lock.json

npm ci

```

Running `npm ci` reads [`archify/package-lock.json`](https://github.com/tt-a1i/archify/blob/main/archify/package-lock.json) and installs the precise versions listed above, ensuring reproducible builds across development environments.

## How Dependencies Power the Archify CLI

When you invoke the Archify command-line interface, the installed devDependencies handle specific pipeline stages. The entry point at `archify/bin/archify.mjs` orchestrates:

```bash

# Run the CLI with a natural language prompt

node archify/bin/archify.mjs guide "Show a simple API-to-Redis flow"

```

During execution:
1. **ajv** validates the incoming JSON description against the schema defined in the project.
2. **parse5** parses any embedded HTML descriptions into a traversable DOM.
3. **saxes** handles XML parsing for SVG metadata processing.
4. **simple-icons** injects the appropriate technology SVGs into the final rendered output.

This dependency chain activates only during development or local CLI usage, not in shipped production artifacts.

## Key Files Managing Dependencies

| File | Role |
|------|------|
| [`archify/package.json`](https://github.com/tt-a1i/archify/blob/main/archify/package.json) | Defines the `devDependencies` block (lines 30–35) and Node engine requirement (>= 18). |
| [`archify/package-lock.json`](https://github.com/tt-a1i/archify/blob/main/archify/package-lock.json) | Locks transitive dependency trees to exact versions for reproducible installs. |
| `archify/bin/archify.mjs` | CLI entry point that imports and utilizes ajv, parse5, and simple-icons at runtime during development. |
| [`archify/SKILL.md`](https://github.com/tt-a1i/archify/blob/main/archify/SKILL.md) | Documents the skill contract for AI agents invoking Archify, referencing the dependency structure. |

## Summary

- **Zero runtime dependencies:** Archify relies solely on Node.js built-in APIs for production execution.
- **Four devDependencies:** The complete dependencies for Archify are **ajv** (^8.17.1), **parse5** (7.3.0), **saxes** (6.0.0), and **simple-icons** (16.28.0).
- **Node.js >= 18 required:** The development environment requires modern Node.js to install and run these packages.
- **Isolated installation:** Use `npm ci` in the `archify/` directory to install only the development tooling needed for validation and rendering.

## Frequently Asked Questions

### Does Archify have any runtime dependencies?

No. According to the source code in `tt-a1i/archify`, the [`archify/package.json`](https://github.com/tt-a1i/archify/blob/main/archify/package.json) contains no `dependencies` section. Archify uses only Node.js built-in modules for runtime operations, making production deployments lightweight and secure.

### What Node.js version is required to install Archify dependencies?

Node.js version 18 or higher is required. The `engines` field in [`archify/package.json`](https://github.com/tt-a1i/archify/blob/main/archify/package.json) specifies this minimum version to ensure compatibility with the modern JavaScript features used by the devDependencies.

### Why are all Archify dependencies listed as devDependencies?

This architectural choice keeps production builds minimal and free of third-party licensing constraints. By restricting ajv, parse5, saxes, and simple-icons to development-only tasks (validation, testing, and local CLI rendering), Archify ensures that bundled applications contain zero external runtime packages.

### Where can I find the exact version numbers for Archify dependencies?

The exact versions are declared in [`archify/package.json`](https://github.com/tt-a1i/archify/blob/main/archify/package.json) at lines 30–35 within the `devDependencies` object. For locked transitive dependencies, consult [`archify/package-lock.json`](https://github.com/tt-a1i/archify/blob/main/archify/package-lock.json), which pins every package to a specific cryptographic hash for reproducible builds.