create-furin
v0.4.0
Published
Official scaffolder for Furin — the React meta-framework on Elysia + Bun
Readme
create-furin
Official scaffolder for Furin — the React meta-framework built on Elysia + Bun.
Prerequisites
- Bun ≥ 1.4.0
Usage
Via bun create
bun create furin@latest my-appVia bunx
bunx create-furin@latest my-appLocally (development inside the monorepo)
bun apps/scaffolder/src/index.ts my-appOptions
Usage:
bun create furin@latest <dir>
bun create furin@latest <dir> --template <simple|full>
Options:
--template <simple|full> Template choice (default: interactive)
--yes Skip interactive confirmations
--no-install Do not run bun install after scaffolding
--version Show the targeted @teyik0/furin version
--help Show helpExamples
# Full interactive mode
bun create furin@latest my-app
# Scaffold directly, no prompts
bun create furin@latest my-app --template full --yes
# Scaffold without installing dependencies
bun create furin@latest my-app --no-installTemplates
simple — Tailwind CSS + API route
my-app/
├── package.json
├── tsconfig.json
├── bunfig.toml
├── furin.config.ts
├── furin-env.d.ts
├── .gitignore
├── public/
│ └── favicon.ico
└── src/
├── server.ts
├── api/
│ └── hello.ts
└── pages/
├── globals.css
├── root.tsx
└── index.tsxDependencies: @teyik0/furin, elysia, evlog, typebox, exact-mirror, react, react-dom, bun-plugin-tailwind, tailwindcss
full — shadcn/ui + Tailwind CSS + API routes
my-app/
├── package.json
├── tsconfig.json ← path alias @/* → src/*
├── bunfig.toml
├── furin.config.ts
├── furin-env.d.ts
├── components.json ← shadcn/ui config
├── .gitignore
├── public/
│ └── favicon.ico
└── src/
├── server.ts
├── api/
│ └── hello.ts
├── lib/
│ └── utils.ts ← cn() helper (clsx + tailwind-merge)
├── components/
│ └── ui/
│ ├── button.tsx
│ ├── card.tsx
│ └── input.tsx
└── pages/
├── globals.css ← CSS oklch variables (light + dark theme)
├── root.tsx
└── index.tsxDependencies: everything in simple, plus class-variance-authority, clsx, tailwind-merge, @radix-ui/react-slot, lucide-react, tw-animate-css
After scaffolding
The scaffolder automatically runs:
bun install— installs all dependenciesgit init+ first commitchore: initial scaffold
To get started:
cd my-app
bun dev # http://localhost:3000
bun tscheck # TypeScript checkScaffolder development
# Tests (53 cases)
bun run --filter="create-furin" test
# TypeScript check
bun run --filter="create-furin" tscheckUpdating a dependency version
Edit src/generated/package-catalog.json — templates automatically pick up new versions on the next scaffold:
{
"@teyik0/furin": "0.1.0-alpha.4",
"elysia": "2.0.0-beta.19",
"react": "^19.2.4"
}Adding a template
- Create the
templates/<id>/folder with the desired files - Add the entry to
templates/manifest.json(schema v2) - Use
kind: "package-json"for generatedpackage.json,kind: "ejs"for rendered templates, andkind: "static"for byte-for-byte copies
