---
title: "Directory structure"
manual: "Render guides"
version: "0.47"
permalink: "https://docs.typo3.org/permalink/t3renderguides:directory-structure"
source: "Developer/DirectoryStructure.rst"
rendered: "2026-10-16T05:56:53+00:00"
---

# Directory structure {#directory-structure}

The directory structure of the project is as follows:

```plaintext
.
├── .ddev
├── .github
│   ├── workflows
│   │   ├── check-built-assets.yaml
│   │   ├── dependabot-rebuild-assets.yaml
│   │   ├── deploy-azure-assets.yaml
│   │   ├── docker-test.yaml
│   │   ├── docker.yaml
│   │   ├── main.yaml
│   │   ├── pr-auto-approve.yaml
│   │   ├── pr-auto-merge.yaml
│   │   ├── split-repositories.yaml
├── bin
├── Documentation
├── packages
│   ├── typo3-api
│   ├── typo3-docs-theme
│   ├── typo3-docs-theme-md
│   ├── typo3-guides-cli
│   ├── typo3-guides-extension
│   ├── typo3-version-handling
├── tests
│   ├── Integration
├── tools
```

The `.ddev/` directory contains the configuration for the local development
environment for people using [DDEV](https://ddev.com/).

The `.github/` directory contains the configuration for the GitHub workflows.
The main workflow runs the quality checks for each pull request and each
push to the `main` branch. The Docker workflow builds the Docker image for
each release. The other workflows check the built theme assets, publish them,
split the packages into their own repositories, and handle Dependabot pull
requests.

The `bin/` directory contains the executable `bin/guides`. The
Docker image runs it, and the phar file starts from it. It validates the
`guides.xml` and then starts phpDocumentor/guides.

The `packages/` directory contains the TYPO3-specific extensions. The
`typo3-docs-theme` extension contains the theme for the documentation, and
TYPO3-specific directives. The `typo3-docs-theme-md` package renders Markdown
beside the HTML. The `typo3-guides-extension` extension contains
extensions on the base tool. These are customizations to make the tool fit the
TYPO3 documentation needs. The `typo3-guides-cli` package is a collection
of Symfony commands for tasks like conversion or linting. The
`typo3-version-handling` package knows the TYPO3 versions and the default
interlink inventories. The `typo3-api` package generates api.typo3.org.

The `tests/` directory contains the tests for the project. The integration
tests are located in the `Integration/` directory. During the integration
tests the tool is executed as it was run by the user.

The `tools/` directory contains the tools needed for the project. Like
scripts to build the phar file or adapt Git hooks.

The `Documentation/` directory holds the documentation you are now
reading. It is the default documentation built by the project, too.

The `Dockerfile` and `entrypoint.sh` files provide the Docker
container support for the project.

The `Makefile` contains a list of all supported development commands and
tasks that can be executed. All of them can also be executed with a Composer
wrapper script (`composer make ...`).
