npm package: @nilovonjs/create-app
Description: Create a new Nilovon project with a single command
Author: Nilovon
Latest version: 1.3.0

# ✨ @nilovonjs/create-app

> A modern, type-safe app generator, built and maintained by **Nilovon**.

`@nilovonjs/create-app` is a command-line tool that scaffolds a ready-to-run full-stack application in seconds.
It wires together a modern Next.js stack, sensible defaults, and automation so you can focus on building features instead of boilerplate. 🚀

---

## 🎯 Key features

- ⚡ **Full-stack Next.js 15 starter** with the App Router and strict TypeScript.
- 🔒 **Type-safe end-to-end stack**: from database to UI, with rich inference.
- 🧩 **Pluggable modules** for auth, database, ORM, RPC, linting, Docker, and more.
- 🛠️ **Fast DX**: preconfigured tooling, scripts, and project layout.
- 🎨 **Clean CLI experience** powered by [@clack/prompts](https://github.com/bombshell-dev/clack).

Technologies used by the default templates include:

| Technology | Purpose |
|---|---|
| 🌐 **Next.js 15** | App framework |
| 🗄️ **Drizzle ORM / Prisma** | Database ORM |
| 🐘 **Neon** | Hosted Postgres |
| 🔌 **oRPC** | Typed client/server communication |
| 🔑 **BetterAuth** | Authentication |
| ✅ **ArkType** | Runtime validation |
| 🧹 **Biome / ESLint + Prettier / Oxlint** | Linting & formatting |

---

## 📦 Installation

You can invoke the CLI with any of the following:

```bash
npx @nilovonjs/create-app@latest
pnpm dlx @nilovonjs/create-app@latest
bunx @nilovonjs/create-app@latest
```

No global install is required — the latest published version will be used. 🎉

---

## 🚀 Creating a new project

### Interactive mode (recommended) 💬

Run the CLI and answer a few prompts:

```bash
npx @nilovonjs/create-app@latest
```

You will be asked about:

- 📝 **Project name**
- 📦 **Package manager** (npm, pnpm, bun)
- 🔑 **Authentication** (BetterAuth or none)
- 🗄️ **ORM** (Drizzle, Prisma, or none)
- 🐘 **Database provisioning** (Neon)
- 🔌 **oRPC** support
- 🧹 **Linting & formatting** (Biome, ESLint + Prettier, Oxlint)
- 🌱 **Git initialization**
- 🐳 **Dockerfile**

### Non-interactive mode 🤖

You can also pass flags directly to skip the prompts:

```bash
npx @nilovonjs/create-app@latest \
  --project-name my-app \
  --auth better-auth \
  --orm drizzle \
  --orpc \
  --lint biome \
  --git \
  --run-time bun
```

---

## ⚙️ CLI options

| Flag | Description |
|---|---|
| `-n, --project-name <name>` | Name of the folder / project |
| `--auth <type>` | Authentication strategy (`better-auth` or `none`) |
| `--orm <type>` | ORM (`drizzle`, `prisma`, or `none`) |
| `--lint <type>` | Linter/formatter (`biome`, `eslint-prettier`, or `oxlint`) |
| `--orpc` / `--no-orpc` | Include or exclude oRPC |
| `--git` / `--no-git` | Initialize a git repository |
| `--docker` / `--no-docker` | Add a Dockerfile |
| `--run-time <runtime>` | Package manager (`node`, `pnpm`, or `bun`) |

---

## 📂 Generated project overview

A typical project created with `@nilovonjs/create-app` includes:

- 🌐 **Next.js app** with a clean, opinionated file structure.
- 📘 **Strict TypeScript configuration** for catching issues early.
- 🎨 **Styling setup** (Tailwind CSS) for fast UI work.
- 🔑 **Auth integration** with secure defaults when enabled.
- 🗄️ **Database layer** using Drizzle ORM or Prisma with Neon (when selected).
- 🔌 **RPC layer** using oRPC (when selected).
- 🧹 **Tooling** such as formatting, linting, and build scripts preconfigured.

After generation, get started with:

```bash
cd <your-project-name>
npm run dev   # or pnpm dev / bun run dev
```

---

## 🤝 Contributing & feedback

`@nilovonjs/create-app` is coded by **Nilovon**. 💜

- 🐛 Open an issue describing your use case.
- 💡 Suggest additional stack options or integrations.
- 🔧 Send a pull request with small, focused changes.

---

## 📄 License

This project is licensed under the **MIT License**. See `LICENSE.md` for details.