---
title: "Developing a Website"
description: "Developing a Website"
type: "docs"
category: "doc"
tags: []
authors: [Anonymous]
date: "2026-10-10"
last_update: "2026-10-10"
time_minutes: 2
draft: false
unlisted: false
url: "https://www.derafu.dev/docs/core/website-skeleton/development"
---

# Developing a Website

## Develop a website

### Create a new website

Enter the container and run:

```shell
site-create www.example.com
```

**Note**: Creating the website requires as a subsequent step that you configure its repository on GitHub and add the site to the `$DEPLOYER_DIR/sites.php` file using the `site-add` command.

### Clone a website

Enter the container and run:

```shell
site-clone www.example.com git@github.com:example/example.git
```

**Note**: When cloning an existing website, the site is automatically added to the `$DEPLOYER_DIR/sites.php` file.

### Visit the website in the browser

On your machine, configure `/etc/hosts` by adding the local development domain:

```shell
echo "127.0.0.1         www.example.com.local" | sudo tee -a /etc/hosts
```

Then you can access the website via the URL https://www.example.com.local:8443

### The language of the website

The texts of the templates are in English and are translated with the domain `website`: the Spanish translations are in `resources/translations/website+intl-icu.es.php`, and `App\Translation\WebsiteTranslationResourceProvider` gives them to the translator. The language of the site is the one of the environment variable `APP_LOCALE` (`es`, for example), or English if it is not set. A text that you add to a template is written in English with the filter `|trans`, and its translation goes in the catalogue; the test `tests/src/Translation/WebsiteMessagesTest.php` fails if a text is missing.

### The contact page

The contact page is the one of [`derafu/contact-form`](https://www.derafu.dev/docs/ui/contact-form): [`derafu/foundation`](https://www.derafu.dev/docs/core/foundation) requires it and imports its routes and its services, so the site has no controller of its own for it.

### The tests of the website

The site comes with tests that run it as it is: `tests/src/WebsiteTest.php` starts the kernel with the real configuration of `config/`, makes a request to the home page and to `/contact`, and checks the response in English and in Spanish. `tests/src/Translation/WebsiteMessagesTest.php` audits that every text of the templates has its translation.

The kernel of the tests runs in debug mode on purpose. Outside of debug mode the container is cached in `var/cache/<env>/` and a later run reuses it, so a change in `config/services.yaml` would not be seen. If you test the kernel in your site, do the same, or delete `var/cache/` before running.



---
Last updated on 10/10/2026

