Skip to content

Releases: jal-co/scn-stack

v0.12.0

03 Jun 02:42
0f0c650

Choose a tag to compare

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/toolkit

New 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 eject

Other

  • 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, and build commands (#37).

Full changelog: v0.10.0...v0.12.0

v0.11.0 — Registry lifecycle commands

31 May 03:32
49f18e7

Choose a tag to compare

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 any add-*. Deletes the item's source file(s), prunes the registry.json entry, and removes the matching docs page (and its meta.json line). Confirm-gated by default; --yes to skip.
  • list [--type] [--json] — inspect the registry, grouped by components / hooks / blocks / themes. --type filters by kind; --json emits a scriptable, machine-readable view.
  • add-theme <name> — rounds out the add-* family. Registers a theme-<name> registry:theme item with starter light/dark CSS tokens and a docs page.
  • build — convenience passthrough to your project's registry:build script (or shadcn build), with package-manager detection from the project lockfile.

Under the hood

  • New shared registry-item core powering add / remove / list, with registryHasItem unified 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.9.0...v0.11.0

v0.10.0 — clack-native TUI, test suite, CI hardening

29 May 19:46
a06d10e

Choose a tag to compare

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 scaffold p.note summarizing every choice and asks for confirmation before doing anything irreversible.
  • Auto-promote --yes in 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=1 env var lets tests skip npm install, the shadcn skill install, and git init so the suite finishes in ~1s and works offline.
  • npm run test:ci runs on every PR into main.

Conventional Commits + Conventional Branch enforced in CI

  • commit-check-action validates every commit message and branch name on PRs into main.
  • 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, structured ISSUE_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@latest

Full 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

28 May 21:06
60b2d26

Choose a tag to compare

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 formattinglabelValue() helper for aligned dim-label + value pairs
  • Branded helpscn━━━stack wordmark in --help output

Full Changelog

v0.8.0...v0.9.0

v0.8.0

28 May 20:00
f975d57

Choose a tag to compare

What's New

CLI Subcommands

  • init — Add a registry to an existing project. Detects your framework, creates registry.json, components.json, and build script.
  • add-hook <name> — Scaffold a hook with registry:hook type, docs page, and registry entry.
  • add-block <name> — Scaffold a block with registry:block type, docs page, and registry entry.

Registry Features

  • Theme scaffoldingregistry:theme CSS 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 + PreviewFrame component
  • llms.txt generation — Auto-generated in scaffolded projects
  • .scn-stack.json config — 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.7.0...v0.8.0

v0.6.0

27 May 20:39
906b5af

Choose a tag to compare

Mintlify Docs Engine

New docs option alongside Fumadocs and Starlight:

npx create-scn-stack my-ui --docs mintlify

Generates 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

27 May 20:24
6bafa2c

Choose a tag to compare

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:

  • ComponentPreview container 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-component auto-detects include pattern
  • Skills updated with shadcn registry validate reference

v0.3.0

27 May 18:41
ebffbed

Choose a tag to compare

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 --yes

add-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

27 May 04:13
ae4ad2e

Choose a tag to compare

Renamed to create-scn-stack.

npx create-scn-stack

Changes

  • Package renamed from create-scn-registry to create-scn-stack
  • Repo renamed to jal-co/scn-stack
  • Added prompts: project location, style (New York / Default), homepage URL

v0.1.0

27 May 03:05
53625dc

Choose a tag to compare

Initial release of create-scn-registry — interactive CLI for scaffolding shadcn component registries.

npx create-scn-registry

Features

  • 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: @name configuration
  • Style: New York or Default
  • Homepage: Configurable registry URL