Releases: jal-co/scn-stack
v0.12.0
Highlights
First-class support for the two latest shadcn updates.
🐙 GitHub source registries (June 2026)
A new github distribution target — a public repo is the registry. No framework app, no shadcn build, no published JSON, no server. Scaffolds a minimal repo and emits npx shadcn add <owner>/<repo>/<item> install commands throughout.
npx create-scn-stack my-toolkit --github acme/toolkitNew flags: --target hosted|github, --github [owner/repo], --github-slug, plus an interactive Distribution prompt.
📦 add-file — distribute anything
Register arbitrary registry:file items (project conventions, CI workflows, agent instructions, ~/-targeted files):
npx create-scn-stack add-file project-conventions --file conventions/AGENTS.md:~/AGENTS.md🧹 eject (May 2026)
Package-manager-aware passthrough to shadcn eject — inline shadcn/tailwind.css and drop the shadcn dependency. Supports -c <workspace> for monorepos.
npx create-scn-stack ejectOther
- Install-command resolution auto-detects a github.com homepage across
add-component,llms.txt, and.scn-stack.json. - New docs: GitHub Registries and Eject guides; updated options/prompts.
Also included (previously unreleased 0.11.0)
remove,list,add-theme, andbuildcommands (#37).
Full changelog: v0.10.0...v0.12.0
v0.11.0 — Registry lifecycle commands
What's New
Registry lifecycle commands
The CLI can now manage a registry, not just create it. Four new commands, all built on a shared registry core that reads the root registry plus every included per-directory registry — so they behave identically across the include and flat patterns.
remove <name>— the full reverse of anyadd-*. Deletes the item's source file(s), prunes theregistry.jsonentry, and removes the matching docs page (and itsmeta.jsonline). Confirm-gated by default;--yesto skip.list [--type] [--json]— inspect the registry, grouped by components / hooks / blocks / themes.--typefilters by kind;--jsonemits a scriptable, machine-readable view.add-theme <name>— rounds out theadd-*family. Registers atheme-<name>registry:themeitem with starter light/dark CSS tokens and a docs page.build— convenience passthrough to your project'sregistry:buildscript (orshadcn build), with package-manager detection from the project lockfile.
Under the hood
- New shared
registry-itemcore powering add / remove / list, withregistryHasItemunified across every command. - Docs updated: README + the CLI options reference now cover all four commands.
- Test suite expanded to 81 passing tests (new unit coverage for the core + integration coverage for the new commands).
Full Changelog
v0.10.0 — clack-native TUI, test suite, CI hardening
Highlights
Real TUI, end to end
The interactive flow now lives inside a single continuous clack frame — from the white three-bar logo at the top to the final └ ready in N.Ns 🎉 line at the bottom — so every prompt, box, and progress indicator lines up.
- Per-prompt descriptions with doc links. Every select / confirm has a multi-line explanation above it (what the choice means, what each option does, a link to the canonical docs). Modern terminals auto-link bare URLs.
- Four named scaffold phases rendered with
p.tasks:Project scaffold,Registry & components,Docs, theme & extras,Install & finalize. Each phase shows a header with a one-line subtitle and◇task ticks underneath. - Final review step. After the last prompt the CLI shows a
Ready to scaffoldp.notesummarizing every choice and asks for confirmation before doing anything irreversible. - Auto-promote
--yesin non-TTY environments. Piping into the CLI or running it in CI no longer hangs waiting for keystrokes — it falls back to defaults and respects any flags you passed. - Timing in the outro. The final line reports how long the scaffold took.
Bug fix — duplicate detection actually works
add-component, add-hook, and add-block previously only inspected the root registry.json for duplicates, which meant they silently appended duplicates under the include pattern (the default for scaffolded projects). They now walk both the root and any included per-directory registries via a shared registryHasItem() helper, with integration tests enforcing the fix.
Vitest test suite (62 tests) + CI gate
- Unit tests for arg parsing, helpers, generators, and the new
registryHasItem. - Integration tests that run the built CLI into temp directories and assert generated files + registry wiring end-to-end.
- A new
SCN_STACK_SKIP_INSTALL=1env var lets tests skipnpm install, the shadcn skill install, andgit initso the suite finishes in ~1s and works offline. npm run test:ciruns on every PR intomain.
Conventional Commits + Conventional Branch enforced in CI
commit-check-actionvalidates every commit message and branch name on PRs intomain.- PR auto-labeler tags PRs by branch prefix and changed files (
feat/,fix/,.github/**→ci,www/**→website, etc.). - Full community files:
CONTRIBUTING.md,CODE_OF_CONDUCT.md(Contributor Covenant 3.0),PULL_REQUEST_TEMPLATE.md, structuredISSUE_TEMPLATE/(bug / feature / framework-or-docs-engine request),FUNDING.yml.
Landing page matches the real TUI
The hero terminal on scnstack.sh now renders pixel-for-pixel like a real --yes run — same white logo bars, same p.note boxes, same phase headers, same outro. Built from a live capture so the box geometry is exact, not estimated.
Install
npx create-scn-stack@latestFull changelog
Merged PRs
- #24 — test: add vitest suite, fix duplicate detection, wire into CI
- #25 — chore: add community files, PR auto-labeler, and commit-check CI
- #26 — feat(tui): clack-native flow, p.tasks phases, matching site demo
- #27 — release: v0.10.0
Diff: v0.9.0...v0.10.0
v0.9.0
What's New
Branded CLI
The CLI now has a distinct visual identity with the scn-stack brand icon and styled output.
- Brand icon — three-bar icon matching the SVG logo, displayed at startup
- Styled headers — full branded header for scaffold/init, compact header for subcommands
- Summary boxes — bordered completion output with file listings
- Consistent formatting —
labelValue()helper for aligned dim-label + value pairs - Branded help —
scn━━━stackwordmark in--helpoutput
Full Changelog
v0.8.0
What's New
CLI Subcommands
init— Add a registry to an existing project. Detects your framework, createsregistry.json,components.json, and build script.add-hook <name>— Scaffold a hook withregistry:hooktype, docs page, and registry entry.add-block <name>— Scaffold a block withregistry:blocktype, docs page, and registry entry.
Registry Features
- Theme scaffolding —
registry:themeCSS file with custom properties - Private registry auth — Next.js middleware with bearer token
- v0 integration — "Open in v0" button component + URL helper
- Component preview iframe —
/preview/[name]route +PreviewFramecomponent llms.txtgeneration — Auto-generated in scaffolded projects.scn-stack.jsonconfig — Stores project config for repeatable operations
Website
- npm weekly downloads badge in header
- Updated docs: Quick Start, CLI Options, Init page, Prompts, Project Structure
Full Changelog
v0.6.0
Mintlify Docs Engine
New docs option alongside Fumadocs and Starlight:
npx create-scn-stack my-ui --docs mintlifyGenerates a docs/ directory with mint.json, MDX pages, and logos. Works with any framework — no code dependency. Push to GitHub and connect to mintlify.com for hosted deployment.
Docs Engine Comparison
| Feature | Fumadocs | Mintlify | Starlight |
|---|---|---|---|
| Self-hosted | ✅ | ❌ (hosted) | ✅ |
| Requires Next.js | ✅ | ❌ | ❌ |
| Component previews | ✅ (inline) | Via iframe | Via iframe |
| Web editor | ❌ | ✅ | ❌ |
| Free tier | ✅ (OSS) | ✅ (limited) | ✅ (OSS) |
v0.5.0
Registry Include Pattern
Uses the May 2026 shadcn convention — root registry.json composes from per-directory files via include:
{
"include": ["registry/new-york/ui/registry.json"]
}Component Previews
Generated docs now include live component previews:
ComponentPreviewcontainer renders components inline- Demo files import directly from
registry/<style>/ui/source - Button (variants + sizes), Card, Badge all get live previews
- Matches the pattern used by 8bitcn, magicui, and other top registries
Other Changes
- shadcn bumped to
^4.0.0(required for include) add-componentauto-detects include pattern- Skills updated with
shadcn registry validatereference
v0.3.0
CLI Flags
All prompts can now be pre-filled via flags:
npx create-scn-stack my-ui --framework nextjs --docs fumadocs --pm pnpm--yes Mode
Skip all prompts with sensible defaults:
npx create-scn-stack my-ui --yesadd-component Subcommand
Add components to an existing registry project:
npx create-scn-stack add-component input -d "A text input component."Creates component source + registry.json entry + docs page + meta.json update in one command.
v0.2.0 — scn-stack
Renamed to create-scn-stack.
npx create-scn-stackChanges
- Package renamed from
create-scn-registrytocreate-scn-stack - Repo renamed to
jal-co/scn-stack - Added prompts: project location, style (New York / Default), homepage URL
v0.1.0
Initial release of create-scn-registry — interactive CLI for scaffolding shadcn component registries.
npx create-scn-registryFeatures
- Frameworks: Next.js, Vite, React Router, TanStack Start
- Docs engines: Fumadocs (recommended), Starlight, or none
- Starter components: Button, Card, Badge with auto-generated doc pages
- Registry config: registry.json, components.json,
shadcn build - Namespace support:
@nameconfiguration - Style: New York or Default
- Homepage: Configurable registry URL