Marketing site for n-dx — the spec-driven development toolkit that connects codebase analysis, structured planning, and autonomous task execution into one repeatable loop.
Live site: n-dx.dev
n-dx is a source-available (Elastic License 2.0) CLI toolkit for spec-driven development. It closes the loop between understanding a codebase and shipping work against a structured plan.
Three packages, three commands:
| Package | Command | Purpose |
|---|---|---|
| sourcevision | ndx analyze . |
Static analysis — file inventory, import graph, architectural zones, component catalog |
| rex | ndx recommend . |
PRD management — generates epics, features, tasks, and dependencies from codebase context |
| hench | ndx work . |
Autonomous execution — picks the next task, builds a brief, drives Claude in a tool-use loop |
The PRD is the source of truth. Every cycle begins with understanding what's in the code and ends with shipped work.
Get started:
npm i -g @n-dx/core
ndx init .
ndx analyze .
ndx recommend --accept .
ndx work --auto .This repository contains the static marketing site for n-dx, hosted on GitHub Pages at n-dx.dev.
index.html— Landing page (served at the root URL)changelog/index.html— Release history for@n-dx/core(n-dx.dev/changelog) — generated, see belowvs/spec-kit/index.html— n-dx vs Spec Kit, OpenSpec, and Kiro (served at/vs/spec-kit/)mwfb2026/index.html- Make Work Feel Better Challenge 2026 landing page (unlinked from the site nav; still live at its URL)make-work-feel-better-hackathon-2026/index.html- Alias route that redirects to/mwfb2026/hackathon/index.html- Short alias route that redirects to/mwfb2026/make-work-feel-better/index.html- Campaign alias route that redirects to/mwfb2026/
The changelog is generated, not written here. scripts/sync-changelog.mjs merges the
npm registry (which versions shipped, and when) with the changeset-authored notes in
the core repo's packages/core/CHANGELOG.md, then rewrites changelog/index.html and
the two <!-- SYNC:… --> regions in index.html.
node scripts/sync-changelog.mjs # Node 20+, no dependencies.github/workflows/sync-changelog.yml runs it daily and on demand, committing only
when the output changes. To make the site update within seconds of a publish instead
of within a day, add a repository_dispatch step to the core repo's release job — the
workflow file documents the exact snippet.
Don't hand-edit changelog/index.html or anything between the SYNC markers; the
next run overwrites it. Change the templates in the script instead.
- Static HTML — no build step, no npm dependencies
assets/css/site.css— shared design system (every page);assets/css/home.css— landing page (also used by/vs/spec-kit/)assets/js/sprites.js+pixel.js— the 8-bit sprite sheet and canvas renderer (Rex, package icons, logo mark, pixel font)assets/js/site.js— shared motion: boot sequence, map pointer label, text scramble, reveals, word sweep, footer wordmarkassets/js/home.js— landing page: hero scan map, pinned loop, bento animations, use-case scenes, mini gameassets/js/iso.js— canvas renderer for the isometric architecture map, styled to matchndx iso; used by loop level 1-4 and the use-case scenesassets/js/map-data.js,assets/js/iso-data.js— generated data (see below)- GSAP + ScrollTrigger from jsDelivr, landing page only, for the pinned loop section; without it the loop simply stacks. Scrolling is always native — no scroll-jacking library
- Google Fonts (Geist, Geist Mono, Silkscreen)
- Google Analytics (gtag.js)
- Hosted via GitHub Pages with custom domain
The landing page draws a real sourcevision analysis of the n-dx monorepo — 2,067 files in 42 zones.
The hero pixel map pins nine of its actual findings; the isometric views use the exact layout model
ndx iso produces. scripts/build-map-data.mjs reads a checkout's .sourcevision/, runs that
checkout's own .claude/skills/iso-map/scripts/iso-map.mjs --json, and writes
assets/js/map-data.js and assets/js/iso-data.js (source links are stripped):
(cd ../n-dx && ndx analyze --deep .)
node scripts/build-map-data.mjs ../n-dxOptional — the committed file is what the site serves. If you regenerate it, update the numbers in
the hero stats row in index.html to match.
- n-dx core repo: github.com/en-dash-consulting/n-dx
- Built by En Dash Consulting: endash.us
- Live site: n-dx.dev
Elastic License 2.0