| Branch | Purpose |
|---|---|
main |
Full-stack baseline (monorepo originale) |
frontend/split |
Frontend separato dal backend; base per prodotti indipendenti |
Su frontend/split il client Sprout vive in frontend/sprout-web/. Il backend resta in apps/server/ e crates/.
Costruire più software diversi, ciascuno con il proprio stack (frontend + backend dedicati). Non esiste un unico server condiviso tra tutti i prodotti.
Sprout resta il primo prodotto (task platform E2EE). I prossimi gestionali nasceranno come repository o cartelle separate.
sprout/
├── apps/server/ # Backend Sprout (API Axum)
├── frontend/
│ └── sprout-web/ # PWA React del primo prodotto
├── crates/ # Librerie Rust condivise (per Sprout)
├── db/ # Schema PostgreSQL di Sprout
└── docs/
- Creare una cartella
frontend/<nome-prodotto>/oppure un repository GitHub separato. - Definire backend e API del nuovo software in un repo dedicato (non riutilizzare
apps/serverse il dominio è diverso). - Condividere solo ciò che ha senso (es. pattern di build WASM, template Vite) — non il codice domain-specific di Sprout.
Quando un prodotto è maturo:
# Dal monorepo
git subtree split -P frontend/sprout-web -b sprout-web-only
# Nel nuovo repo
mkdir ../sprout-web && cd ../sprout-web
git init
git pull ../sprout sprout-web-only
git remote add origin git@github.com:abaco-click/sprout-web.git
git push -u origin mainIl nuovo repo dovrà includere o dipendere da:
- tipi/contratti API del proprio backend
- build WASM se usa crittografia client-side
- CI frontend autonoma
npm --prefix frontend/sprout-web install
npm --prefix frontend/sprout-web run wasm:build
npm --prefix frontend/sprout-web run devIl backend va avviato separatamente da apps/server con PostgreSQL configurato (vedi .env.example).