HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/.codex/.tmp/plugins/plugins/base44/skills/base44-cli/references/create.md
# base44 create

Creates a new Base44 project from a template. This command is framework-agnostic and can either scaffold a complete project or add Base44 configuration to an existing project.

## Critical: Non-Interactive Mode Required

ALWAYS provide both the project name AND `--path` flag. Without both, the command opens an interactive TUI which agents cannot use properly.

WRONG: `npx base44 create`
WRONG: `npx base44 create my-app`
RIGHT: `npx base44 create my-app -p ./my-app`

## Syntax

```bash
npx base44 create [name] --path <path> [options]
```

## Arguments & Options

| Argument/Option | Description | Required |
|--------|-------------|----------|
| `name` | Project name (positional argument) | Yes* |
| `-p, --path <path>` | Path where to create the project | Yes* |
| `-t, --template <id>` | Template ID (see templates below) | No |
| `--deploy` | Build and deploy the site (includes pushing entities) | No |
| `--no-skills` | Skip AI agent skills installation (skills are added by default) | No |

*Required for non-interactive mode. Both `name` and `--path` must be provided together.

## Template Selection (CRITICAL - Choose Appropriately)

**You MUST select the most appropriate template based on user requirements:**

| Template ID | When to Use | Example Scenarios |
|-------------|-------------|-------------------|
| `backend-and-client` | Creating a NEW full-stack web app from scratch | "Create a task app", "Build me a dashboard", "Make a SaaS app" |
| `backend-only` | Adding Base44 to an EXISTING project OR using a different framework (Next.js, Vue, Svelte, etc.) | "Add Base44 to my project", "I want to use Next.js", "I already have a frontend" |

**Default Choice:** When the user asks to "create an app" or "build a project" without specifying a particular framework, use `backend-and-client` to provide a complete, production-ready application with Vite + React + Tailwind.

## The `--path` Flag

- **For `backend-and-client` template (new projects):** Use a new subfolder path
  ```bash
  npx base44 create my-app -p ./my-app -t backend-and-client
  ```
- **For `backend-only` template (existing projects):** Use `-p .` in the current directory
  ```bash
  npx base44 create my-app -p .
  ```

## Workflow: Using `backend-only` with External Frameworks

**CRITICAL: The project folder MUST exist BEFORE running `base44 create` with `backend-only`**

The `backend-only` template only adds Base44 configuration files - it does NOT create a frontend. If you need a frontend with a specific framework:

```bash
# Step 1: Initialize the frontend project FIRST
npm create vite@latest my-app -- --template react  # or vue, svelte, etc.
# OR: npx create-next-app@latest my-app
# OR: any other framework's init command

# Step 2: Navigate into the created folder
cd my-app

# Step 3: Install Base44 CLI
npm install --save-dev base44

# Step 4: Add Base44 configuration
npx base44 create my-app -p .
```

**WARNING:** Do NOT:
- Create an empty folder manually, then try to run `npx create vite` inside it (will fail - folder exists)
- Run `base44 create` with `backend-only` expecting it to create a frontend (it won't)

**DO:**
- Run the external framework's init command FIRST (it creates its own folder)
- Then run `base44 create` inside that folder with `-p .`

## Examples

```bash
# RECOMMENDED: Create full-stack project (for new apps)
npx base44 create my-app -p ./my-app -t backend-and-client

# Create full-stack and deploy in one step
npx base44 create my-app -p ./my-app -t backend-and-client --deploy

# Add Base44 to EXISTING project (must be inside the project folder)
npx base44 create my-app -p .

# Add Base44 to existing project and deploy
npx base44 create my-app -p . --deploy

# Create without adding AI agent skills
npx base44 create my-app -p . --no-skills
```

## What It Does

1. Applies the selected template to the target path
2. Creates a `base44/` folder with configuration files
3. Registers the project with Base44 backend
4. Creates `base44/.app.jsonc` with the app ID
5. If `--deploy` is used:
   - Pushes any entities defined in `base44/entities/`
   - Runs install and build commands (for templates with frontend)
   - Deploys the site to Base44 hosting