> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gocopper.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Project

You may create a new Copper project using the `copper create` command, passing your Go module path:

```
copper create github.com/gocopper/rocketlog
```

This scaffolds a complete application into `./rocketlog` on the [GRIP stack](/): a **G**olang server and **R**eact frontend, connected by **I**nertia and backed by **P**ostgres with migrations. GRIP is the stack Copper is optimized for, and every piece can be swapped using the flags below.

Once the project is created, you can start it in watch mode:

```
cd rocketlog && copper run -watch
```

Your application is now accessible in your browser at [http://localhost:5901](http://localhost:5901). Copper rebuilds and restarts it whenever you save a Go file under `pkg/`, and the Vite dev server runs alongside on port 3000 so that frontend changes hot-reload as well.

### Choosing a Frontend

The `-frontend` flag controls the frontend stack:

```
copper create -frontend=none github.com/gocopper/rocketlog
```

| Value                     | What you get                                                                                 |
| ------------------------- | -------------------------------------------------------------------------------------------- |
| `inertia:react` (default) | React + TypeScript + Vite, rendered from your Go routers via [Inertia.js](/frontend/inertia) |
| `none`                    | No frontend; ideal for JSON APIs and services                                                |

Copper uses [bun](https://bun.sh) to install and run the frontend if you have it, and falls back to npm otherwise.

### Choosing Storage

The `-storage` flag controls the database:

```
copper create -storage=sqlite3 github.com/gocopper/rocketlog
```

| Value                | What you get                                  |
| -------------------- | --------------------------------------------- |
| `postgres` (default) | Postgres via the `pgx` driver                 |
| `sqlite3`            | SQLite; zero setup, great for getting started |
| `mysql`              | MySQL                                         |
| `none`               | No database layer                             |

Every storage option (except `none`) includes a `migrations/` directory and a `migrate` binary, and `copper run` applies pending migrations on startup.

### Next Steps

Now that you have created your application, you may want to follow the [tutorial](/getting-started/tutorial) to build your first feature, or take a tour of the [directory structure](/getting-started/directory-structure).
