Initial commit: sito NexStudio (Astro) con Cloudflare, CMS cookie e contenuti legali

- Home: hero, prodotti, servizi, stack, FAQ, CTA con form contatti inline (glossy) e particelle
- Header nero, menu con scroll-spy e alone su voce attiva, CTA Chattiamo (pre-chat)
- Pagine: privacy, cookie, GDPR, terms, about, codice etico, modello organizzativo, dove siamo, news
- Cookie consent first-party, chat gate, stampe-friendly su SubpageLayout
- Footer: Sezioni con Contattaci, Azienda con Dove siamo senza link per ora
- .gitignore: aggiunto .wrangler/ per stato locale Cloudflare

Made-with: Cursor
This commit is contained in:
Javaxman
2026-04-22 13:07:40 +02:00
commit 16c380dfda
64 changed files with 25028 additions and 0 deletions

32
src/pages/about.astro Normal file
View File

@ -0,0 +1,32 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
---
<SubpageLayout
title="Chi siamo — NexStudio"
description="Chi è NexStudio: missione, team e ambiti Legal Tech e Health Tech."
heading="Chi siamo"
lead="Un team giovane e dinamico di programmatori dalla Tailandia e dall'Italia, uniti per creare
applicazioni ad alta usabilità ed efficienza"
>
<p>
Ci impegnamo nel rendere invisibile la tecnologia. Creiamo software che si fanno carico di processi strutturati
e calcoli intricati, sollevando l'utilizzatore da compiti impegnativi, dispersivi e soggetti ad errori.
Siamo focalizzati su software SaaS ad alta complessità per settori
regolamentati, specificatamente legale e medico, con focus su intelligenza artificiale integrata nei flussi
professionali (LexAura, MediAura). Nascondiamo sotto una superficie fluida e intuitiva motori
ad alta ingegneria. Abbiamo racchiuso una logica complessa in uninterfaccia essenziale, affinché basti solo
premere un tasto dove prima servivano ore di lavoro.
</p>
<h2>Dove operiamo</h2>
<p>
Base operativa a Bangkok; collaborazione con clienti a livello internazionale. Dettagli in <a
class="text-sky-400/90 hover:text-sky-300"
href="/dove-siamo">Dove siamo</a
>.
</p>
<h2>Contatti</h2>
<p>
<a class="text-sky-400/90 hover:text-sky-300" href="/#contatti">Vai alla sezione Contatti</a> sulla homepage.
</p>
</SubpageLayout>

View File

@ -0,0 +1,494 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
const link = 'text-sky-400/90 underline-offset-2 hover:text-sky-300 hover:underline';
---
<SubpageLayout
title="Codice etico — NexStudio"
description="Codice etico definitivo NexStudio: valori, conformità legale e sanitaria, privacy, sicurezza, AI, governance e segnalazioni."
heading="Codice etico definitivo"
lead="Per NexStudio — sede: Bangkok, Thailandia. Versione 1.0, in vigore dal 21 aprile 2026. Documento interno ed esterno: principi, obblighi e procedure operative per chi collabora con la Società."
>
<div class="[&_h3]:mt-6 [&_h3]:text-base [&_h3]:font-semibold [&_h3]:text-nx-fg">
<p class="border-l-2 border-sky-500/35 pl-4 text-sm leading-relaxed text-nx-muted">
<span class="font-medium text-nx-fg">Versione</span> 1.0
<span class="text-nx-muted/80"> · </span>
<span class="font-medium text-nx-fg">Entrata in vigore</span>: 21 aprile 2026
</p>
<h2 id="indice" class="!mt-8">Indice sintetico</h2>
<ol class="!mt-3 list-decimal space-y-1.5 pl-5 text-sm leading-relaxed sm:text-base">
<li><a class={link} href="#premessa">Premessa</a></li>
<li><a class={link} href="#ambito">Ambito di applicazione</a></li>
<li><a class={link} href="#valori">Valori e principi fondamentali</a></li>
<li>
<a class={link} href="#conformita">Conformità normativa specifica (ambito legale e medico)</a>
</li>
<li><a class={link} href="#tutela-dati">Tutela dei dati personali e dati sensibili</a></li>
<li>
<a class={link} href="#sicurezza">Sicurezza dellinformazione e resilienza operativa</a>
</li>
<li>
<a class={link} href="#qualita"
>Qualità del software, validazione clinica e rischio per gli utenti</a
>
</li>
<li>
<a class={link} href="#proprieta-intellettuale"
>Proprietà intellettuale e uso di componenti esterni</a
>
</li>
<li><a class={link} href="#ai-ml">Uso responsabile di AI/ML e automazione</a></li>
<li>
<a class={link} href="#conflitti">Conflitti di interesse e integrità commerciale</a>
</li>
<li>
<a class={link} href="#linee-operative"
>Linee operative: sviluppo, rilascio e gestione vulnerabilità</a
>
</li>
<li><a class={link} href="#governance">Governance, ruoli e responsabilità</a></li>
<li>
<a class={link} href="#onboarding">Onboarding, formazione e certificazione</a>
</li>
<li>
<a class={link} href="#segnalazioni"
>Segnalazioni, protezione del segnalante e investigazioni</a
>
</li>
<li><a class={link} href="#violazioni">Gestione delle violazioni e sanzioni</a></li>
<li>
<a class={link} href="#monitoraggio">Monitoraggio, audit e miglioramento continuo</a>
</li>
<li>
<a class={link} href="#documentazione">Documentazione obbligatoria e registri</a>
</li>
<li><a class={link} href="#allegati">Allegati e moduli</a></li>
<li><a class={link} href="#approvazione">Approvazione e contatti utili</a></li>
</ol>
<h2 id="premessa">1. Premessa</h2>
<p>
Questo Codice Etico stabilisce i principi, i doveri e le regole di comportamento che tutti i
soggetti coinvolti in <strong>NexStudio</strong> (di seguito «Società») devono osservare nello
sviluppo, nella commercializzazione e nella gestione di soluzioni SaaS destinate ai settori
legale e medico. Mira a garantire conformità normativa, tutela della privacy, sicurezza,
qualità tecnica, protezione dei diritti degli utenti e responsabilità professionale.
</p>
<h2 id="ambito">2. Ambito di applicazione</h2>
<p>
Si applica a: fondatori, dirigenti, dipendenti (full-time, part-time), collaboratori esterni,
consulenti, appaltatori e fornitori. Copre tutte le attività: analisi, progettazione,
sviluppo, test, rilascio, manutenzione, supporto, marketing, vendite e ricerca.
</p>
<h2 id="valori">3. Valori e principi fondamentali</h2>
<ul>
<li>Integrità, onestà e trasparenza.</li>
<li>Rispetto della dignità umana, inclusione e non discriminazione.</li>
<li>Responsabilità tecnico-professionale e qualità del servizio.</li>
<li>Riservatezza e protezione dei dati personali e sensibili.</li>
<li>Sicurezza e resilienza operativa.</li>
<li>Conformità legale e regolamentare.</li>
<li>Miglioramento continuo e accountability.</li>
</ul>
<h2 id="conformita">4. Conformità normativa specifica (ambito legale e medico)</h2>
<p>La Società osserva, fra gli altri:</p>
<ul>
<li>Thailand Personal Data Protection Act (PDPA).</li>
<li>
Regolamento generale sulla protezione dei dati (GDPR), quando applicabile per utenti o
servizi nellUnione europea.
</li>
<li>
Normative sanitarie e standard locali o internazionali pertinenti (ad esempio requisiti
nazionali per la gestione dei dati clinici, standard ISO rilevanti).
</li>
<li>
Requisiti normativi per dispositivi medici o software medicale (ad esempio EU MDR,
regolamenti locali) se le funzionalità rientrano nella definizione di dispositivo medico.
</li>
<li>
Norme professionali e di segreto professionale per avvocati e operatori sanitari;
rispetto di privilegi professionali (<em>attorneyclient privilege</em>, segreto medico).
</li>
<li>
Se applicabile per mercati esteri: HIPAA per dati sanitari negli Stati Uniti e normative
sullesportazione di dati o tecnologie.
</li>
</ul>
<p>
La Società effettua DPIA (Data Protection Impact Assessment) per trattamenti ad alto rischio e
consulta autorità o <em>regulatory counsel</em> quando necessario.
</p>
<h2 id="tutela-dati">5. Tutela dei dati personali e dati sensibili</h2>
<ul>
<li><strong>Minimizzazione:</strong> raccogliere solo i dati necessari e pertinenti.</li>
<li>
<strong>Base giuridica:</strong> documentare la base legale per ogni trattamento (consenso,
esecuzione del contratto, obbligo legale, interesse legittimo valutato).
</li>
<li>
<strong>Informativa e consenso:</strong> fornire informative chiare e ottenere consensi
quando richiesto; gestire il consenso in modo verificabile.
</li>
<li>
<strong>Classificazione:</strong> definire categorie (PII, dati sanitari, informazioni legali
privilegiate) e applicare misure differenziate.
</li>
<li>
<strong>Conservazione e cancellazione:</strong> politiche di retention documentate;
anonimizzazione o cancellazione al termine delle finalità.
</li>
<li>
<strong>Trasferimenti internazionali:</strong> valutare basi legali (clausole contrattuali
standard, decisioni di adeguatezza, misure tecniche) per trasferimenti fuori dalla
Thailandia.
</li>
<li>
<strong>Diritti degli interessati:</strong> procedure per accesso, rettifica, cancellazione,
limitazione, portabilità e opposizione, con tempi e log documentati.
</li>
<li>
<strong>Sub-processori:</strong> contratti che impongono misure di sicurezza equivalenti,
obblighi di notifica in caso di violazione (<em>breach</em>) e divieti di ulteriori
sub-affidamenti non autorizzati.
</li>
</ul>
<h2 id="sicurezza">6. Sicurezza dellinformazione e resilienza operativa</h2>
<ul>
<li>
<strong>Security by design</strong> e <strong>privacy by design:</strong> integrazione di
sicurezza e privacy nel ciclo di vita del prodotto.
</li>
<li>
<strong>Controlli di accesso:</strong> principio del privilegio minimo, MFA obbligatorio per
accesso a risorse sensibili, gestione centralizzata delle identità.
</li>
<li>
<strong>Crittografia:</strong> cifratura a riposo e in transito con algoritmi aggiornati;
gestione sicura delle chiavi.
</li>
<li>
<strong>Logging e monitoraggio:</strong> log immutabili per accessi e operazioni su dati
sensibili e ambienti di produzione.
</li>
<li>
<strong>Vulnerability management:</strong> scansioni automatiche, penetration test
periodici, processo di patching e programma di responsible disclosure o bug bounty.
</li>
<li>
<strong>Continuità operativa e disaster recovery:</strong> piani testati regolarmente con
RTO/RPO definiti.
</li>
<li>
<strong>Gestione incidenti:</strong> playbook documentato (identificazione, containment,
eradicazione, recovery, post-mortem), ruoli e tempi di notifica interni ed esterni.
</li>
</ul>
<h2 id="qualita">7. Qualità del software, validazione clinica e rischio per gli utenti</h2>
<ul>
<li>
<strong>Standard di sviluppo:</strong> codice leggibile, test automatici, code review
obbligatorie, CI/CD sicuro.
</li>
<li>
<strong>Test e copertura:</strong> definire copertura minima per componenti critici; test di
integrazione, performance e sicurezza.
</li>
<li>
<strong>Validazione clinica:</strong> per funzionalità che assistono decisioni cliniche o
legali, procedere a validazione con esperti (clinici e legali), studi pilota, documentazione
di limitazioni e avvertenze.
</li>
<li>
<strong>Classificazione del rischio:</strong> valutare impatto su salute o diritti e
applicare misure di mitigazione proporzionate.
</li>
<li>
<strong>Non sostituzione del professionista:</strong> la piattaforma fornisce supporto e
strumenti informativi; non si presenta come sostitutiva di pareri professionali senza
esplicita supervisione e avallo professionale.
</li>
<li>
<strong>Registri ed evidenze:</strong> mantenere documentazione di test clinici, valutazioni
di rischio e approvazioni regolatorie.
</li>
</ul>
<h2 id="proprieta-intellettuale">8. Proprietà intellettuale e uso di componenti esterni</h2>
<ul>
<li>
I contributi di dipendenti e consulenti inerenti a software, documentazione e know-how sono
di proprietà della Società, salvo diverso accordo scritto.
</li>
<li>
<strong>Open source:</strong> mantenere SBOM (Software Bill of Materials), verificare la
compatibilità delle licenze, rispettare obblighi di disclosure e aggiornamento delle patch.
</li>
<li>
Divieto di uso non autorizzato di codice o proprietà intellettuale di terzi; gestione dei
rischi di contaminazione IP.
</li>
</ul>
<h2 id="ai-ml">9. Uso responsabile di AI/ML e automazione</h2>
<ul>
<li>Documentare dataset di training, provenienza, pre-elaborazione e limiti noti.</li>
<li>
<strong>Bias assessment:</strong> condurre analisi per identificare e mitigare pregiudizi
che possano discriminare o causare danni.
</li>
<li>
<strong>Supervisione umana:</strong> per decisioni che influenzano salute, procedimenti
legali o diritti fondamentali, prevedere supervisione umana e avvisi chiari sui limiti del
sistema.
</li>
<li>
<strong>Explainability e responsabilità:</strong> fornire informazioni comprensibili su
come i modelli supportano le decisioni e su prestazioni e affidabilità.
</li>
<li>
<strong>Monitoraggio post-release:</strong> misurare le prestazioni in produzione e
correggere drift o comportamenti inattesi.
</li>
</ul>
<h2 id="conflitti">10. Conflitti di interesse e integrità commerciale</h2>
<ul>
<li>
Dichiarazione obbligatoria di conflitti reali o potenziali (investimenti, relazioni con
fornitori o clienti).
</li>
<li>Politiche anticorruzione e anti-tangenti conformi a leggi nazionali e internazionali.</li>
<li>
Comunicazioni commerciali veritiere; non ingannare su capacità, approvazioni regolatorie o
risultati.
</li>
<li>
Trasparenza contrattuale: SLA, limitazioni di responsabilità e condizioni duso chiare e
accessibili.
</li>
</ul>
<h2 id="linee-operative">11. Linee operative: sviluppo, rilascio e gestione vulnerabilità</h2>
<ul>
<li>
<strong>Sviluppo:</strong> strategia di branch, code review obbligatoria, merge solo con CI
positiva, checklist pre-release (sicurezza, privacy, compliance).
</li>
<li>
<strong>Ambiente di test:</strong> uso di dati sintetici o anonimizzati; accesso a dati
reali solo su base minima e autorizzata, in ambienti isolati.
</li>
<li>
<strong>Deployment:</strong> CI/CD standardizzato con piano di rollback e rilasci graduali
per funzionalità critiche.
</li>
<li>
<strong>Gestione vulnerabilità:</strong> canale pubblico o privato per segnalazioni (bug
bounty o indirizzo dedicato <em>security@</em>), conferma di ricezione entro 72 ore, piano di
remediation con tempi stimati.
</li>
<li>
<strong>Patch management:</strong> tempi di rilascio delle patch definiti in base alla
severità.
</li>
<li>
<strong>Documentazione di rilascio:</strong> changelog, impatti noti e raccomandazioni
operative.
</li>
</ul>
<h2 id="governance">12. Governance, ruoli e responsabilità</h2>
<ul>
<li><strong>Board / fondatori:</strong> approvano le politiche, definiscono strategia e risorse.</li>
<li><strong>CEO:</strong> responsabilità complessiva di conformità e governance.</li>
<li><strong>CTO:</strong> qualità tecnica, architettura e pratiche di sviluppo.</li>
<li>
<strong>CISO / responsabile sicurezza:</strong> sicurezza operativa, risposta agli incidenti,
gestione delle vulnerabilità.
</li>
<li>
<strong>DPO / referente privacy:</strong> conformità PDPA e GDPR, DPIA, gestione richieste
degli interessati.
</li>
<li>
<strong>Legal &amp; compliance:</strong> supervisione legale, contratti e valutazioni
regolatorie.
</li>
<li><strong>HR:</strong> formazione, codice di condotta e gestione disciplinare.</li>
<li>
<strong>Team lead / PM:</strong> applicano le policy operative e garantiscono conformità
quotidiana.
</li>
<li>
<strong>Comitato etico (consigliato):</strong> gruppo multidisciplinare per valutare casi
complessi (impatti clinici o legali, conflitti), con riunioni periodiche e su richiesta.
</li>
</ul>
<h2 id="onboarding">13. Onboarding, formazione e certificazione</h2>
<ul>
<li>
Onboarding obbligatorio su: sicurezza informatica, privacy (PDPA e GDPR), gestione dati
sensibili, normative mediche e legali rilevanti, uso responsabile dellAI, pratiche di coding
sicuro.
</li>
<li>Formazione annuale obbligatoria e formazione aggiuntiva per ruoli critici.</li>
<li>Registrazione e conservazione dei record di formazione.</li>
</ul>
<h2 id="segnalazioni">14. Segnalazioni, protezione del segnalante e investigazioni</h2>
<ul>
<li>
<strong>Canali:</strong> almeno un canale confidenziale interno (es. <a
class={link}
href="mailto:ethics@nexstudio.com">ethics@nexstudio.com</a
>), piattaforma anonima esterna o servizio terzo; contatto per escalation indipendente.
</li>
<li>
<strong>Protezione:</strong> divieto di ritorsioni; misure disciplinari per ritorsioni
comprovate.
</li>
<li>
<strong>Indagini:</strong> condotte in modo imparziale, documentato e con tempi definiti;
comunicazione dei risultati alla persona segnalante e alle parti interessate, nei limiti
della riservatezza.
</li>
</ul>
<h2 id="violazioni">15. Gestione delle violazioni e sanzioni</h2>
<ul>
<li>
Azioni proporzionate alla gravità: formazione correttiva, richiamo, riassegnazione,
sospensione, risoluzione del rapporto contrattuale, azioni legali se necessario.
</li>
<li>Registro delle infrazioni e delle azioni intraprese; diritto di difesa dellinteressato.</li>
</ul>
<h2 id="monitoraggio">16. Monitoraggio, audit e miglioramento continuo</h2>
<ul>
<li>Audit interni ed esterni regolari su sicurezza, privacy, compliance e controllo qualità.</li>
<li>
<strong>KPI (esempi):</strong> numero di incidenti, tempo medio di remediation, percentuale
di copertura dei test, percentuale di formazione completata, tempo medio di risposta alle
segnalazioni.
</li>
<li>
Revisione del Codice: almeno annuale o in caso di cambiamenti normativi, tecnologici o di
mercato.
</li>
</ul>
<h2 id="documentazione">17. Documentazione obbligatoria e registri</h2>
<p>La Società mantiene e aggiorna, tra laltro:</p>
<ul>
<li>registro dei trattamenti e DPIA;</li>
<li>SBOM e inventario dei componenti (open source);</li>
<li>log di accesso e audit trail;</li>
<li>registro incidenti e violazioni dei dati;</li>
<li>contratti con fornitori e sub-processori;</li>
<li>record di formazione e dichiarazioni di adesione al Codice.</li>
</ul>
<h2 id="allegati">18. Allegati e moduli (inclusi)</h2>
<ul>
<li>Dichiarazione personale di adesione al Codice (da firmare in onboarding).</li>
<li>Template NDA e clausole minime per fornitori e sub-processori.</li>
<li>Checklist pre-release (security e privacy).</li>
<li>Flowchart gestione incidenti e template di notifica.</li>
<li>Modello DPIA semplificato ed esempio compilato.</li>
<li>Modello informativa privacy e modulo consenso per utenti o pazienti.</li>
<li>Template SBOM.</li>
<li>Policy di retention dei dati (tempi e giustificazioni).</li>
<li>Template per valutazione dimpatto AI/ML.</li>
</ul>
<h2 id="approvazione">19. Approvazione e contatti utili</h2>
<ul>
<li>
<strong>Approvato da:</strong> organo competente / amministratore delegato (nome e cognome
alla firma).
</li>
<li>
<strong>Responsabile aggiornamenti:</strong> Legal &amp; compliance, con supporto di DPO
e CISO.
</li>
<li>
<strong>Revisione:</strong> minimo annuale o a fronte di mutamenti rilevanti.
</li>
</ul>
<p class="font-medium text-nx-fg">Contatti</p>
<ul>
<li>
DPO / referente privacy: <a class={link} href="mailto:privacy@nexstudio.com"
>privacy@nexstudio.com</a
>
</li>
<li>
Security / incident response: <a class={link} href="mailto:security@nexstudio.com"
>security@nexstudio.com</a
>
</li>
<li>
Segnalazioni confidenziali: <a class={link} href="mailto:ethics@nexstudio.com"
>ethics@nexstudio.com</a
>
(o link a piattaforma anonima dedicata)
</li>
<li>
Legal: <a class={link} href="mailto:legal@nexstudio.com">legal@nexstudio.com</a>
</li>
<li>HR: <a class={link} href="mailto:hr@nexstudio.com">hr@nexstudio.com</a></li>
</ul>
<h2 id="clausola-adesione">Clausola finale di adesione (da firmare in onboarding)</h2>
<p>
Dichiaro di aver letto e compreso il Codice Etico di <strong>NexStudio</strong> e mi impegno a
rispettarne i principi e le procedure. Mi impegno inoltre a segnalare, in buona fede, eventuali
violazioni di cui dovessi venire a conoscenza.
</p>
<p class="mt-4 text-nx-fg">
Firma: <span class="inline-block min-w-[12rem] border-b border-nx-border"> </span>
<span class="mx-3 text-nx-muted">·</span>
Data: <span class="inline-block min-w-[6rem] border-b border-nx-border"> </span>
</p>
<h2 id="note-pratiche">Note pratiche e prossimi passi consigliati</h2>
<ul>
<li>
Personalizzare il documento con il nome ufficiale della società (se diverso dal marchio
operativo), firme e riferimenti legali locali a Bangkok.
</li>
<li>
Allegare i template elencati come documenti separati e implementare i canali tecnici per
segnalazioni e bug bounty.
</li>
<li>
Predisporre un piano di formazione di 90 giorni per lonboarding e formazione ricorrente
annuale.
</li>
<li>
Eseguire DPIA per i trattamenti sanitari e legali critici e verificare se parti del prodotto
rientrano nella definizione di dispositivo medico ai fini di registrazione o approvazione
normativa.
</li>
</ul>
<h2>Collegamenti</h2>
<p>
<a class={link} href="/modello-organizzativo">Modello organizzativo</a>
<span class="text-nx-muted"> · </span>
<a class={link} href="/about">Chi siamo</a>
<span class="text-nx-muted"> · </span>
<a class={link} href="#indice">Torna allindice</a>
</p>
</div>
</SubpageLayout>

472
src/pages/cookies.astro Normal file
View File

@ -0,0 +1,472 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
import { cookieConsentMeta, cookieCategories } from '../data/cookie-consent';
const link = 'text-sky-400/90 underline-offset-2 hover:text-sky-300 hover:underline';
const tbl = 'mt-4 w-full border-collapse text-left text-sm';
const th = 'border border-nx-border bg-nx-surface/60 px-3 py-2 font-semibold text-nx-fg';
const td = 'border border-nx-border px-3 py-2 align-top text-nx-muted';
---
<SubpageLayout
title="Cookie Policy — NexStudio"
description="Cookie Policy NexStudio: categorie, base giuridica, consenso, terze parti, diritti e contatti. Sede Bangkok."
heading="Cookie Policy"
lead="Per NexStudio — sede: Bangkok, Thailandia. Versione documento 1.0, in vigore dal 21 aprile 2026. Integra luso del modulo di consenso first-party descritto sotto; per il trattamento dei dati personali vedi lInformativa privacy."
>
<div class="[&_h3]:mt-6 [&_h3]:text-base [&_h3]:font-semibold [&_h3]:text-nx-fg">
<p class="border-l-2 border-sky-500/35 pl-4 text-sm leading-relaxed text-nx-muted">
<span class="font-medium text-nx-fg">Versione</span> 1.0
<span class="text-nx-muted/80"> · </span>
<span class="font-medium text-nx-fg">In vigore dal</span> 21 aprile 2026
<span class="text-nx-muted/80"> · </span>
<span class="font-medium text-nx-fg">Versione tecnica consenso</span>{' '}
<code class="rounded bg-nx-elevated px-1.5 py-0.5 font-mono text-xs text-sky-300/90"
>v{cookieConsentMeta.policyVersion}</code
>
</p>
<h2 id="indice" class="!mt-8">Indice</h2>
<ol class="!mt-3 list-decimal space-y-1.5 pl-5 text-sm leading-relaxed sm:text-base">
<li><a class={link} href="#premessa">Premessa</a></li>
<li><a class={link} href="#definizioni">Definizioni</a></li>
<li><a class={link} href="#finalita">Finalità dei cookie e categorie</a></li>
<li><a class={link} href="#elenco">Elenco dei cookie (modello da compilare)</a></li>
<li><a class={link} href="#sanitario-legale">Base giuridica e ambito sanitario/legale</a></li>
<li><a class={link} href="#consenso">Modalità di raccolta del consenso e registro</a></li>
<li><a class={link} href="#revoca">Gestione e revoca del consenso</a></li>
<li><a class={link} href="#browser">Disabilitazione via browser e impatto</a></li>
<li><a class={link} href="#terze-parti">Cookie di terze parti e responsabilità</a></li>
<li><a class={link} href="#retention">Conservazione e criteri di retention</a></li>
<li><a class={link} href="#trasferimenti">Trasferimenti internazionali</a></li>
<li><a class={link} href="#minori">Minori età</a></li>
<li><a class={link} href="#sicurezza">Misure di sicurezza</a></li>
<li><a class={link} href="#advertising">Consenso per scopi pubblicitari e profiling</a></li>
<li><a class={link} href="#effetti">Effetti di rifiuto o accettazione</a></li>
<li><a class={link} href="#modifiche">Modifiche alla Cookie Policy</a></li>
<li><a class={link} href="#diritti">Diritti degli interessati e contatti</a></li>
<li><a class={link} href="#appendice-tabella">Registro dei cookie (appendice)</a></li>
<li><a class={link} href="#implementazione">Implementazione tecnica e strumenti</a></li>
<li><a class={link} href="#test-qc">Test e controllo qualità</a></li>
<li><a class={link} href="#banner-testi">Esempio di testi per il banner (IT / EN)</a></li>
<li><a class={link} href="#note-legali">Note legali</a></li>
<li><a class={link} href="#versioning">Versioning e storico revisioni</a></li>
</ol>
<h2 id="premessa">1. Premessa</h2>
<p>
Questa Cookie Policy descrive le tipologie di cookie e tecnologie simili utilizzate sul sito
web di <strong>NexStudio</strong> (di seguito «Società», «noi»), con sede a Bangkok,
Thailandia, e spiega come gestire le preferenze. Per il trattamento dei dati personali e per i
diritti degli interessati si rimanda all<a class={link} href="/privacy"
>Informativa privacy</a
>.
</p>
<h2 id="definizioni">2. Definizioni</h2>
<ul>
<li>
<strong>Cookie:</strong> piccolo file di testo inviato dal sito al browser e memorizzato sul
dispositivo, re-inviato al sito alle visite successive.
</li>
<li>
<strong>Cookie di prima parte:</strong> impostati dal dominio del sito che lutente visita.
</li>
<li>
<strong>Cookie di terze parti:</strong> impostati da domini diversi (fornitori esterni,
embed, CDN, strumenti di misura).
</li>
<li>
<strong>Tecnologie simili:</strong> web beacon, pixel, <em>local storage</em>, e in generale
identificatori lato client. Tecnologie invasive (es. fingerprinting) richiedono base legale
adeguata e massima trasparenza.
</li>
</ul>
<h2 id="finalita">3. Finalità dei cookie e categorie</h2>
<p>I cookie sul sito possono essere raggruppati come segue.</p>
<h3>3.1 Cookie strettamente necessari (essenziali)</h3>
<ul>
<li>
<strong>Finalità:</strong> navigazione, sicurezza, gestione sessione ove prevista,
memorizzazione delle preferenze di consenso.
</li>
<li>
<strong>Base giuridica:</strong> esecuzione di misure precontrattuali / necessità tecnica e,
ove applicabile, interesse legittimo limitato al funzionamento del servizio richiesto
dallutente.
</li>
<li>
<strong>Esempi tipici:</strong> token di sessione, cookie anti-CSRF, chiave di consenso in
<em>local storage</em> (se usata al posto di cookie HTTP).
</li>
</ul>
<h3>3.2 Cookie di preferenza / funzionali</h3>
<ul>
<li>
<strong>Finalità:</strong> lingua, regione, tema o altre impostazioni di interfaccia non
strettamente indispensabili.
</li>
<li><strong>Base giuridica:</strong> consenso, salvo trattamenti minimi e non invasivi.</li>
<li><strong>Esempi:</strong> <code class="font-mono text-xs text-sky-300/90">lang</code>, preferenze UI.</li>
</ul>
<h3>3.3 Cookie di performance / analytics</h3>
<ul>
<li>
<strong>Finalità:</strong> statistiche aggregate su visite e percorsi per migliorare il
sito.
</li>
<li>
<strong>Base giuridica:</strong> consenso, salvo misurazione strettamente anonimizzata e
non identificativa secondo orientamenti applicabili.
</li>
<li>
<strong>Esempi:</strong> <code class="font-mono text-xs text-sky-300/90">_ga</code>, <code
class="font-mono text-xs text-sky-300/90">_gid</code
> (Google Analytics), strumenti tipo Hotjar, se integrati.
</li>
</ul>
<h3>3.4 Cookie per advertising e targeting</h3>
<ul>
<li>
<strong>Finalità:</strong> pubblicità mirata, remarketing, misura delle campagne.
</li>
<li><strong>Base giuridica:</strong> consenso esplicito.</li>
<li>
<strong>Esempi:</strong> identificatori di reti pubblicitarie, pixel di retargeting, cookie
DSP.
</li>
</ul>
<h3>3.5 Cookie di terze parti e integrazioni social</h3>
<ul>
<li>
<strong>Finalità:</strong> video incorporati, pulsanti social, mappe, chat di terze parti.
</li>
<li>
<strong>Nota:</strong> il trattamento da parte di terzi è regolato dalle rispettive policy;
NexStudio non controlla cookie impostati senza adeguata configurazione e consenso.
</li>
</ul>
<h2 id="elenco">4. Elenco dei cookie utilizzati (modello da compilare)</h2>
<p>
Per ogni cookie reale indicare: nome, fornitore, categoria, finalità, durata, prima o terza
parte, base giuridica, link alla privacy del fornitore e, se utile, opt-out.
</p>
<p>
La tabella sotto è <strong>esemplificativa</strong>: va sostituita con linventario aggiornato
(ideale: hash o versione e data di aggiornamento in calce alla tabella pubblicata).
</p>
<table class={tbl}>
<thead>
<tr>
<th class={th}>Nome</th>
<th class={th}>Provider</th>
<th class={th}>Categoria</th>
<th class={th}>Durata</th>
<th class={th}>Tipo</th>
<th class={th}>Base giuridica</th>
</tr>
</thead>
<tbody>
<tr>
<td class={td}><code class="font-mono text-xs">_ga</code> (es.)</td>
<td class={td}>Google LLC</td>
<td class={td}>Analytics</td>
<td class={td}>24 mesi (tipico)</td>
<td class={td}>3rd</td>
<td class={td}>Consenso</td>
</tr>
<tr>
<td class={td}>
<code class="font-mono text-xs">{cookieConsentMeta.storageKey}</code> (non cookie HTTP)
</td>
<td class={td}>NexStudio</td>
<td class={td}>Necessario</td>
<td class={td}>Fino a revoca / aggiornamento policy</td>
<td class={td}>1st (local)</td>
<td class={td}>Necessario / consenso informato</td>
</tr>
<tr>
<td class={td}><code class="font-mono text-xs">_fbp</code> (es.)</td>
<td class={td}>Meta</td>
<td class={td}>Advertising</td>
<td class={td}>90 giorni (tipico)</td>
<td class={td}>3rd</td>
<td class={td}>Consenso</td>
</tr>
</tbody>
</table>
<h2 id="sanitario-legale">5. Base giuridica e trattamento in ambito sanitario o legale</h2>
<ul>
<li>
Per cookie che comportano trattamento di dati particolari (salute, dati giudiziari o
assimilabili) è richiesto <strong>consenso esplicito</strong> informato e misure tecniche e
organizzative aggiuntive, salvo diversa base prevista dalla legge applicabile.
</li>
<li>
Nei servizi SaaS medico-legali la raccolta tramite cookie sul sito vetrina è da
<strong>limitare e segregare</strong>; per test e analytics privilegiare dati sintetici o
anonimizzazione efficace.
</li>
</ul>
<h2 id="consenso">6. Modalità di raccolta del consenso e registro</h2>
<p>
Il sito utilizza una <strong>CMP first-party</strong> sviluppata per NexStudio, orientata ai
requisiti di trasparenza e granularità (inclusi riferimenti GDPR e PDPA tailandese come quadro
di riferimento per le descrizioni). Al primo accesso, o dopo aumento della versione della
policy tecnica, viene mostrato un banner con:
</p>
<ul>
<li><strong>Rifiuta non essenziali</strong></li>
<li><strong>Personalizza</strong> (apertura pannello categorie)</li>
<li><strong>Accetta tutto</strong></li>
</ul>
<p>
La prova della scelta è memorizzata nel browser in <em>local storage</em> alla chiave{' '}
<code class="rounded bg-nx-elevated px-1.5 py-0.5 font-mono text-xs text-sky-300/90"
>{cookieConsentMeta.storageKey}</code
>, con versione <code class="rounded bg-nx-elevated px-1.5 py-0.5 font-mono text-xs text-sky-300/90"
>v{cookieConsentMeta.policyVersion}</code
>, timestamp di aggiornamento e stato per categoria. I cookie strettamente necessari possono
restare attivi compatibilmente con informativa chiara. Per audit avanzati si può integrare in
futuro un log lato server (IP, user-agent, ID sessione) con informativa dedicata.
</p>
<p class="font-medium text-nx-fg">Categorie gestite dal modulo attuale</p>
<ul>
{
cookieCategories.map((c) => (
<li>
<strong class="text-nx-fg">{c.label}</strong>
{c.required ? ' — sempre attiva.' : ' — attiva solo se accettata.'}{' '}
{c.description}
</li>
))
}
</ul>
<p>
Il codice espone <code class="rounded bg-nx-elevated px-1.5 py-0.5 font-mono text-xs text-sky-300/90"
>window.NexStudioCookieConsent</code
> e levento <code class="rounded bg-nx-elevated px-1.5 py-0.5 font-mono text-xs text-sky-300/90"
>nexstudio:cookie-consent</code
> per caricare script non necessari solo dopo consenso.
</p>
<h2 id="revoca">7. Gestione e revoca del consenso</h2>
<ul>
<li>Tramite il banner o il pannello <strong>Personalizza</strong> al primo accesso.</li>
<li>
In qualsiasi momento tramite <strong>Impostazioni cookie</strong> nel footer del sito (sotto
le colonne di navigazione).
</li>
<li>
Cancellando i dati locali del sito dalle impostazioni del browser (inclusa la voce di{' '}
<em>local storage</em> citata sopra): al successivo caricamento il banner si ripresenta.
</li>
</ul>
<p>
Dopo la revoca non devono essere impostati cookie non essenziali; alcune funzioni (es.
preferenze memorizzate, statistiche) possono risultare limitate.
</p>
<h2 id="browser">8. Disabilitazione via browser e impatto</h2>
<p>
È possibile bloccare o cancellare i cookie dalle impostazioni del browser (Chrome, Firefox,
Safari, Edge e altri). Disabilitando i cookie possono smettere di funzionare login, preferenze
o strumenti che ne dipendono.
</p>
<h2 id="terze-parti">9. Cookie di terze parti e responsabilità</h2>
<p>
Il sito può integrare strumenti di terze parti (analytics, CDN, social, gateway di pagamento,
video). Le terze parti possono impostare cookie propri e trattare dati secondo le loro policy.
</p>
<p>
<strong>Esempi di fornitori</strong> spesso usati in contesti analoghi (elenco da adattare al
sito reale): Google Analytics, Google Tag Manager, Cloudflare, Stripe, Vimeo, YouTube, Meta,
LinkedIn, Hotjar. Per ciascuno vanno indicati link a privacy/cookie policy e strumenti di
opt-out ove disponibili.
</p>
<h2 id="retention">10. Conservazione e criteri di retention</h2>
<ul>
<li>
Le durate dei singoli cookie seguono le tabelle pubblicate e le policy dei fornitori (es.
finestra indicativa <strong>24 mesi</strong> per dati aggregati di analytics, salvo obblighi
di legge o contratto diversi — da confermare con il legale).
</li>
<li>
Prove di consenso e gestione DSR: periodi di conservazione da definire nella retention
policy (orientamento comune per documentazione di conformità: <strong
>37 anni</strong
>, da calibrare su base legale e rischio — non vincolante in questa pagina).
</li>
</ul>
<h2 id="trasferimenti">11. Trasferimenti internazionali</h2>
<p>
Alcuni fornitori possono trattare dati in Paesi terzi (es. Stati Uniti). Ove applicabile si
adottano garanzie come clausole contrattuali standard, decisioni di adeguatezza o altre basi
previste dalla legge. Per dettagli su trasferimenti specifici contattare il referente privacy
indicato sotto.
</p>
<h2 id="minori">12. Minori età</h2>
<p>
Il sito non è rivolto alla raccolta intenzionale di dati di minori. Per utenti sotto la soglia
prevista dalla legge locale, i trattamenti non essenziali richiedono consenso del titore
della responsabilità genitoriale ove imposto dalla normativa applicabile.
</p>
<h2 id="sicurezza">13. Misure di sicurezza</h2>
<p>
Si applicano misure tecniche e organizzative appropriate: trasmissione su TLS, accesso
limitato ai log, principio di minimizzazione, monitoraggio anomalie ove in uso.
</p>
<h2 id="advertising">14. Consenso per scopi pubblicitari e profiling</h2>
<p>
Profilazione e pubblicità comportano <strong>consenso esplicito</strong> e tracciabilità
della scelta. Ove si usino reti pubblicitarie, fornire link agli strumenti di opt-out del
fornitore (es. impostazioni annunci Google).
</p>
<h2 id="effetti">15. Effetti di rifiuto o accettazione</h2>
<ul>
<li>
<strong>Accettando</strong> le categorie opzionali si abilitano preferenze avanzate,
analytics e, se configurate, funzioni di marketing.
</li>
<li>
<strong>Rifiutando</strong> i non essenziali il sito resta navigabile con funzioni core; le
altre possono essere limitate.
</li>
</ul>
<h2 id="modifiche">16. Modifiche alla Cookie Policy</h2>
<p>
La Policy può essere aggiornata quando cambiano cookie, fornitori o norme. Sarà indicata la
data di revisione; ove richiesto dalla legge o dallimpatto del cambiamento, si richiederà un
nuovo consenso (incrementando la versione tecnica nel modulo).
</p>
<h2 id="diritti">17. Diritti degli interessati e contatti</h2>
<p>
Diritti: accesso, rettifica, cancellazione, limitazione, portabilità, opposizione e revoca del
consenso ove previsti. Per esercitarli: <a class={link} href="mailto:privacy@nexstudio.com"
>privacy@nexstudio.com</a
> (DPO o referente privacy, da formalizzare).
</p>
<h2 id="appendice-tabella">18. Registro dei cookie e informazioni tecniche (appendice)</h2>
<p>
Pubblicare qui la tabella completa con colonne: nome, provider, categoria, descrizione
tecnica, durata, 1st/3rd, link opt-out, link privacy, note (GTM, embed, CDN, ecc.).
</p>
<table class={tbl}>
<thead>
<tr>
<th class={th}>Nome</th>
<th class={th}>Provider</th>
<th class={th}>Categoria</th>
<th class={th}>Scopo / durata</th>
<th class={th}>Note</th>
</tr>
</thead>
<tbody>
<tr>
<td class={td} colspan="5">
<em>Da compilare dopo scansione del sito in staging e produzione.</em>
</td>
</tr>
</tbody>
</table>
<h2 id="implementazione">19. Implementazione tecnica e strumenti</h2>
<ul>
<li>
<strong>CMP:</strong> modulo first-party NexStudio (nessun OneTrust/Cookiebot obbligatorio
in questa build); estensibile verso CMP commerciali se richiesto da clienti o policy
aziendale.
</li>
<li>
<strong>Log consenso:</strong> attualmente payload JSON in <em>local storage</em> con
versione policy, timestamp ISO e booleani per categoria; valutare integrazione server-side
per audit e correlazione sessione.
</li>
<li>
<strong>Banner:</strong> testo breve, link a questa Cookie Policy, tre azioni come da §6.
</li>
<li>
<strong>Sviluppo:</strong> caricare script di analytics, marketing o embed solo dopo lettura
del consenso tramite API/evento sopra citati.
</li>
</ul>
<h2 id="test-qc">20. Test e controllo qualità</h2>
<ul>
<li>Scansione periodica del sito per elenco cookie (strumenti automatici + revisione manuale).</li>
<li>Allineamento tra tabella pubblicata, CMP e script effettivamente caricati.</li>
<li>Audit trimestrale delle terze parti e aggiornamento categorie/testi.</li>
</ul>
<h2 id="banner-testi">21. Esempio di testi per il banner (IT / EN)</h2>
<ul>
<li>
<strong>Italiano (allineato al sito):</strong> «Utilizziamo cookie e memorizzazione locale.
Seleziona le categorie che preferisci. I necessari restano attivi per registrare la tua
scelta. Dettagli nellinformativa cookie.» — pulsanti: <strong>Rifiuta non essenziali</strong
>, <strong>Personalizza</strong>, <strong>Accetta tutto</strong>.
</li>
<li>
<strong>English (per versione bilingue futura):</strong> «We use cookies and local storage.
Choose the categories you prefer. Necessary ones stay on to record your choice. See our
cookie policy.» — <strong>Reject non-essential</strong>, <strong>Customize</strong>, <strong
>Accept all</strong
>.
</li>
</ul>
<h2 id="note-legali">22. Note legali</h2>
<p>
Questa Cookie Policy <strong>integra ma non sostituisce</strong> lInformativa privacy. Per
aspetti di trattamento dei dati personali collegati ai cookie fare riferimento anche a{' '}
<a class={link} href="/gdpr">GDPR</a> / documenti privacy pubblicati e al counsel locale per
Thailandia, UE o altri mercati serviti.
</p>
<h2 id="versioning">23. Versioning e storico revisioni</h2>
<ul>
<li><strong>Versione 1.0</strong> — 21 aprile 2026 — Prima pubblicazione strutturata.</li>
</ul>
<h2>Appendice: checklist tecnica per il rilascio</h2>
<ul class="list-none space-y-2 pl-0 [&_li]:flex [&_li]:gap-2">
<li><span class="text-nx-muted">☐</span> Scansione cookie completa e tabella aggiornata</li>
<li><span class="text-nx-muted">☐</span> CMP e prova consenso / revoca funzionanti</li>
<li><span class="text-nx-muted">☐</span> Traduzioni banner (es. EN / TH) se richieste dal mercato</li>
<li><span class="text-nx-muted">☐</span> Script non essenziali bloccati fino a consenso</li>
<li><span class="text-nx-muted">☐</span> Tabella cookie con metadati e versioning pubblico</li>
<li><span class="text-nx-muted">☐</span> Procedure DSR e revoca collegate dallinformativa privacy</li>
<li><span class="text-nx-muted">☐</span> Link a privacy e contatti DPO/referente nel footer</li>
</ul>
<h2>Collegamenti</h2>
<p>
<a class={link} href="/privacy">Informativa privacy</a>
<span class="text-nx-muted"> · </span>
<a class={link} href="/codice-etico">Codice etico</a>
<span class="text-nx-muted"> · </span>
<a class={link} href="/modello-organizzativo">Modello organizzativo</a>
<span class="text-nx-muted"> · </span>
<a class={link} href="#indice">Torna allindice</a>
</p>
</div>
</SubpageLayout>

View File

@ -0,0 +1,34 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
---
<SubpageLayout
title="Dove siamo — NexStudio"
description="Sede operativa e contatti NexStudio."
heading="Dove siamo"
lead="Sede operativa a Bangkok (Thailandia). Completate lindirizzo, i recapiti e gli orari di riferimento per il pubblico."
>
<h2>Sede</h2>
<p>
NexStudio opera con base operativa a <strong>Bangkok</strong>, in
Thailandia. Inserite qui indirizzo completo, eventuale sede legale in altro
Stato, e se il rapporto con i clienti avviene prevalentemente da remoto.
</p>
<h2>Fusi orari e lingue</h2>
<p>
Il sito e il supporto via web possono essere gestiti in italiano, inglese,
tedesco, francese, spagnolo e tailandese, con orari da concordare in base
al team e al fuso rispetto ai clienti in Europa e altre regioni.
</p>
<h2>Contatti</h2>
<p>
Per richieste commerciali o tecniche utilizzate la sezione <a
class="text-sky-400/90 hover:text-sky-300"
href="/#contatti">Contatti</a
> sulla homepage (chat e altri canali che attiverete). Aggiungete in questa
pagina email istituzionali, PEC se applicabile, e numeri di telefono solo se
desiderate renderli pubblici.
</p>
</SubpageLayout>

55
src/pages/gdpr.astro Normal file
View File

@ -0,0 +1,55 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
---
<SubpageLayout
title="GDPR — NexStudio"
description="Informazioni sul trattamento dei dati personali ai sensi del Regolamento UE 2016/679 (GDPR)."
heading="GDPR e diritti degli interessati"
lead="Documento provvisorio: integrare riferimenti contrattuali, responsabile della protezione dei dati (DPO) se nominato, e procedure interne."
>
<p>
Il Regolamento (UE) 2016/679 (GDPR) disciplina il trattamento dei dati
personali nel territorio dellUnione. La presente pagina riassume i diritti
riconosciuti agli interessati e come possono esercitarli nei confronti di
NexStudio, senza sostituire linformativa privacy completa.
</p>
<h2>Diritti riconosciuti</h2>
<ul>
<li>Accesso ai propri dati e copia in formato intelligibile</li>
<li>Rettifica di dati inesatti o incompleti</li>
<li>Cancellazione (“diritto alloblio”) nei casi previsti dalla legge</li>
<li>Limitazione del trattamento</li>
<li>Portabilità dei dati forniti con consenso o contratto, ove applicabile</li>
<li>Opposizione al trattamento basato su legittimo interesse o per fini di marketing</li>
<li>Revoca del consenso in qualsiasi momento, senza pregiudicare la liceità del trattamento precedente</li>
<li>Reclamo allautorità di controllo competente</li>
</ul>
<h2>Modalità di esercizio</h2>
<p>
Indicare un canale dedicato (es. email privacy@…, modulo PEC o ticket). Per
richieste generiche potete anche utilizzare la sezione <a
class="text-sky-400/90 hover:text-sky-300"
href="/#contatti">Contatti</a
> sul sito principale, specificando oggetto e dati utili a identificare la
pratica.
</p>
<h2>Trasferimenti extra-UE</h2>
<p>
Se utilizzate fornitori con sede fuori dallo Spazio Economico Europeo,
descrivete garanzie (Clausole contrattuali tipo, decisioni di adeguatezza,
norme vincolanti dimpresa) e il riferimento documentale.
</p>
<h2>Documenti correlati</h2>
<p>
<a class="text-sky-400/90 hover:text-sky-300" href="/privacy"
>Informativa privacy</a
>
·
<a class="text-sky-400/90 hover:text-sky-300" href="/cookies">Informativa cookie</a>
</p>
</SubpageLayout>

618
src/pages/index.astro Normal file
View File

@ -0,0 +1,618 @@
---
import BaseLayout from '../layouts/BaseLayout.astro';
import HeroDataflow from '../components/HeroDataflow.astro';
import DataflowSpine from '../components/DataflowSpine.astro';
import ContactFormInline from '../components/ContactFormInline.astro';
import CardBottomRightTexture from '../components/CardBottomRightTexture.astro';
import SiteFooter from '../components/SiteFooter.astro';
import {
siteMeta,
navigation,
hero,
stats,
services,
stackSection,
productsSection,
faq,
cta,
} from '../data/home';
const techSliderItems = stackSection.techSlider.items;
---
<BaseLayout title={siteMeta.title} description={siteMeta.description}>
<div class="nx-grid-bg relative min-h-screen">
<canvas
id="particleCanvas"
class="nx-particle-layer pointer-events-none"
aria-hidden="true"></canvas>
<div
class="pointer-events-none absolute inset-0 z-[1] bg-[radial-gradient(ellipse_80%_50%_at_50%_-20%,rgba(56,189,248,0.18),transparent)]"
>
</div>
<header
class="sticky top-0 z-50 border-b border-nx-border/40 bg-black"
x-data="{ mobile: false }"
>
<div
class="mx-auto flex max-w-6xl items-center justify-between gap-4 px-4 py-3 sm:px-6"
>
<a href="/" class="group no-underline">
<span
class="text-2xl font-semibold tracking-tight text-nx-fg group-hover:text-white sm:text-3xl"
>{navigation.brandName}</span
>
</a>
<nav
class="hidden items-center gap-8 text-sm md:flex"
aria-label="Principale"
>
{navigation.items.map((item) => {
const sectionId = item.href.includes('#')
? item.href.split('#').pop()!
: '';
return (
<a
class="nx-nav-link"
href={item.href}
data-section={sectionId}
data-nav-active="false"
>
{item.label}
</a>
);
})}
</nav>
<div class="flex items-center gap-2 sm:gap-3">
<button
type="button"
data-nx-chat-open
class="inline-flex cursor-pointer rounded-lg bg-gradient-to-r from-sky-500 to-violet-500 px-4 py-2 text-sm font-semibold text-white shadow-lg shadow-sky-500/25 hover:brightness-110"
title={navigation.cta.linkTitle}
aria-label={navigation.cta.ariaLabel}
>{navigation.cta.label}</button
>
<button
type="button"
class="inline-flex h-10 w-10 items-center justify-center rounded-lg border border-nx-border text-nx-fg md:hidden"
@click="mobile = !mobile"
:aria-expanded="mobile"
aria-controls="mobile-nav"
aria-label="Apri menu"
>
<svg
x-show="!mobile"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
x-cloak
>
<path d="M4 6h16M4 12h16M4 18h16" stroke-linecap="round"></path>
</svg>
<svg
x-show="mobile"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
x-cloak
>
<path d="M6 18L18 6M6 6l12 12" stroke-linecap="round"></path>
</svg>
</button>
</div>
</div>
<div
id="mobile-nav"
x-show="mobile"
x-transition
x-cloak
class="border-b border-nx-border bg-black px-4 py-4 md:hidden"
>
<nav class="flex flex-col gap-3 text-sm" aria-label="Mobile">
{navigation.items.map((item) => {
const sectionId = item.href.includes('#')
? item.href.split('#').pop()!
: '';
return (
<a
class="nx-nav-link block py-1"
href={item.href}
data-section={sectionId}
data-nav-active="false"
@click="mobile = false"
>
{item.label}
</a>
);
})}
</nav>
</div>
</header>
<main class="relative z-[1] isolate">
<DataflowSpine />
<section
id="intro"
class="relative z-10 overflow-hidden px-4 pb-20 pt-16 sm:px-6 sm:pt-24"
>
<div class="nx-hero-ambient" aria-hidden="true">
<div class="nx-hero-ambient__inner">
<HeroDataflow />
</div>
</div>
<div class="relative z-10 mx-auto max-w-6xl">
<p
class="mb-6 inline-flex items-center gap-2 rounded-full border border-nx-border bg-nx-surface/60 px-3 py-1 text-xs font-medium text-sky-300/90"
>
<span
class="h-1.5 w-1.5 rounded-full bg-sky-400 shadow-[0_0_8px_#38bdf8]"></span>
{hero.badge}
</p>
<h1
class="max-w-4xl text-4xl font-semibold leading-[1.1] tracking-tight text-nx-fg sm:text-5xl md:text-6xl"
>
{hero.titleBefore}
<span
class="bg-gradient-to-r from-sky-300 via-cyan-200 to-violet-400 bg-clip-text text-transparent"
>{hero.titleHighlight}</span
>{hero.titleAfter}
</h1>
<p
class="mt-5 max-w-3xl text-lg font-medium leading-relaxed text-sky-100/90 sm:text-xl"
>
{hero.subtitle}
</p>
<div class="mt-8 max-w-3xl space-y-4 text-base leading-relaxed text-nx-muted sm:text-lg">
{hero.paragraphs.map((p) => <p>{p}</p>)}
</div>
<div class="mt-10 max-w-3xl">
<h2 class="text-base font-semibold text-nx-fg sm:text-lg">
{hero.businessUnitsHeading}
</h2>
<p class="mt-2 text-sm leading-relaxed text-nx-muted sm:text-base">
{hero.businessUnitsIntro}
</p>
<ul class="mt-5 space-y-4 border-l border-nx-border pl-5">
{hero.businessUnits.map((u) => (
<li>
<span class="font-semibold text-sky-300/95">{u.name}</span>
<span class="text-nx-muted"> — {u.description}</span>
</li>
))}
</ul>
</div>
</div>
</section>
<section class="relative z-10 px-4 py-6 sm:px-6 sm:py-8">
<div
class="nx-stats-card mx-auto max-w-6xl rounded-2xl border border-nx-border bg-gradient-to-b from-nx-elevated/78 to-nx-surface/68 px-6 py-10 ring-1 ring-inset ring-white/[0.06] sm:px-10 sm:py-12"
>
<div
class="grid grid-cols-1 gap-8 sm:grid-cols-3 sm:gap-8 lg:gap-10"
>
{stats.items.map((item) => (
<div>
<p
class="text-3xl font-semibold tracking-tight text-nx-fg sm:text-4xl"
>
{item.value}
</p>
<p class="mt-1 text-sm leading-relaxed text-nx-muted">
{item.caption}
</p>
</div>
))}
</div>
</div>
</section>
<section id="prodotti" class="relative z-10 px-4 py-20 sm:px-6">
<div class="mx-auto max-w-6xl">
<h2
class="text-sm font-semibold uppercase tracking-wider text-sky-400/90"
>
{productsSection.eyebrow}
</h2>
<p
class="mt-2 text-3xl font-semibold tracking-tight text-nx-fg sm:text-4xl"
>
{productsSection.title}
</p>
<p class="mt-4 max-w-3xl text-base leading-relaxed text-nx-muted sm:text-lg">
{productsSection.lead}
</p>
<div
class="mt-14 grid gap-8 lg:grid-cols-2 lg:gap-10 lg:items-stretch"
>
{productsSection.items.map((product, pi) => (
<article
class:list={[
'flex flex-col rounded-2xl border p-6 sm:p-8',
pi === 0
? 'border-sky-500/25 bg-gradient-to-b from-sky-950/30 to-nx-surface/30'
: 'border-emerald-500/20 bg-gradient-to-b from-emerald-950/25 to-nx-surface/30',
]}
>
<div class="flex flex-wrap items-baseline justify-between gap-2">
<h3 class="text-2xl font-semibold tracking-tight text-nx-fg">
{product.name}
</h3>
<span
class:list={[
'rounded-full px-2.5 py-0.5 text-xs font-medium',
pi === 0
? 'bg-sky-500/15 text-sky-200/95'
: 'bg-emerald-500/15 text-emerald-200/95',
]}
>
{product.badge}
</span>
</div>
<p class="mt-3 text-lg font-medium leading-snug text-nx-fg sm:text-xl">
{product.tagline}
</p>
<p
class:list={[
'mt-2 text-sm font-medium',
pi === 0 ? 'text-sky-200/85' : 'text-emerald-200/85',
]}
>
<span class="text-nx-muted font-normal">Focus — </span>
{product.focus}
</p>
<p class="mt-5 text-sm leading-relaxed text-nx-muted sm:text-base">
{product.body}
</p>
<ul class="mt-6 space-y-4 border-t border-white/10 pt-6">
{product.highlights.map((h) => (
<li>
<p class="text-sm leading-relaxed sm:text-[15px]">
<span
class:list={[
'font-semibold',
pi === 0 ? 'text-sky-200/95' : 'text-emerald-200/95',
]}
>
{h.title}
</span>
<span class="text-nx-muted">
<span class="text-nx-muted/60"> — </span>
{h.text}
</span>
</p>
</li>
))}
</ul>
{'closing' in product && product.closing ? (
<p class="mt-6 border-t border-white/10 pt-6 text-sm italic leading-relaxed text-nx-muted">
{product.closing}
</p>
) : null}
</article>
))}
</div>
</div>
</section>
<section id="servizi" class="relative z-10 px-4 py-20 sm:px-6">
<div class="mx-auto max-w-6xl">
<h2
class="text-sm font-semibold uppercase tracking-wider text-sky-400/90"
>
{services.eyebrow}
</h2>
<p
class="mt-2 max-w-2xl text-3xl font-semibold tracking-tight text-nx-fg sm:text-4xl"
>
{services.title}
</p>
<p class="mt-5 max-w-3xl text-base leading-relaxed text-nx-muted sm:text-lg">
{services.lead}
</p>
<div
class="mt-12 grid gap-4 md:grid-cols-3 md:grid-rows-2 md:gap-5 [&>article]:rounded-2xl [&>article]:border [&>article]:border-nx-border [&>article]:bg-nx-elevated/50 [&>article]:p-6"
>
{services.cards.map((card) => {
const hasGlobe =
'decoration' in card &&
card.decoration === 'wireframe-globe';
return (
<article
class:list={[
card.layout === 'wide' && 'md:col-span-2',
card.layout === 'tall' && 'md:row-span-2',
hasGlobe && 'relative overflow-hidden',
]}
>
{hasGlobe && <CardBottomRightTexture />}
<div class:list={[hasGlobe && 'relative z-10']}>
<h3 class="text-lg font-semibold text-nx-fg">{card.title}</h3>
<p class="mt-2 text-sm leading-relaxed text-nx-muted">
{card.body}
</p>
{'callout' in card && card.callout && (
<div class="mt-4 rounded-xl border border-sky-500/25 bg-sky-950/20 p-4">
<p class="text-sm font-semibold text-sky-200/95">
{card.callout.title}
</p>
<p class="mt-2 text-sm leading-relaxed text-nx-muted">
{card.callout.body}
</p>
</div>
)}
{'bullets' in card && card.bullets && (
<ul class="mt-4 space-y-2 text-sm text-sky-300/90">
{card.bullets.map((b) => (
<li class="flex gap-2">
<span class="text-violet-400">▹</span>
{b}
</li>
))}
</ul>
)}
</div>
</article>
);
})}
</div>
</div>
</section>
<section
id="stack"
class="relative z-10 overflow-hidden border-t border-nx-border bg-nx-surface/30 px-4 py-20 sm:px-6"
>
<div class="mx-auto max-w-6xl">
<h2
class="text-sm font-semibold uppercase tracking-wider text-sky-400/90"
>
{stackSection.eyebrow}
</h2>
<p
class="mt-2 max-w-3xl text-3xl font-semibold tracking-tight text-nx-fg sm:text-4xl"
>
{stackSection.title}
</p>
<p class="mt-5 max-w-3xl text-base leading-relaxed text-nx-muted sm:text-lg">
{stackSection.lead}
</p>
<div
class="relative z-[1] mt-12 flex flex-col gap-8 rounded-2xl border border-orange-500/20 bg-gradient-to-br from-orange-950/20 to-nx-elevated/40 p-6 sm:flex-row sm:items-center sm:gap-10 sm:p-8"
>
<a
href={stackSection.cloudflareBadge.href}
target="_blank"
rel="noopener noreferrer"
class="group flex shrink-0 items-center gap-4 rounded-xl border border-white/10 bg-nx-bg/60 px-5 py-4 transition hover:border-orange-400/35"
>
<img
src={stackSection.cloudflareBadge.iconSrc}
alt={stackSection.cloudflareBadge.iconAlt}
width="48"
height="48"
class="h-12 w-12 shrink-0 brightness-0 invert"
loading="lazy"
decoding="async"
/>
<div>
<p class="text-xs font-medium uppercase tracking-wider text-orange-200/90">
Infrastruttura
</p>
<p class="text-lg font-semibold text-nx-fg group-hover:text-orange-100">
{stackSection.cloudflareBadge.label}
</p>
<p class="mt-0.5 text-xs text-nx-muted">
Rete globale, sicurezza e edge
</p>
</div>
</a>
<div class="min-w-0 flex-1">
<h3 class="text-lg font-semibold text-nx-fg">
{stackSection.cloudflare.title}
</h3>
<p class="mt-2 text-sm leading-relaxed text-nx-muted sm:text-base">
{stackSection.cloudflare.intro}
</p>
</div>
</div>
<ul class="relative z-[1] mt-6 space-y-6">
{stackSection.cloudflare.points.map((item) => (
<li class="border-l-2 border-orange-400/40 pl-5">
<p class="font-semibold text-orange-100/95">{item.title}</p>
<p class="mt-1.5 text-sm leading-relaxed text-nx-muted sm:text-[15px]">
{item.body}
</p>
</li>
))}
</ul>
<div
class="mt-10 rounded-2xl border border-nx-border bg-nx-elevated/50 p-6 sm:p-8"
>
<h3 class="text-lg font-semibold text-nx-fg">
{stackSection.continuity.title}
</h3>
<p class="mt-3 text-sm leading-relaxed text-nx-muted sm:text-base">
{stackSection.continuity.body}
</p>
</div>
<div
class="nx-tech-slider mt-10"
role="region"
aria-label={stackSection.techSlider.ariaLabel}
>
<div class="nx-tech-slider__viewport">
<div class="nx-tech-slider__track">
{techSliderItems.map((item) => (
<a
class="nx-tech-slider__link"
href={item.href}
target="_blank"
rel="noopener noreferrer"
aria-label={item.name}
>
<img
class:list={[
'nx-tech-slider__logo',
item.name === 'HL7 FHIR' && 'nx-tech-slider__logo--fhir',
]}
src={item.iconSrc}
alt=""
width="168"
height="48"
loading="lazy"
decoding="async"
/>
</a>
))}
{techSliderItems.map((item) => (
<a
class:list={['nx-tech-slider__link', 'nx-tech-slider__link--dup']}
href={item.href}
tabindex="-1"
target="_blank"
rel="noopener noreferrer"
aria-hidden="true"
>
<img
class:list={[
'nx-tech-slider__logo',
item.name === 'HL7 FHIR' && 'nx-tech-slider__logo--fhir',
]}
src={item.iconSrc}
alt=""
width="168"
height="48"
loading="lazy"
decoding="async"
/>
</a>
))}
</div>
</div>
</div>
<div class="mt-10">
<h3 class="text-lg font-semibold text-nx-fg">
{stackSection.whyThisChoice.title}
</h3>
<ul class="mt-4 space-y-3 text-sm leading-relaxed text-nx-muted sm:text-[15px]">
{stackSection.whyThisChoice.points.map((line) => (
<li class="flex gap-3">
<span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-sky-400/80" />
<span>{line}</span>
</li>
))}
</ul>
</div>
</div>
</section>
<section
id="faq"
class="relative z-10 border-t border-nx-border bg-nx-surface/20 px-4 py-20 sm:px-6"
x-data="{ q: 0 }"
>
<div class="mx-auto max-w-2xl">
<h2
class="text-sm font-semibold uppercase tracking-wider text-sky-400/90"
>
{faq.eyebrow}
</h2>
<p
class="mt-2 text-3xl font-semibold tracking-tight text-nx-fg sm:text-4xl"
>
{faq.title}
</p>
<div class="mt-10 divide-y divide-nx-border rounded-2xl border border-nx-border bg-nx-elevated/30">
{faq.items.map((item, idx) => {
const n = idx + 1;
return (
<div>
<button
type="button"
class="flex w-full items-center justify-between px-4 py-4 text-left text-sm font-medium text-nx-fg hover:bg-white/5"
@click={`q = q === ${n} ? 0 : ${n}`}
:aria-expanded={`q === ${n}`}
>
{item.question}
<span
class="ml-3 inline-flex shrink-0 text-nx-muted transition-transform duration-200 ease-out"
:class={`q === ${n} && 'rotate-180'`}
aria-hidden="true"
>
<svg
class="size-5 sm:size-6"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6"></path>
</svg>
</span>
</button>
<div
x-show={`q === ${n}`}
x-transition
x-cloak
class="border-t border-nx-border px-4 py-3 text-sm text-nx-muted"
>
{item.answer}
</div>
</div>
);
})}
</div>
</div>
</section>
<section id="contatti" class="relative z-10 px-4 pb-16 pt-4 sm:px-6 sm:pb-20">
<div
id="nx-cta-card"
class="relative mx-auto max-w-6xl overflow-hidden rounded-3xl border border-nx-border bg-gradient-to-br from-sky-500/15 via-nx-elevated to-violet-600/15 px-5 py-5 sm:px-6 sm:py-6"
>
<div
class="relative z-10 flex flex-col gap-6 lg:flex-row lg:items-start lg:gap-10"
>
<div class="min-w-0 flex-1 lg:max-w-[min(100%,28rem)] xl:max-w-[min(100%,32rem)]">
<h2
class="text-2xl font-semibold leading-snug tracking-tight sm:text-3xl"
>
<span class="block text-nx-fg">{cta.titleLine1}</span>
<span class="mt-0.5 block text-sky-200 sm:text-[#bae6fd]">{cta.titleLine2}</span>
</h2>
<p class="mt-3 max-w-2xl text-nx-muted">
{cta.body}
</p>
</div>
<div
class="w-full min-w-0 shrink-0 lg:max-w-md xl:max-w-lg"
>
<ContactFormInline />
</div>
</div>
</div>
</section>
</main>
<SiteFooter />
</div>
<script>
import '../scripts/nx-nav-spy.ts';
</script>
</BaseLayout>

View File

@ -0,0 +1,450 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
const link = 'text-sky-400/90 underline-offset-2 hover:text-sky-300 hover:underline';
const tbl = 'mt-4 w-full border-collapse text-left text-sm';
const th = 'border border-nx-border bg-nx-surface/60 px-3 py-2 font-semibold text-nx-fg';
const td = 'border border-nx-border px-3 py-2 align-top text-nx-muted';
---
<SubpageLayout
title="Modello organizzativo — NexStudio"
description="Modello organizzativo NexStudio: ruoli, governance, RACI, controlli lean, KPI e piano operativo a 30 giorni."
heading="Modello organizzativo"
lead="Schema di ruoli, ritmi di governo e responsabilità per una software company snella (SaaS legal/med). Non sostituisce valutazioni legali (es. D.Lgs. 231/2001): va allineato a società, organi e consulenti."
>
<div class="[&_h3]:mt-6 [&_h3]:text-base [&_h3]:font-semibold [&_h3]:text-nx-fg">
<p class="border-l-2 border-sky-500/35 pl-4 text-sm leading-relaxed text-nx-muted">
Documento operativo per <strong class="text-nx-fg">NexStudio</strong> (sede Bangkok). Ruoli
numerici indicativi: adattare al team reale e formalizzare nomine e deleghe per iscritto.
</p>
<h2 id="indice" class="!mt-8">Indice</h2>
<ol class="!mt-3 list-decimal space-y-1.5 pl-5 text-sm leading-relaxed sm:text-base">
<li><a class={link} href="#ruoli">Ruoli e perimetro</a></li>
<li><a class={link} href="#governance">Governance essenziale</a></li>
<li><a class={link} href="#responsabilita">Principali responsabilità (sintesi)</a></li>
<li><a class={link} href="#raci">RACI per processi critici</a></li>
<li><a class={link} href="#flussi">Flussi decisionali rapidi</a></li>
<li><a class={link} href="#controlli">Controlli minimi obbligatori (lean)</a></li>
<li><a class={link} href="#kpi">KPI essenziali</a></li>
<li><a class={link} href="#documentazione">Documentazione minima da mantenere</a></li>
<li><a class={link} href="#piano-30">Primo piano operativo (30 giorni)</a></li>
<li><a class={link} href="#outsourcing">Outsourcing consigliato</a></li>
<li><a class={link} href="#note">Note pratiche e raccomandazioni</a></li>
</ol>
<h2 id="ruoli">1. Ruoli e perimetro</h2>
<p>
Elenco sintetico delle funzioni, con attese di impegno (full-time, part-time, frazionale o
esternalizzato). I numeri tra parentesi sono orientativi per una fase early-stage.
</p>
<ul>
<li>
<strong>Founder / CEO (1):</strong> strategia, approvazione delle policy, contatti con board
e investitori, accountability complessiva anche verso obblighi di legge e contratti.
</li>
<li>
<strong>CTO / Head of Product (1):</strong> architettura, roadmap, quality gate di prodotto,
responsabilità tecnica end-to-end.
</li>
<li>
<strong>Lead Engineer (12):</strong> sviluppo, code review, esecuzione CI/CD e qualità del
codice in reparto.
</li>
<li>
<strong>DevOps / Platform (1, oppure outsourcing):</strong> deploy, KMS, backup e
disaster recovery, governo dellambiente di produzione.
</li>
<li>
<strong>Security &amp; Privacy Lead (1, ruolo ibrido o contractor):</strong> sicurezza
operativa, gestione delle vulnerabilità, coordinamento con il DPO.
</li>
<li>
<strong>DPO / Privacy Responsible (frazionale o outsourcing):</strong> DPIA, gestione dei
diritti degli interessati, coerenza dellinformativa privacy.
</li>
<li>
<strong>Legal &amp; Compliance (frazionale o legale interno):</strong> contratti, NDA,
revisione delle normative di settore legale e medico pertinenti ai prodotti.
</li>
<li>
<strong>Product / Clinical Advisor (part-time o consulente):</strong> validazione di
funzionalità con impatto medico o legale, limiti duso e avvertenze.
</li>
<li>
<strong>Customer Success / Support (1):</strong> onboarding clienti, gestione richieste,
escalation verso tecnici e governance.
</li>
<li>
<strong>Operations / HR (1, part-time):</strong> onboarding del personale, formazione,
gestione delle segnalazioni interne.
</li>
<li>
<strong>Finance (1, part-time o outsourcing):</strong> contabilità, pagamenti, policy su
incassi e fornitori.
</li>
</ul>
<h2 id="governance">2. Governance essenziale</h2>
<ul>
<li>
<strong>Weekly Tactical</strong> (Founder, CTO, Security/Privacy Lead, Customer Success):
priorità operative, incidenti aperti, rilasci critici in corso.
</li>
<li>
<strong>Biweekly Product Sync</strong> (CTO, Lead Engineer, Product Advisor): backlog,
piano di release, checkpoint di compliance di prodotto.
</li>
<li>
<strong>Monthly Compliance Check</strong> (Founder/CEO, Legal, DPO, Security Lead): revisione
DPIA, vendor ad alto rischio, sintesi incidenti e azioni correttive.
</li>
<li>
<strong>Quarterly Board / Founders review:</strong> strategia, budget, rischi maggiori e
capacità organizzative.
</li>
</ul>
<h2 id="responsabilita">3. Principali responsabilità (sintesi)</h2>
<ul>
<li>
<strong>Codice etico e policy:</strong> owner <em>Legal &amp; Compliance</em> — approvatore
<em>CEO</em>.
</li>
<li>
<strong>Sicurezza operativa e incident response:</strong> owner <em>Security Lead</em> —
esecutore tecnico <em>CTO</em>.
</li>
<li>
<strong>Privacy, trattamenti sensibili e DPIA:</strong> owner <em>DPO</em> — supporto
<em>Legal</em>.
</li>
<li>
<strong>Rilasci in produzione:</strong> accountable <em>CTO</em> — responsible <em>Lead
Engineer</em> — consulted <em>Security</em>, <em>DPO</em>, <em>Product Advisor</em>.
</li>
<li>
<strong>Fornitori e sub-processori:</strong> owner <em>Operations</em> + <em>Legal</em> —
due diligence <em>Security</em> / <em>DPO</em>.
</li>
<li>
<strong>Richieste degli interessati (DSR):</strong> owner <em>DPO</em> — esecuzione operativa
<em>Customer Success</em> (ove applicabile).
</li>
<li>
<strong>Segnalazioni e whistleblowing:</strong> owner <em>Operations</em> / <em>HR</em> —
supporto investigativo <em>Legal</em>.
</li>
</ul>
<h2 id="raci">4. RACI sintetico per processi critici</h2>
<p>
Legenda: <strong>R</strong> = Responsible, <strong>A</strong> = Accountable,
<strong>C</strong> = Consulted, <strong>I</strong> = Informed.
</p>
<h3>Rilascio in produzione</h3>
<table class={tbl}>
<thead>
<tr>
<th class={th}>Ruolo</th>
<th class={th}>R</th>
<th class={th}>A</th>
<th class={th}>C</th>
<th class={th}>I</th>
</tr>
</thead>
<tbody>
<tr>
<td class={td}>Lead Engineer</td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>CTO</td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>Security Lead, DPO, Product Advisor</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>CEO, Customer Success</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
</tr>
</tbody>
</table>
<h3>Incident response (violazione dei dati)</h3>
<table class={tbl}>
<thead>
<tr>
<th class={th}>Ruolo</th>
<th class={th}>R</th>
<th class={th}>A</th>
<th class={th}>C</th>
<th class={th}>I</th>
</tr>
</thead>
<tbody>
<tr>
<td class={td}>Security Lead</td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>CEO</td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>DPO, Legal, CTO</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>Clienti coinvolti, Board (se impatto elevato)</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
</tr>
</tbody>
</table>
<h3>Onboarding vendor (sub-processore)</h3>
<table class={tbl}>
<thead>
<tr>
<th class={th}>Ruolo</th>
<th class={th}>R</th>
<th class={th}>A</th>
<th class={th}>C</th>
<th class={th}>I</th>
</tr>
</thead>
<tbody>
<tr>
<td class={td}>Operations</td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>Legal</td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>Security Lead, DPO</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>CTO, Finance</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
</tr>
</tbody>
</table>
<h3>DPIA per modulo sanitario o legale</h3>
<table class={tbl}>
<thead>
<tr>
<th class={th}>Ruolo</th>
<th class={th}>R</th>
<th class={th}>A</th>
<th class={th}>C</th>
<th class={th}>I</th>
</tr>
</thead>
<tbody>
<tr>
<td class={td}>DPO</td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>Legal</td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>Product Advisor, CTO, Security Lead</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
<td class={td}></td>
</tr>
<tr>
<td class={td}>CEO</td>
<td class={td}></td>
<td class={td}></td>
<td class={td}></td>
<td class={td}>●</td>
</tr>
</tbody>
</table>
<h2 id="flussi">5. Flussi decisionali rapidi</h2>
<ul>
<li>
<strong>Decisione tecnica ordinaria:</strong> Lead Engineer → CTO (documentare su ticket se
impatta rischio o contratti).
</li>
<li>
<strong>Rilascio con impatto privacy o sicurezza:</strong> approvazione obbligatoria di
<em>Security Lead</em> e <em>DPO</em> (target: entro 48 ore lavorative).
</li>
<li>
<strong>Incident P0:</strong> <em>Security Lead</em> notifica CEO, DPO e Legal entro 4 ore;
escalation al Board se limpatto è elevato (clienti, regolatori, volumi o classi di dati).
</li>
</ul>
<h2 id="controlli">6. Controlli minimi obbligatori (lean)</h2>
<ul>
<li>IAM con MFA per accesso a produzione e a segreti.</li>
<li>CI/CD con SAST e scansione automatica delle dipendenze.</li>
<li>SBOM generato automaticamente per ogni release.</li>
<li>TLS in transito; cifratura a riposo per dati sensibili.</li>
<li>Backup giornalieri e test DR trimestrale (ripristino documentato).</li>
<li>Log degli accessi e alerting su anomalie (SIEM o servizio gestito).</li>
<li>Checklist pre-release (security/privacy) con traccia digitale di approvazione.</li>
</ul>
<h2 id="kpi">7. KPI essenziali (core metrics)</h2>
<ul>
<li>
<strong>Security:</strong> percentuale di patch critiche entro SLA; MTTD e MTTR per
incidenti.
</li>
<li>
<strong>Privacy:</strong> tempo medio di risposta alle DSR; numero di DPIA completate / in
corso.
</li>
<li>
<strong>Product:</strong> tempo di ciclo del deploy; copertura test sui moduli critici.
</li>
<li>
<strong>Operations:</strong> uptime rispetto a SLA; tempo medio di risposta del supporto;
segnalazioni chiuse nel periodo.
</li>
</ul>
<h2 id="documentazione">8. Documentazione minima da mantenere</h2>
<ul>
<li>Codice etico firmato e registro delle adesioni.</li>
<li>Informativa privacy e template di DPA (Data Processing Agreement).</li>
<li>DPIA per trattamenti critici.</li>
<li>Security whitepaper breve (12 pagine) per clienti e audit.</li>
<li>Incident response playbook (versione esecutiva).</li>
<li>SBOM e registro fornitori / sub-processori.</li>
<li>Checklist pre-release e log delle approvazioni.</li>
</ul>
<h2 id="piano-30">9. Primo piano operativo (30 giorni)</h2>
<ol>
<li>
<strong>Giorni 03:</strong> nomina formale dei ruoli chiave (Security Lead, DPO frazionale,
Legal frazionale).
</li>
<li>
<strong>Giorni 410:</strong> integrare la checklist pre-release in CI/CD; abilitare MFA e
policy IAM coerenti con il minimo sopra.
</li>
<li>
<strong>Giorni 1117:</strong> avviare DPIA sul modulo medico/legale più critico; due
diligence sui fornitori ad alto rischio.
</li>
<li>
<strong>Giorni 1824:</strong> pubblicare una Trust Center di base (link al Codice etico,
contatti DPO/security, materiali privacy/DPA se disponibili).
</li>
<li>
<strong>Giorni 2530:</strong> tabletop su incident response; test di rollback deploy e
ripristino backup; formazione iniziale obbligatoria (security e privacy).
</li>
</ol>
<h2 id="outsourcing">10. Outsourcing consigliato (per restare snelli)</h2>
<ul>
<li>
<strong>Security Ops / SOC:</strong> servizio gestito per log, alerting e penetration test
periodici.
</li>
<li>
<strong>DPO e Legal:</strong> consulenti frazionali con esperienza PDPA, GDPR e contesto
medico-legale locale.
</li>
<li>
<strong>DevOps / Platform:</strong> servizi cloud gestiti (es. KMS, database gestiti) per
ridurre carico operativo interno.
</li>
</ul>
<h2 id="note">11. Note pratiche e raccomandazioni</h2>
<ul>
<li>
Mantenere <strong>separazione dei compiti</strong> sui controlli critici (es. chi sviluppa
non approva da solo gli accessi a produzione).
</li>
<li>
<strong>Automatizzare</strong> controlli ripetitivi (SAST, SBOM, scansioni dipendenze) nella
pipeline.
</li>
<li>
<strong>Documentare</strong> decisioni su rischio e accettazioni (log nel sistema di
ticketing) per audit e post-mortem.
</li>
<li>
Coinvolgere <strong>advisor clinici e legali</strong> esterni per convalide su funzionalità ad
alto rischio.
</li>
<li>
Prevedere <strong>revisione trimestrale</strong> del modello e aggiornamento delle
responsabilità man mano che la società cresce.
</li>
</ul>
<h2>Collegamenti</h2>
<p>
<a class={link} href="/codice-etico">Codice etico</a>
<span class="text-nx-muted"> · </span>
<a class={link} href="/about">Chi siamo</a>
<span class="text-nx-muted"> · </span>
<a class={link} href="#indice">Torna allindice</a>
</p>
</div>
</SubpageLayout>

18
src/pages/news.astro Normal file
View File

@ -0,0 +1,18 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
---
<SubpageLayout
title="Novità — NexStudio"
description="Novità, release e articoli da NexStudio."
heading="Novità"
lead="Hub comunicazioni: collegate qui il vostro blog CMS, oppure elencate manualmente le notizie."
>
<p>
Quando avrete contenuti da pubblicare (release di prodotto, note di
conformità, eventi), potete sostituire questa pagina con una raccolta
articoli Astro, un redirect verso Medium/Substack, o un headless CMS.
</p>
<h2>Archivio</h2>
<p class="text-nx-muted">Nessuna news pubblicata per il momento.</p>
</SubpageLayout>

View File

@ -0,0 +1,18 @@
---
import SubpageLayout from '../../layouts/SubpageLayout.astro';
---
<SubpageLayout
title="Grazie — Newsletter NexStudio"
description="Iscrizione alla newsletter ricevuta."
heading="Grazie"
lead="La richiesta di iscrizione è stata inviata. Controlla la posta se è prevista una conferma (double opt-in)."
>
<p>
Se usi un servizio con conferma via email, apri il messaggio e segui il
link per completare liscrizione.
</p>
<p>
<a class="text-sky-400/90 hover:text-sky-300" href="/">Torna alla home</a>
</p>
</SubpageLayout>

53
src/pages/privacy.astro Normal file
View File

@ -0,0 +1,53 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
---
<SubpageLayout
title="Privacy — NexStudio"
description="Informativa sul trattamento dei dati personali NexStudio."
heading="Informativa sulla privacy"
lead="Documento provvisorio: va adattato alla vostra organizzazione e revisionato da un legale prima della pubblicazione definitiva."
>
<p>
Questa pagina descrive, in forma generica, come NexStudio intende trattare i
dati personali raccolti attraverso il sito web e i canali di contatto. Le
finalità, le basi giuridiche e i destinatari vanno definiti in base alle
vostre attività reali (es. gestione richieste, newsletter, analytics).
</p>
<h2>Titolare del trattamento</h2>
<p>
Indicare ragione sociale, sede, P.IVA e modalità di contatto (es. email
dedicata privacy). Per richieste degli interessati potete rimandare alla
sezione <a class="text-sky-400/90 hover:text-sky-300" href="/#contatti"
>Contatti</a
> o a un indirizzo PEC / form strutturato.
</p>
<h2>Tipologie di dati e finalità</h2>
<p>
Esempi da personalizzare: dati di navigazione e log tecnici; dati forniti
volontariamente tramite moduli o chat; eventuali cookie di profilazione (da
collegare alla <a class="text-sky-400/90 hover:text-sky-300" href="/cookies"
>informativa cookie</a
>). Per ogni trattamento indicare la base giuridica (contratto, legittimo
interesse, consenso, obbligo legale).
</p>
<h2>Conservazione e sicurezza</h2>
<p>
Specificare tempi di conservazione per categoria di dati e misure di
sicurezza adottate (crittografia, controllo accessi, fornitori cloud, sede
dei dati).
</p>
<h2>Diritti degli interessati</h2>
<p>
Gli interessati possono esercitare i diritti previsti dal Reg. (UE) 2016/679
(accesso, rettifica, cancellazione, limitazione, portabilità, opposizione,
revoca del consenso). Dettagli operativi nella pagina <a
class="text-sky-400/90 hover:text-sky-300"
href="/gdpr">GDPR</a
>.
</p>
</SubpageLayout>

25
src/pages/terms.astro Normal file
View File

@ -0,0 +1,25 @@
---
import SubpageLayout from '../layouts/SubpageLayout.astro';
---
<SubpageLayout
title="Condizioni duso — NexStudio"
description="Termini e condizioni duso dei siti e servizi NexStudio."
heading="Condizioni duso"
lead="Bozza: definire condizioni duso del sito, limitazioni di responsabilità, proprietà intellettuale e legge applicabile con supporto legale."
>
<p>
Questa pagina ospiterà le condizioni duso per il sito
pubblico e, se del caso, per laccesso a demo o aree riservate. Struttura
tipica: oggetto, utente, servizi offerti, obblighi dellutente, limitazione
di responsabilità, sospensione, legge e foro competente.
</p>
<h2>Collegamenti</h2>
<p>
<a class="text-sky-400/90 hover:text-sky-300" href="/privacy">Privacy</a>
·
<a class="text-sky-400/90 hover:text-sky-300" href="/cookies">Informativa cookie</a>
·
<a class="text-sky-400/90 hover:text-sky-300" href="/gdpr">Diritti privacy (GDPR)</a>
</p>
</SubpageLayout>