Un proiect Hazeloft urmează o convenție pe straturi, ca să separe clar codul de aplicație de configurare.
Foldere de nivel înalt
| Folder | Rol |
|---|---|
app/ | Rute și layout-uri (App Router) |
src/features/ | Funcționalități, fiecare cu conținutul și componentele ei |
src/components/ | Componente UI partajate |
src/lib/ | Utilitare de infrastructură și domeniu |
Convenții pentru fișiere
- Fișierele
*.server.tsxrulează doar pe server. - Fișierele
*.client.tsxsunt componente client ("use client"). - Conținutul MDX stă în
content/în interiorul fiecărei funcționalități.
Alias-uri de import
Folosește alias-ul ~ pentru a importa din src/:
// Înainte
import { Button } from "../../../components/button";
// După
import { Button } from "~/components/button";