---
url: /modules/projects.md
---
# Projects

Reference projects or case studies with categories, each with its own page built in the block editor.

::: glance

* **Module key** `project`
* **Default** on
* **Switch** `EVOLVE_MODULE_PROJECT`, see [Modules](/modules/#switching-a-module-on-or-off)
* **Role access** `evolve.roles.modules.project`
* **Panel** `/evolve/project/project`, `/evolve/project/category`
  :::

## Configuration

| Variable | Default | Panel | Effect |
|---|---|---|---|
| `PROJECT_ALLOW_ROUTEABLE` | `true` | no | Give every project a detail page at `/{locale}/project/{slug}` and enable the list route. Off, projects only appear where the theme renders them. |
| `PROJECT_OVERVIEW_PAGE` | unset | yes | Page the list route `/{locale}/project` redirects to. |

`config/project.php` also sets `sortable` (drag and drop order in the list) and the route prefix `project`.

## In the panel

* **Projects** at `/evolve/project/project`: title, slug, intro, category, images, order by drag and drop, and the block editor for the page content.
* **Categories** at `/evolve/project/category`.
* Cmd-K: "Projects", "Categories", "New project". Projects are in the global search.

## On the site

* **Detail pages** at `/{locale}/project/{slug}` while `PROJECT_ALLOW_ROUTEABLE` is on.
* **List** at `/{locale}/project`, rendered by the module's own list view, or a redirect to `PROJECT_OVERVIEW_PAGE` when set.

The module ships no list block of its own. A project overview page is built from the theme's components or by letting the list route render the module view.

## Publishing

`project.config` publishes `config/project.php`. `project.components` publishes the Livewire components and views.
