Skip to content

Releases: ramonclaudio/tanstack-cn

v0.2.0

06 May 19:46
v0.2.0
efafb9f

Choose a tag to compare

PM-agnostic now. Use npm, pnpm, bun, or yarn.

v0.1.x assumed Bun everywhere. Scripts shelled out to bun run, install commands hardcoded bunx, the CLI defaulted to Bun when it couldn't detect a package manager. Made it work right.

The CLI detects your PM from npm_config_user_agent and falls back to npm. npm create tanstack-cn@latest, pnpm create tanstack-cn@latest, bunx create-tanstack-cn@latest, yarn create tanstack-cn all work. The clean script (full reset, fmt, lint, build, typecheck, test) auto-detects too. CI runs the matrix on all four on every push and PR.

Cloudflare Workers ships now. Switched from Pages, since Pages reserves the ASSETS binding Nitro needs. The CLI rewrites wrangler.toml name at scaffold time so your Worker lands at <your-app>.workers.dev, not tanstack-cn. Vercel got vercel.json for parity with the Netlify and Cloudflare configs.

Swapped the hugeicons d.ts workaround for a patches system. patches/*.patch files apply via git apply in postinstall. Same trick as patch-package minus the dep.

After scaffold, the CLI prints what to edit before deploy: src/lib/site.ts, package.json metadata, VITE_SITE_URL on your platform.

Install

npm create tanstack-cn@latest my-app
# or
pnpm create tanstack-cn@latest my-app
# or
bunx create-tanstack-cn@latest my-app
# or
yarn create tanstack-cn my-app

Ping me if there are any bugs or feature requests for it.

v0.1.2

17 Apr 21:17
v0.1.2
78b793b

Choose a tag to compare

Slim down the published tarball.

v0.1.1 was shipping bun.lock (164 KB) inside the scaffolded template. The CLI runs <pm> install right after copying, which regenerates a fresh lockfile immediately, so the bundled one was pure overhead. Also added a defensive filter so build output directories (node_modules, .output, .nitro, .tanstack, dist, coverage) never leak into the tarball if someone runs bun install inside templates/default/ before publishing.

Expected tarball size drops from ~570 KB to ~400 KB. No user-visible behavior change: bunx create-tanstack-cn@latest my-app still installs and scaffolds identically.

Upgrade

bunx create-tanstack-cn@latest my-app

v0.1.0 and v0.1.1 are deprecated on npm.

v0.1.1

17 Apr 21:09
v0.1.1
9a4cd07

Choose a tag to compare

Fix: .gitignore now lands in scaffolded projects.

npm always strips .gitignore from published tarballs (it's on their always-ignored list, not overridable). v0.1.0 scaffolds were missing it, which meant bun run lint scanned node_modules and reported tens of thousands of false errors.

The fix: the CLI ships the template's .gitignore as _gitignore inside the published package, then renames it back to .gitignore after copying the template at scaffold time. Standard scaffolder workaround (same trick create-next-app and create-vite use).

If you already scaffolded a project from v0.1.0, either drop a .gitignore in manually or re-scaffold with bunx create-tanstack-cn@latest.

Upgrade

bunx create-tanstack-cn@latest my-app

v0.1.0 has been deprecated on npm.

v0.1.0

17 Apr 20:52
v0.1.0
ae18b75

Choose a tag to compare

Initial release.

Got tired of every TanStack Start + shadcn starter shipping last year's choices: Radix, ESLint, Prettier, Webpack-era Vite. Built the one I wanted to use.

TanStack Start on Vite 8 (Rolldown + Oxc), Nitro 3 for SSR, React 19, TypeScript 6. Tailwind v4 with shadcn base-luma on @base-ui/react. Oxlint with 232 rules and type-aware linting via oxlint-tsgolint, Oxfmt for formatting and Tailwind class sorting. Vitest 4. Bun runtime.

SEO and launch plumbing wired: canonical, og, twitter, JSON-LD @graph, 2400×1260 og image, sitemap, robots.txt with AI crawler opt-outs, llms.txt, security.txt, PWA manifest with maskable and monochrome icons. Platform-agnostic security headers ship from Nitro routeRules on every preset (Vercel, Cloudflare, Netlify, Node, Bun, Deno). Speculation Rules API prerenders internal links on 200ms hover.

Install

bunx create-tanstack-cn@latest my-app
# or
npm create tanstack-cn@latest my-app
# or clone the template directly:
bunx degit ramonclaudio/tanstack-cn/templates/default my-app

create-tanstack-cn copies the template, rewrites package.json, detects your package manager, installs dependencies, and initializes a git repo with an initial commit. --no-install and --no-git if you want to skip either.

Packages published

Lighthouse desktop (5-run p50): 98 / 100 / 100 / 100. LCP 842ms, CLS 0.000.

Ping me if there are any bugs or feature requests for it.