# Due applicazioni in un repository, e un guardiano che le controlla entrambe

> Un repository, due applicazioni: il sito pubblico statico in cinque lingue e il pannello interno dietro accesso, con una verifica automatica che impedisce di dimenticarne una.

**Enneci Agency** — Tenuta del Barone di Montemurlo di Nicolò Coppi. Via Piemonte 4/40, 59100 Prato (PO), Italia.
Contatti: ciao@enneciagency.it · +39 379 2885434 (anche WhatsApp) · https://www.enneciagency.it
Zona servita: Prato e provincia, Firenze e Pistoia, e in tutta la Toscana.

## Scheda

- Cliente: Webrand
- Settore: Servizi
- Tipo di lavoro: Sito web
- Anno: 2026
- Sito online: https://webrand.work
- Tecnologie: HTML, React, Vite, JavaScript, Vitest
- Pagina: https://www.enneciagency.it/progetti/webrand/

## Risultati

- **5** — lingue: IT, EN, FR, ES, DE
- **2** — applicazioni in un repository
- **2/2** — costruite dalla verifica automatica
- **0** — passaggi di build per il sito pubblico

Webrand tiene insieme due cose diverse: un sito pubblico multilingua, che deve essere velocissimo, e un gestionale interno dietro autenticazione. Stanno nello stesso repository, e questo ha un rischio preciso.

## Il rischio di mettere due applicazioni insieme

Tenere sito e gestionale nello stesso repository semplifica la vita finché la verifica automatica ne costruisce una sola. Allora succede che un errore nell'altra passi inosservato per settimane, fino al momento peggiore.

Non è un timore astratto: nello stesso spazio di lavoro era già accaduto con un altro progetto a due applicazioni, dove per settimane la verifica ne controllava una soltanto.

## Un guardiano che pretende entrambe

La verifica automatica costruisce tutte e due le applicazioni, e c'è un controllo dedicato che lo impone: se qualcuno modificasse la configurazione per costruirne una sola, il controllo fallisce. È una regola scritta nel repository, non un'abitudine da ricordare.

Il sito pubblico è HTML statico in cinque lingue: nessun passaggio di build fra il codice e la pagina, quindi nulla che possa rompersi in mezzo. Il gestionale è un'applicazione React con Vite, dietro accesso, su un sottodominio separato.

## Cosa contiene il repository

- **Sito pubblico multilingua** — HTML statico in italiano, inglese, francese, spagnolo e tedesco.
- **Pannello interno** — Applicazione React con Vite dietro autenticazione, su un indirizzo separato.
- **Guardiani di progetto** — Controlli automatici che verificano le regole condivise fra le due applicazioni.
- **Regole scritte** — Ogni lato ha le proprie istruzioni nel repository; quelle comuni stanno alla radice.

## Una cartella che si chiama "guardiani"

Il repository ha tre cartelle: il sito, il gestionale e — accanto a loro — `guardiani`. Dentro ci sono i controlli automatici che verificano le regole condivise fra le due applicazioni, a partire da quella che dice che la verifica deve costruirle entrambe.

È una soluzione poco elegante a guardarla e molto efficace da usare: invece di affidare una regola alla memoria di chi lavora, la si scrive come prova che fallisce. Chi prova a scorciare se ne accorge in trenta secondi, non fra tre settimane.

Il sito pubblico è HTML statico in cinque lingue, senza passaggi di compilazione; il gestionale è un'applicazione React con la sua catena di build. Due tecnologie diverse per due problemi diversi, nello stesso repository, con un solo comando di verifica.

## Una lezione trasformata in regola

Il valore di questo progetto non è nelle due applicazioni ma in come convivono: un problema già incontrato altrove è diventato un controllo automatico che non si può aggirare per distrazione. È il modo più economico di non ripetere un errore.
