# 1. Initialize a Project

With the Garden CLI [installed](/acorn-0.12/basics/quickstart.md#step-1-install-garden), we'll kick off by configuring a simple example project for use with Garden.

Start by cloning our repo and finding the example project:

```sh
git clone https://github.com/garden-io/garden.git
cd garden/examples/demo-project-start
```

This directory contains two directories, with one container service each, `backend` and `frontend`. We'll first define a boilerplate Garden project, and then a Garden module for each of the services.

To initialize the project, we can use a helper command:

```sh
garden create project --skip-comments
```

This will create a basic boilerplate project configuration in the current directory, making it our project root.

```yaml
kind: Project
name: demo-project
environments:
  - name: default
providers:
  - name: local-kubernetes
```

We have one environment (`default`) and a single provider. We'll get back to this later.

Next, let's create module configs for each of our two modules, starting with `backend`. You can omit the `--skip-comments` flag to create a module with commented-out fields, which reveal all the options available.

```sh
cd backend
garden create module --skip-comments
cd ..
```

You'll get a suggestion to make it a `container` module. Pick that, and give it the default name as well. Then do the same for the `frontend` module:

```sh
cd frontend
garden create module --skip-comments
cd ..
```

This is now enough configuration to build the project. Before we can deploy, we need to configure `services` in each module configuration, as well as set up a local cluster or connect to a remote cluster.

Starting with the former, go ahead and open the newly created `backend/garden.yml` file. Just to keep things simple for now, go ahead and append to the file the following:

```yaml
services:
  - name: backend
    ports:
      - name: http
        containerPort: 8080
        servicePort: 80
    ingresses:
      - path: /hello-backend
        port: http
```

This is enough information for Garden to be able to deploy and expose the `backend` service. Now do the same for the `frontend` service, with the following block:

```yaml
services:
  - name: frontend
    ports:
      - name: http
        containerPort: 8080
    ingresses:
      - path: /hello-frontend
        port: http
      - path: /call-backend
        port: http
    dependencies:
      - backend
```

This does the same for the `frontend` service, with the addition of declaring a runtime dependency on the `backend` service.

Now, let's move on to our next section, and [connect to a Kubernetes cluster](/acorn-0.12/tutorials/your-first-project/2-connect-to-a-cluster.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.garden.io/acorn-0.12/tutorials/your-first-project/1-initialize-a-project.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
