Compare commits

...

15 Commits

Author SHA1 Message Date
Roberto Musso
0006f36215 layout for mobile
All checks were successful
Deploy Website / deploy (push) Successful in 3s
2026-04-12 10:19:31 +02:00
Roberto Musso
b522ff10dd fix(i18n): use culturally idiomatic heroTagline translations
All checks were successful
Deploy Website / deploy (push) Successful in 3s
Replace literal 'chief of staff' translations with natural equivalents:
- IT: 'Il tuo nuovo braccio destro.'
- ES: 'Tu nuevo brazo derecho.'
- FR: 'Votre nouveau bras droit.'
- DE: 'Deine neue rechte Hand.'
2026-04-12 10:11:16 +02:00
Roberto Musso
10a8152c5c feat(i18n): send current language in waitlist form POST body 2026-04-12 10:06:47 +02:00
Roberto Musso
14cb07e1a7 add multilanguage support
All checks were successful
Deploy Website / deploy (push) Successful in 3s
2026-04-12 09:56:20 +02:00
Roberto Musso
26e81d3b79 add analytics
All checks were successful
Deploy Website / deploy (push) Successful in 2s
2026-04-12 09:25:35 +02:00
Roberto Musso
7da1f5811e fix: hide pillars and suggestions on mobile to prevent overlap with step text
All checks were successful
Deploy Website / deploy (push) Successful in 2s
2026-04-11 22:27:42 +02:00
Roberto Musso
5aa43d5b21 fix: walkthrough scrollytelling rewrite - sticky pin dwell, observer cleanup
All checks were successful
Deploy Website / deploy (push) Successful in 3s
- Replace scroll-snap with sticky pin wrappers (120vh dwell per step)
- Steps stick at 25vh while user scrolls through wrapper height
- IntersectionObserver now watches pin wrappers, clears data-step on exit
- Sidebar animates in at step 0, hides when scrolling away
- Remove aggressive scroll-snap-type from html
- Tablet/mobile: fallback to relative positioning with fixed heights
2026-04-11 20:24:11 +02:00
Roberto Musso
98f973316d feat: GDPR — add privacy link under forms, update privacy policy with Brevo and retention 2026-04-11 19:41:51 +02:00
Roberto Musso
48110f8be6 fix: update success messages for double opt-in flow
All checks were successful
Deploy Website / deploy (push) Successful in 2s
2026-04-11 19:14:43 +02:00
Roberto Musso
64d9f35f27 refactor: update deployment process to use SSH and clone repository
All checks were successful
Deploy Website / deploy (push) Successful in 3s
2026-04-11 17:48:42 +02:00
Roberto Musso
ec5284457f update commit
Some checks failed
Deploy Website / deploy (push) Failing after 6s
2026-04-11 17:45:15 +02:00
Roberto Musso
121e229784 Replace dark problem section with sticky scroll app walkthrough
- Remove old Problem + Reveal sections (dark bg, SVG waves, static screenshot)
- Add interactive walkthrough: sticky scroll with progressive app UI reveal
- Recreate app UI in HTML/CSS (sidebar, greeting, daily brief, chat, suggestions)
- 4 scroll steps with text descriptions + progress dots on the left
- GSAP ScrollTrigger pins the section and animates elements in sequence
- Pillar badges (AI Secretary, Private by Design, EU AI Act) appear at final step
- Clean up all orphaned CSS/JS from old sections
- Responsive breakpoints for mobile walkthrough layout
2026-04-11 16:22:28 +02:00
Roberto Musso
b06b1fb1d5 change command
All checks were successful
Deploy HTML to Docker LXC / deploy (push) Successful in 6s
2026-04-11 01:57:10 +02:00
Roberto Musso
5ce8fdabe9 feat: new waitlist landing page with privacy & terms pages
Some checks failed
Deploy HTML to Docker LXC / deploy (push) Failing after 3s
- Scrollytelling landing page (GSAP ScrollTrigger, interactive compass, glassmorphism)
- Privacy policy (GDPR, local-first architecture, AI provider disclosure)
- Terms of service (EU law, beta program, data ownership)
- Deploy workflow updated to include all new files and assets
2026-04-11 01:48:07 +02:00
Roberto Musso
c60a9c2b1f rename the site
Some checks failed
Deploy HTML to Docker LXC / deploy (push) Failing after 2m20s
2026-04-08 23:52:33 +02:00
10 changed files with 2939 additions and 504 deletions

View File

@@ -1,4 +1,4 @@
name: Deploy HTML to Docker LXC
name: Deploy Website
run-name: Deploying static site by ${{ github.actor }}
on:
@@ -8,17 +8,42 @@ on:
jobs:
deploy:
runs-on: ubuntu-latest # Adjust if your runner uses a different label
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Copy HTML files to Docker LXC
uses: appleboy/scp-action@v0.1.7
- name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
source: "index.html"
target: "/opt/adiuva-website/html/"
overwrite: true
script: |
set -e
DEPLOY_DIR="/opt/adiuvai-waitlist/website"
REPO_URL="https://git.muticolturano.com/${{ gitea.repository }}.git"
# Clone latest into temp dir
cd /tmp && rm -rf website-deploy
git clone --depth 1 "${REPO_URL}" website-deploy
# Sync files (clear contents, not the directory itself)
mkdir -p "$DEPLOY_DIR"
find "$DEPLOY_DIR" -mindepth 1 -delete
cp -r /tmp/website-deploy/index.html \
/tmp/website-deploy/privacy.html \
/tmp/website-deploy/terms.html \
/tmp/website-deploy/i18n.js \
/tmp/website-deploy/robots.txt \
/tmp/website-deploy/sitemap.xml \
"$DEPLOY_DIR/"
[ -d /tmp/website-deploy/assets ] && cp -r /tmp/website-deploy/assets "$DEPLOY_DIR/"
# Cleanup
rm -rf /tmp/website-deploy
# Verify
if [ -f "$DEPLOY_DIR/index.html" ]; then
echo "✅ Website deployed"
else
echo "❌ index.html not found"
exit 1
fi

BIN
assets/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
assets/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
assets/og-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

516
i18n.js Normal file
View File

@@ -0,0 +1,516 @@
/**
* adiuvAI — Lightweight i18n for the landing page
* Supports: EN, IT, ES, FR, DE
* Uses data-i18n (textContent) and data-i18n-html (innerHTML) attributes.
*/
const I18N = {
en: {
// Nav
navJoinWaitlist: 'Join the waitlist',
// Hero
heroBadge: 'Beta launching June 2026',
heroTagline: 'Meet your new chief of staff.',
heroH1: 'What if AI could be<br><span class="accent">your secretary?</span>',
heroSub: 'Not a chatbot. Not another app. A real AI that reads your email, knows your projects, and tells you what to focus on — without ever seeing your data.',
heroButton: 'Get early access',
heroFormNote: 'Free to start · No credit card',
heroSuccessTitle: 'Check your inbox!',
heroSuccessSub: 'We sent you a confirmation link. Click it to secure your spot.',
scrollHint: 'scroll',
// Walkthrough
wtStep0Label: 'The problem',
wtStep0Title: 'Your important emails hide between newsletters.',
wtStep0Desc: 'You miss deadlines buried in threads. Tasks get lost across three different apps. Sound familiar?',
wtStep1Label: 'The greeting',
wtStep1Title: 'Every morning, your AI secretary is ready.',
wtStep1Desc: 'Open the app and it already knows what happened overnight — emails scanned, tasks prioritized, deadlines flagged.',
wtStep2Label: 'The brief',
wtStep2Title: 'Meeting notes sit in a doc you\'ll never open again.',
wtStep2Desc: 'Not here. Your daily brief is a clear, AI-generated summary of what matters today — tasks, follow-ups, and deadlines in one place.',
wtStep3Label: 'The result',
wtStep3Title: 'You don\'t need another tool.<br>You need <em>a secretary</em>.',
wtStep3Desc: 'Ask it anything. It understands your projects, your emails, your schedule — and it never leaves your device.',
wtGreetingLabel: 'Good morning,',
wtBrief: 'Good morning! Just a quick reminder to wrap up task X today and reply to that project email. Also, please don\'t forget that the documentation and the estimate are due tomorrow.',
wtChatPlaceholder: 'Ask me anything...',
wtSuggestion1: 'What\'s on my plate today?',
wtSuggestion2: 'Summarize this week',
wtSuggestion3: 'Any overdue tasks?',
wtSuggestion4: 'Suggest next actions',
wtPillar1: 'AI Secretary',
wtPillar2: 'Private by Design',
wtPillar3: 'EU AI Act Compliant',
// How it works
howLabel: 'How it works',
howHeading: 'Three steps to clarity.',
step1Title: 'Connect',
step1Desc: 'Link your Gmail, Outlook, or local folders. adiuvAI starts learning what matters to you.',
step2Title: 'Extract',
step2Desc: 'AI agents scan your email, files, and meetings. They detect tasks, deadlines, and key info — automatically.',
step3Title: 'Brief',
step3Desc: 'Every morning, get a personalized briefing. Today\'s priorities, what changed overnight, what needs your attention.',
// Features
featLabel: 'Features',
featHeading: 'Built for busy people,<br>not busy work.',
feat1Title: 'Daily Brief & Carousel',
feat1Desc: 'Start every day with clarity. Swipe through your priorities like stories.',
feat2Title: 'Email → Task Extraction',
feat2Desc: 'Gmail and Outlook integration. Important emails become tasks automatically.',
feat3Title: 'Projects & Tasks',
feat3Desc: 'Full project management with priorities, timelines, and milestone tracking.',
feat4Title: 'Smart Notes',
feat4Desc: 'Markdown notes with AI-powered semantic search across your workspace.',
feat5Title: 'Telegram Bot',
feat5Desc: 'Talk to your secretary on Telegram. Check tasks, get your brief, add notes.',
feat6Title: 'File Monitoring',
feat6Desc: 'AI agents watch your local folders and extract important information.',
feat7Title: 'Voice Assistant',
feat7Desc: 'Joins your calls, takes notes, suggests next steps — in real-time.',
feat8Title: 'Mobile App',
feat8Desc: 'Your daily brief, wherever you are. Review tasks and stay in sync.',
feat9Title: 'Team Workspace',
feat9Desc: 'Shared workspace, SSO, and team coordination — coming for organizations.',
statusBeta: 'Beta',
statusSoon: 'Soon',
statusRoadmap: 'Roadmap',
// Founder
founderLabel: 'From the maker',
founderP1: 'I built adiuvAI because I was tired of promising my clients intelligent AI solutions while my own workday was chaos — emails piling up, tasks scattered across apps, meetings with no follow-through.',
founderP2: 'adiuvAI is the tool I needed: an AI that actually reads my world and tells me what to do, without shipping my data to someone else\'s server.',
founderP3: 'If that resonates, join the waitlist. Early adopters will shape what we build.',
founderTitle: 'Founder',
// Final CTA
ctaHeading: 'Be the first to meet<br>your AI secretary.',
ctaSub: 'Beta launches June 2026. Early adopters get free priority access and a voice in what we build next.',
ctaButton: 'Join the waitlist',
ctaFormNote: 'No spam, ever.',
ctaSuccessTitle: 'Check your inbox!',
ctaSuccessSub: 'We sent you a confirmation link. Click it to secure your spot.',
// Footer
footerCopyright: '© 2026 adiuvAI. All rights reserved.',
footerPrivacy: 'Privacy',
footerTerms: 'Terms',
// Buttons during submit
joining: 'Joining…',
tryAgain: 'Try again',
},
it: {
navJoinWaitlist: 'Unisciti alla waitlist',
heroBadge: 'Beta in arrivo a giugno 2026',
heroTagline: 'Il tuo nuovo braccio destro.',
heroH1: 'E se l\'AI potesse essere<br><span class="accent">la tua segretaria?</span>',
heroSub: 'Non un chatbot. Non un\'altra app. Un\'AI reale che legge le tue email, conosce i tuoi progetti e ti dice su cosa concentrarti — senza mai vedere i tuoi dati.',
heroButton: 'Ottieni l\'accesso anticipato',
heroFormNote: 'Gratis per iniziare · Nessuna carta di credito',
heroSuccessTitle: 'Controlla la tua inbox!',
heroSuccessSub: 'Ti abbiamo inviato un link di conferma. Clicca per assicurarti il posto.',
scrollHint: 'scorri',
wtStep0Label: 'Il problema',
wtStep0Title: 'Le email importanti si nascondono tra le newsletter.',
wtStep0Desc: 'Perdi scadenze sepolte nei thread. Le attività si perdono tra tre app diverse. Ti suona familiare?',
wtStep1Label: 'Il saluto',
wtStep1Title: 'Ogni mattina, la tua segretaria AI è pronta.',
wtStep1Desc: 'Apri l\'app e sa già cosa è successo durante la notte — email analizzate, attività prioritizzate, scadenze segnalate.',
wtStep2Label: 'Il briefing',
wtStep2Title: 'Gli appunti delle riunioni finiscono in un documento che non aprirai mai più.',
wtStep2Desc: 'Non qui. Il tuo brief giornaliero è un riassunto chiaro, generato dall\'AI, di ciò che conta oggi — attività, follow-up e scadenze in un unico posto.',
wtStep3Label: 'Il risultato',
wtStep3Title: 'Non ti serve un altro strumento.<br>Ti serve <em>una segretaria</em>.',
wtStep3Desc: 'Chiedile qualsiasi cosa. Capisce i tuoi progetti, le email, la tua agenda — e non lascia mai il tuo dispositivo.',
wtGreetingLabel: 'Buongiorno,',
wtBrief: 'Buongiorno! Un promemoria veloce: concludi l\'attività X oggi e rispondi a quell\'email del progetto. Non dimenticare che la documentazione e il preventivo sono in scadenza domani.',
wtChatPlaceholder: 'Chiedimi qualsiasi cosa...',
wtSuggestion1: 'Cosa ho in programma oggi?',
wtSuggestion2: 'Riassumi questa settimana',
wtSuggestion3: 'Attività in ritardo?',
wtSuggestion4: 'Suggerisci prossime azioni',
wtPillar1: 'Segretaria AI',
wtPillar2: 'Privacy by Design',
wtPillar3: 'Conforme all\'EU AI Act',
howLabel: 'Come funziona',
howHeading: 'Tre passi verso la chiarezza.',
step1Title: 'Connetti',
step1Desc: 'Collega Gmail, Outlook o le cartelle locali. adiuvAI inizia a capire cosa conta per te.',
step2Title: 'Estrai',
step2Desc: 'Gli agenti AI scansionano email, file e riunioni. Rilevano attività, scadenze e informazioni chiave — automaticamente.',
step3Title: 'Briefing',
step3Desc: 'Ogni mattina, un briefing personalizzato. Le priorità di oggi, cosa è cambiato nella notte, cosa richiede la tua attenzione.',
featLabel: 'Funzionalità',
featHeading: 'Per chi è impegnato davvero,<br>non per il lavoro inutile.',
feat1Title: 'Brief & Carosello Giornaliero',
feat1Desc: 'Inizia ogni giorno con chiarezza. Scorri le priorità come storie.',
feat2Title: 'Email → Estrazione Attività',
feat2Desc: 'Integrazione Gmail e Outlook. Le email importanti diventano attività automaticamente.',
feat3Title: 'Progetti & Attività',
feat3Desc: 'Gestione progetti completa con priorità, timeline e tracciamento milestone.',
feat4Title: 'Note Intelligenti',
feat4Desc: 'Note in Markdown con ricerca semantica AI nel tuo workspace.',
feat5Title: 'Bot Telegram',
feat5Desc: 'Parla con la tua segretaria su Telegram. Controlla attività, leggi il brief, aggiungi note.',
feat6Title: 'Monitoraggio File',
feat6Desc: 'Gli agenti AI monitorano le cartelle locali ed estraggono informazioni importanti.',
feat7Title: 'Assistente Vocale',
feat7Desc: 'Partecipa alle tue call, prende appunti, suggerisce i prossimi passi — in tempo reale.',
feat8Title: 'App Mobile',
feat8Desc: 'Il tuo brief giornaliero, ovunque tu sia. Rivedi le attività e resta sincronizzato.',
feat9Title: 'Workspace di Team',
feat9Desc: 'Workspace condiviso, SSO e coordinamento team — in arrivo per le organizzazioni.',
statusBeta: 'Beta',
statusSoon: 'Presto',
statusRoadmap: 'In programma',
founderLabel: 'Dal creatore',
founderP1: 'Ho creato adiuvAI perché ero stanco di promettere ai miei clienti soluzioni AI intelligenti mentre la mia giornata lavorativa era il caos — email che si accumulano, attività sparse tra le app, riunioni senza follow-up.',
founderP2: 'adiuvAI è lo strumento di cui avevo bisogno: un\'AI che legge davvero il mio mondo e mi dice cosa fare, senza spedire i miei dati sul server di qualcun altro.',
founderP3: 'Se ti ritrovi in questo, unisciti alla waitlist. I primi utenti contribuiranno a plasmare ciò che costruiremo.',
founderTitle: 'Fondatore',
ctaHeading: 'Sii il primo a conoscere<br>la tua segretaria AI.',
ctaSub: 'La beta lancia a giugno 2026. I primi utenti ottengono accesso prioritario gratuito e voce in capitolo su cosa costruiremo.',
ctaButton: 'Unisciti alla waitlist',
ctaFormNote: 'Niente spam, mai.',
ctaSuccessTitle: 'Controlla la tua inbox!',
ctaSuccessSub: 'Ti abbiamo inviato un link di conferma. Clicca per assicurarti il posto.',
footerCopyright: '© 2026 adiuvAI. Tutti i diritti riservati.',
footerPrivacy: 'Privacy',
footerTerms: 'Termini',
joining: 'Iscrizione…',
tryAgain: 'Riprova',
},
es: {
navJoinWaitlist: 'Únete a la lista de espera',
heroBadge: 'Beta en junio 2026',
heroTagline: 'Tu nuevo brazo derecho.',
heroH1: '¿Y si la IA pudiera ser<br><span class="accent">tu secretaria?</span>',
heroSub: 'No es un chatbot. No es otra app. Una IA real que lee tu correo, conoce tus proyectos y te dice en qué enfocarte — sin que tus datos salgan de tu dispositivo.',
heroButton: 'Obtén acceso anticipado',
heroFormNote: 'Gratis para empezar · Sin tarjeta de crédito',
heroSuccessTitle: '¡Revisa tu bandeja de entrada!',
heroSuccessSub: 'Te enviamos un enlace de confirmación. Haz clic para asegurar tu lugar.',
scrollHint: 'desliza',
wtStep0Label: 'El problema',
wtStep0Title: 'Tus emails importantes se esconden entre newsletters.',
wtStep0Desc: 'Pierdes plazos enterrados en hilos. Las tareas se pierden entre tres apps distintas. ¿Te suena?',
wtStep1Label: 'El saludo',
wtStep1Title: 'Cada mañana, tu secretaria IA está lista.',
wtStep1Desc: 'Abre la app y ya sabe qué pasó durante la noche — emails analizados, tareas priorizadas, plazos marcados.',
wtStep2Label: 'El resumen',
wtStep2Title: 'Las notas de reunión terminan en un documento que nunca volverás a abrir.',
wtStep2Desc: 'Aquí no. Tu resumen diario es un sumario claro, generado por IA, de lo que importa hoy — tareas, seguimientos y plazos en un solo lugar.',
wtStep3Label: 'El resultado',
wtStep3Title: 'No necesitas otra herramienta.<br>Necesitas <em>una secretaria</em>.',
wtStep3Desc: 'Pregúntale lo que quieras. Entiende tus proyectos, tus emails, tu agenda — y nunca sale de tu dispositivo.',
wtGreetingLabel: 'Buenos días,',
wtBrief: '¡Buenos días! Un recordatorio rápido: termina la tarea X hoy y responde a ese email del proyecto. No olvides que la documentación y el presupuesto vencen mañana.',
wtChatPlaceholder: 'Pregúntame lo que sea...',
wtSuggestion1: '¿Qué tengo para hoy?',
wtSuggestion2: 'Resumen de la semana',
wtSuggestion3: '¿Tareas atrasadas?',
wtSuggestion4: 'Sugiere próximas acciones',
wtPillar1: 'Secretaria IA',
wtPillar2: 'Privacidad por Diseño',
wtPillar3: 'Conforme con EU AI Act',
howLabel: 'Cómo funciona',
howHeading: 'Tres pasos hacia la claridad.',
step1Title: 'Conecta',
step1Desc: 'Vincula tu Gmail, Outlook o carpetas locales. adiuvAI empieza a aprender qué te importa.',
step2Title: 'Extrae',
step2Desc: 'Los agentes IA escanean tu correo, archivos y reuniones. Detectan tareas, plazos e información clave — automáticamente.',
step3Title: 'Resumen',
step3Desc: 'Cada mañana, un resumen personalizado. Las prioridades de hoy, qué cambió durante la noche, qué necesita tu atención.',
featLabel: 'Funcionalidades',
featHeading: 'Para gente ocupada,<br>no para trabajo inútil.',
feat1Title: 'Resumen Diario & Carrusel',
feat1Desc: 'Empieza cada día con claridad. Desliza tus prioridades como historias.',
feat2Title: 'Email → Extracción de Tareas',
feat2Desc: 'Integración con Gmail y Outlook. Los emails importantes se convierten en tareas automáticamente.',
feat3Title: 'Proyectos & Tareas',
feat3Desc: 'Gestión de proyectos completa con prioridades, líneas de tiempo y seguimiento de hitos.',
feat4Title: 'Notas Inteligentes',
feat4Desc: 'Notas en Markdown con búsqueda semántica impulsada por IA en tu workspace.',
feat5Title: 'Bot de Telegram',
feat5Desc: 'Habla con tu secretaria en Telegram. Revisa tareas, lee tu resumen, añade notas.',
feat6Title: 'Monitoreo de Archivos',
feat6Desc: 'Los agentes IA vigilan tus carpetas locales y extraen información importante.',
feat7Title: 'Asistente de Voz',
feat7Desc: 'Se une a tus llamadas, toma notas, sugiere próximos pasos — en tiempo real.',
feat8Title: 'App Móvil',
feat8Desc: 'Tu resumen diario, donde estés. Revisa tareas y mantente sincronizado.',
feat9Title: 'Workspace de Equipo',
feat9Desc: 'Workspace compartido, SSO y coordinación de equipo — próximamente para organizaciones.',
statusBeta: 'Beta',
statusSoon: 'Pronto',
statusRoadmap: 'Planificado',
founderLabel: 'Del creador',
founderP1: 'Construí adiuvAI porque estaba cansado de prometer a mis clientes soluciones IA inteligentes mientras mi propia jornada laboral era un caos — emails acumulándose, tareas dispersas entre apps, reuniones sin seguimiento.',
founderP2: 'adiuvAI es la herramienta que necesitaba: una IA que realmente lee mi mundo y me dice qué hacer, sin enviar mis datos al servidor de otro.',
founderP3: 'Si te identificas con esto, únete a la lista de espera. Los primeros usuarios darán forma a lo que construyamos.',
founderTitle: 'Fundador',
ctaHeading: 'Sé el primero en conocer<br>a tu secretaria IA.',
ctaSub: 'La beta lanza en junio 2026. Los primeros usuarios obtienen acceso prioritario gratuito y voz en lo que construyamos.',
ctaButton: 'Únete a la lista de espera',
ctaFormNote: 'Sin spam, jamás.',
ctaSuccessTitle: '¡Revisa tu bandeja de entrada!',
ctaSuccessSub: 'Te enviamos un enlace de confirmación. Haz clic para asegurar tu lugar.',
footerCopyright: '© 2026 adiuvAI. Todos los derechos reservados.',
footerPrivacy: 'Privacidad',
footerTerms: 'Términos',
joining: 'Uniéndose…',
tryAgain: 'Reintentar',
},
fr: {
navJoinWaitlist: 'Rejoindre la liste d\'attente',
heroBadge: 'Bêta en juin 2026',
heroTagline: 'Votre nouveau bras droit.',
heroH1: 'Et si l\'IA pouvait être<br><span class="accent">votre secrétaire ?</span>',
heroSub: 'Pas un chatbot. Pas une autre app. Une vraie IA qui lit vos emails, connaît vos projets et vous dit sur quoi vous concentrer — sans jamais voir vos données.',
heroButton: 'Obtenir un accès anticipé',
heroFormNote: 'Gratuit pour commencer · Sans carte bancaire',
heroSuccessTitle: 'Vérifiez votre boîte de réception !',
heroSuccessSub: 'Nous vous avons envoyé un lien de confirmation. Cliquez pour réserver votre place.',
scrollHint: 'défiler',
wtStep0Label: 'Le problème',
wtStep0Title: 'Vos emails importants se cachent entre les newsletters.',
wtStep0Desc: 'Vous manquez des échéances enfouies dans les fils. Les tâches se perdent entre trois apps différentes. Ça vous parle ?',
wtStep1Label: 'L\'accueil',
wtStep1Title: 'Chaque matin, votre secrétaire IA est prête.',
wtStep1Desc: 'Ouvrez l\'app et elle sait déjà ce qui s\'est passé pendant la nuit — emails analysés, tâches priorisées, échéances signalées.',
wtStep2Label: 'Le briefing',
wtStep2Title: 'Les notes de réunion finissent dans un doc que vous n\'ouvrirez plus jamais.',
wtStep2Desc: 'Pas ici. Votre brief quotidien est un résumé clair, généré par l\'IA, de ce qui compte aujourd\'hui — tâches, suivis et échéances en un seul endroit.',
wtStep3Label: 'Le résultat',
wtStep3Title: 'Vous n\'avez pas besoin d\'un autre outil.<br>Vous avez besoin d\'<em>une secrétaire</em>.',
wtStep3Desc: 'Posez-lui n\'importe quelle question. Elle comprend vos projets, vos emails, votre agenda — et ne quitte jamais votre appareil.',
wtGreetingLabel: 'Bonjour,',
wtBrief: 'Bonjour ! Un petit rappel : finalisez la tâche X aujourd\'hui et répondez à cet email du projet. N\'oubliez pas que la documentation et le devis sont à rendre demain.',
wtChatPlaceholder: 'Demandez-moi ce que vous voulez...',
wtSuggestion1: 'Qu\'est-ce que j\'ai aujourd\'hui ?',
wtSuggestion2: 'Résumé de la semaine',
wtSuggestion3: 'Des tâches en retard ?',
wtSuggestion4: 'Suggérer les prochaines actions',
wtPillar1: 'Secrétaire IA',
wtPillar2: 'Privé par Conception',
wtPillar3: 'Conforme à l\'EU AI Act',
howLabel: 'Comment ça marche',
howHeading: 'Trois étapes vers la clarté.',
step1Title: 'Connectez',
step1Desc: 'Liez votre Gmail, Outlook ou vos dossiers locaux. adiuvAI commence à apprendre ce qui compte pour vous.',
step2Title: 'Extrayez',
step2Desc: 'Les agents IA scannent vos emails, fichiers et réunions. Ils détectent tâches, échéances et infos clés — automatiquement.',
step3Title: 'Briefing',
step3Desc: 'Chaque matin, un briefing personnalisé. Les priorités du jour, ce qui a changé pendant la nuit, ce qui requiert votre attention.',
featLabel: 'Fonctionnalités',
featHeading: 'Pour les gens occupés,<br>pas pour le travail inutile.',
feat1Title: 'Brief Quotidien & Carrousel',
feat1Desc: 'Commencez chaque journée avec clarté. Faites défiler vos priorités comme des stories.',
feat2Title: 'Email → Extraction de Tâches',
feat2Desc: 'Intégration Gmail et Outlook. Les emails importants deviennent des tâches automatiquement.',
feat3Title: 'Projets & Tâches',
feat3Desc: 'Gestion de projets complète avec priorités, chronologies et suivi des jalons.',
feat4Title: 'Notes Intelligentes',
feat4Desc: 'Notes Markdown avec recherche sémantique IA dans votre workspace.',
feat5Title: 'Bot Telegram',
feat5Desc: 'Parlez à votre secrétaire sur Telegram. Vérifiez les tâches, lisez le brief, ajoutez des notes.',
feat6Title: 'Surveillance de Fichiers',
feat6Desc: 'Les agents IA surveillent vos dossiers locaux et extraient les informations importantes.',
feat7Title: 'Assistant Vocal',
feat7Desc: 'Rejoint vos appels, prend des notes, suggère les prochaines étapes — en temps réel.',
feat8Title: 'Application Mobile',
feat8Desc: 'Votre brief quotidien, où que vous soyez. Consultez vos tâches et restez synchronisé.',
feat9Title: 'Espace Équipe',
feat9Desc: 'Espace partagé, SSO et coordination d\'équipe — bientôt disponible pour les organisations.',
statusBeta: 'Bêta',
statusSoon: 'Bientôt',
statusRoadmap: 'Planifié',
founderLabel: 'Du créateur',
founderP1: 'J\'ai créé adiuvAI parce que j\'en avais assez de promettre à mes clients des solutions IA intelligentes alors que ma propre journée de travail était le chaos — emails qui s\'accumulent, tâches dispersées entre les apps, réunions sans suivi.',
founderP2: 'adiuvAI est l\'outil dont j\'avais besoin : une IA qui lit vraiment mon monde et me dit quoi faire, sans envoyer mes données sur le serveur de quelqu\'un d\'autre.',
founderP3: 'Si ça vous parle, rejoignez la liste d\'attente. Les premiers utilisateurs façonneront ce que nous construirons.',
founderTitle: 'Fondateur',
ctaHeading: 'Soyez le premier à rencontrer<br>votre secrétaire IA.',
ctaSub: 'La bêta lance en juin 2026. Les premiers utilisateurs obtiennent un accès prioritaire gratuit et une voix dans ce que nous construirons.',
ctaButton: 'Rejoindre la liste d\'attente',
ctaFormNote: 'Pas de spam, jamais.',
ctaSuccessTitle: 'Vérifiez votre boîte de réception !',
ctaSuccessSub: 'Nous vous avons envoyé un lien de confirmation. Cliquez pour réserver votre place.',
footerCopyright: '© 2026 adiuvAI. Tous droits réservés.',
footerPrivacy: 'Confidentialité',
footerTerms: 'Conditions',
joining: 'Inscription…',
tryAgain: 'Réessayer',
},
de: {
navJoinWaitlist: 'Auf die Warteliste',
heroBadge: 'Beta ab Juni 2026',
heroTagline: 'Deine neue rechte Hand.',
heroH1: 'Was wäre, wenn KI<br><span class="accent">deine Sekretärin</span> wäre?',
heroSub: 'Kein Chatbot. Keine weitere App. Eine echte KI, die deine E-Mails liest, deine Projekte kennt und dir sagt, worauf du dich konzentrieren sollst — ohne deine Daten jemals zu sehen.',
heroButton: 'Frühen Zugang sichern',
heroFormNote: 'Kostenlos starten · Keine Kreditkarte',
heroSuccessTitle: 'Prüfe deinen Posteingang!',
heroSuccessSub: 'Wir haben dir einen Bestätigungslink geschickt. Klicke darauf, um deinen Platz zu sichern.',
scrollHint: 'scrollen',
wtStep0Label: 'Das Problem',
wtStep0Title: 'Deine wichtigen E-Mails verstecken sich zwischen Newslettern.',
wtStep0Desc: 'Du verpasst Fristen, die in Threads vergraben sind. Aufgaben gehen zwischen drei verschiedenen Apps verloren. Kommt dir bekannt vor?',
wtStep1Label: 'Die Begrüßung',
wtStep1Title: 'Jeden Morgen ist deine KI-Sekretärin bereit.',
wtStep1Desc: 'Öffne die App und sie weiß bereits, was über Nacht passiert ist — E-Mails gescannt, Aufgaben priorisiert, Fristen markiert.',
wtStep2Label: 'Das Briefing',
wtStep2Title: 'Besprechungsnotizen landen in einem Dokument, das du nie wieder öffnest.',
wtStep2Desc: 'Nicht hier. Dein tägliches Briefing ist eine klare, KI-generierte Zusammenfassung dessen, was heute zählt — Aufgaben, Follow-ups und Fristen an einem Ort.',
wtStep3Label: 'Das Ergebnis',
wtStep3Title: 'Du brauchst kein weiteres Tool.<br>Du brauchst <em>eine Sekretärin</em>.',
wtStep3Desc: 'Frag sie was du willst. Sie versteht deine Projekte, deine E-Mails, deinen Zeitplan — und verlässt nie dein Gerät.',
wtGreetingLabel: 'Guten Morgen,',
wtBrief: 'Guten Morgen! Kurze Erinnerung: Schließe Aufgabe X heute ab und antworte auf die Projekt-E-Mail. Vergiss nicht, dass die Dokumentation und der Kostenvoranschlag morgen fällig sind.',
wtChatPlaceholder: 'Frag mich was du willst...',
wtSuggestion1: 'Was steht heute an?',
wtSuggestion2: 'Wochenzusammenfassung',
wtSuggestion3: 'Überfällige Aufgaben?',
wtSuggestion4: 'Nächste Schritte vorschlagen',
wtPillar1: 'KI-Sekretärin',
wtPillar2: 'Privacy by Design',
wtPillar3: 'EU AI Act konform',
howLabel: 'So funktioniert\'s',
howHeading: 'Drei Schritte zur Klarheit.',
step1Title: 'Verbinden',
step1Desc: 'Verknüpfe dein Gmail, Outlook oder lokale Ordner. adiuvAI lernt, was dir wichtig ist.',
step2Title: 'Extrahieren',
step2Desc: 'KI-Agenten scannen deine E-Mails, Dateien und Meetings. Sie erkennen Aufgaben, Fristen und wichtige Infos — automatisch.',
step3Title: 'Briefing',
step3Desc: 'Jeden Morgen ein personalisiertes Briefing. Heutige Prioritäten, was sich über Nacht geändert hat, was deine Aufmerksamkeit braucht.',
featLabel: 'Funktionen',
featHeading: 'Für beschäftigte Menschen,<br>nicht für sinnlose Arbeit.',
feat1Title: 'Tägliches Briefing & Karussell',
feat1Desc: 'Starte jeden Tag mit Klarheit. Wische durch deine Prioritäten wie Stories.',
feat2Title: 'E-Mail → Aufgabenextraktion',
feat2Desc: 'Gmail- und Outlook-Integration. Wichtige E-Mails werden automatisch zu Aufgaben.',
feat3Title: 'Projekte & Aufgaben',
feat3Desc: 'Vollständiges Projektmanagement mit Prioritäten, Zeitplänen und Meilenstein-Tracking.',
feat4Title: 'Intelligente Notizen',
feat4Desc: 'Markdown-Notizen mit KI-gestützter semantischer Suche in deinem Workspace.',
feat5Title: 'Telegram Bot',
feat5Desc: 'Sprich mit deiner Sekretärin auf Telegram. Prüfe Aufgaben, lies das Briefing, füge Notizen hinzu.',
feat6Title: 'Dateiüberwachung',
feat6Desc: 'KI-Agenten überwachen deine lokalen Ordner und extrahieren wichtige Informationen.',
feat7Title: 'Sprachassistent',
feat7Desc: 'Nimmt an deinen Calls teil, macht Notizen, schlägt nächste Schritte vor — in Echtzeit.',
feat8Title: 'Mobile App',
feat8Desc: 'Dein tägliches Briefing, egal wo du bist. Aufgaben prüfen und synchron bleiben.',
feat9Title: 'Team-Workspace',
feat9Desc: 'Gemeinsamer Workspace, SSO und Team-Koordination — bald für Organisationen.',
statusBeta: 'Beta',
statusSoon: 'Bald',
statusRoadmap: 'Geplant',
founderLabel: 'Vom Macher',
founderP1: 'Ich habe adiuvAI gebaut, weil ich es leid war, meinen Kunden intelligente KI-Lösungen zu versprechen, während mein eigener Arbeitstag Chaos war — E-Mails, die sich stapeln, Aufgaben verstreut über Apps, Meetings ohne Nachverfolgung.',
founderP2: 'adiuvAI ist das Werkzeug, das ich brauchte: eine KI, die meine Welt wirklich liest und mir sagt, was zu tun ist, ohne meine Daten auf den Server eines anderen zu schicken.',
founderP3: 'Wenn das bei dir ankommt, tritt der Warteliste bei. Frühe Nutzer werden mitgestalten, was wir bauen.',
founderTitle: 'Gründer',
ctaHeading: 'Sei der Erste, der<br>seine KI-Sekretärin trifft.',
ctaSub: 'Die Beta startet im Juni 2026. Frühe Nutzer erhalten kostenlosen Prioritätszugang und Mitspracherecht bei dem, was wir als Nächstes bauen.',
ctaButton: 'Auf die Warteliste',
ctaFormNote: 'Kein Spam, niemals.',
ctaSuccessTitle: 'Prüfe deinen Posteingang!',
ctaSuccessSub: 'Wir haben dir einen Bestätigungslink geschickt. Klicke darauf, um deinen Platz zu sichern.',
footerCopyright: '© 2026 adiuvAI. Alle Rechte vorbehalten.',
footerPrivacy: 'Datenschutz',
footerTerms: 'AGB',
joining: 'Beitritt…',
tryAgain: 'Erneut versuchen',
},
};
const LANG_LABELS = { en: 'EN', it: 'IT', es: 'ES', fr: 'FR', de: 'DE' };
const SUPPORTED_LANGS = Object.keys(LANG_LABELS);
/** Detect best matching language from URL, storage, or browser */
function detectLang() {
// 1. Check ?lang= query parameter
const url = new URL(window.location.href);
const param = url.searchParams.get('lang');
if (param && SUPPORTED_LANGS.includes(param)) {
localStorage.setItem('adiuvai-lang', param);
return param;
}
// 2. Check localStorage
const stored = localStorage.getItem('adiuvai-lang');
if (stored && SUPPORTED_LANGS.includes(stored)) return stored;
// 3. Fallback to browser language
const nav = (navigator.language || '').slice(0, 2).toLowerCase();
return SUPPORTED_LANGS.includes(nav) ? nav : 'en';
}
/** Apply translations to the DOM */
function setLanguage(lang) {
if (!I18N[lang]) lang = 'en';
const t = I18N[lang];
document.documentElement.lang = lang;
localStorage.setItem('adiuvai-lang', lang);
// Update all data-i18n (textContent) elements
document.querySelectorAll('[data-i18n]').forEach(el => {
const key = el.getAttribute('data-i18n');
if (t[key] != null) el.textContent = t[key];
});
// Update all data-i18n-html (innerHTML) elements
document.querySelectorAll('[data-i18n-html]').forEach(el => {
const key = el.getAttribute('data-i18n-html');
if (t[key] != null) el.innerHTML = t[key];
});
// Update all data-i18n-placeholder elements
document.querySelectorAll('[data-i18n-placeholder]').forEach(el => {
const key = el.getAttribute('data-i18n-placeholder');
if (t[key] != null) el.placeholder = t[key];
});
// Update active state in language switcher
document.querySelectorAll('.lang-option').forEach(btn => {
btn.classList.toggle('active', btn.dataset.lang === lang);
});
// Update current language label
const label = document.getElementById('lang-current-label');
if (label) label.textContent = LANG_LABELS[lang] || lang.toUpperCase();
// Update html lang attribute for SEO
document.documentElement.lang = lang;
}
/** Initialize language switcher */
function initI18n() {
const lang = detectLang();
setLanguage(lang);
// Bind language switcher buttons
document.querySelectorAll('.lang-option').forEach(btn => {
btn.addEventListener('click', (e) => {
e.preventDefault();
setLanguage(btn.dataset.lang);
// Close dropdown
const dropdown = document.getElementById('lang-dropdown');
if (dropdown) dropdown.removeAttribute('open');
});
});
// Close dropdown on outside click
document.addEventListener('click', (e) => {
const dropdown = document.getElementById('lang-dropdown');
if (dropdown && dropdown.hasAttribute('open') && !dropdown.contains(e.target)) {
dropdown.removeAttribute('open');
}
});
}
// Run after DOM ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initI18n);
} else {
initI18n();
}

2087
index.html

File diff suppressed because it is too large Load Diff

386
privacy.html Normal file
View File

@@ -0,0 +1,386 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Privacy Policy — adiuvAI</title>
<meta name="description" content="adiuvAI Privacy Policy. Learn how we protect your data with a local-first, privacy-by-design architecture.">
<link rel="canonical" href="https://adiuvai.com/privacy.html">
<meta name="theme-color" content="#f4edf3">
<!-- Open Graph -->
<meta property="og:title" content="Privacy Policy — adiuvAI">
<meta property="og:description" content="adiuvAI Privacy Policy. Learn how we protect your data with a local-first, privacy-by-design architecture.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://adiuvai.com/privacy.html">
<meta property="og:image" content="https://adiuvai.com/assets/og-image.png">
<meta property="og:site_name" content="adiuvAI">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Privacy Policy — adiuvAI">
<meta name="twitter:description" content="adiuvAI Privacy Policy. Learn how we protect your data with a local-first, privacy-by-design architecture.">
<meta name="twitter:image" content="https://adiuvai.com/assets/og-image.png">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8,1 L13,8 L3,8 Z' fill='%23fbc881'/%3E%3Cpath d='M3,8 L13,8 L8,15 Z' fill='%23040404'/%3E%3C/svg%3E">
<link rel="apple-touch-icon" href="assets/apple-touch-icon.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
:root {
--bg: #f4edf3;
--bg-shifted: #efe5ef;
--text: #040404;
--text-light: #fbfbfb;
--text-muted: #8a8ea9;
--primary: #fbc881;
--primary-deep: #e5a94e;
--muted: #c8c3cd;
--muted-soft: rgba(200, 195, 205, 0.4);
--card-bg: rgba(255, 255, 255, 0.45);
--card-border: rgba(255, 255, 255, 0.55);
--radius: 20px;
}
body {
font-family: 'Inter', system-ui, -apple-system, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
body::before {
content: '';
position: fixed;
inset: 0;
background:
radial-gradient(ellipse 80% 60% at 25% 20%, rgba(251,200,129,0.07) 0%, transparent 60%),
radial-gradient(ellipse 70% 50% at 75% 70%, rgba(138,142,169,0.06) 0%, transparent 50%);
pointer-events: none;
z-index: 0;
}
a { color: inherit; text-decoration: none; }
/* ── Nav ── */
nav {
position: fixed; top: 0; left: 0; right: 0; height: 64px;
display: flex; align-items: center; justify-content: space-between;
padding: 0 32px; z-index: 100;
background: rgba(244, 237, 243, 0.9);
backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
border-bottom: 1px solid var(--muted-soft);
}
.nav-logo {
display: flex; align-items: center; gap: 10px;
font-size: 1.1rem; font-weight: 400; letter-spacing: -0.02em;
}
.nav-logo svg { width: 28px; height: 28px; }
.nav-logo .ai { font-weight: 700; color: var(--primary-deep); }
.btn {
display: inline-flex; align-items: center; justify-content: center;
padding: 10px 24px; border-radius: 50px; font-size: 0.875rem;
font-weight: 600; border: none; cursor: pointer;
font-family: inherit; transition: all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.btn-primary { background: var(--text); color: var(--text-light); }
.btn-primary:hover { background: #222; transform: translateY(-1px); box-shadow: 0 8px 24px rgba(0,0,0,0.12); }
.btn-primary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
/* ── Content ── */
.page-header {
padding: 120px 24px 48px; text-align: center; position: relative; z-index: 2;
}
.page-header .label {
font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em;
text-transform: uppercase; color: var(--primary-deep); margin-bottom: 12px;
}
.page-header h1 {
font-size: clamp(2rem, 4vw, 3rem); font-weight: 600;
letter-spacing: -0.03em; line-height: 1.15; margin-bottom: 12px;
}
.page-header .meta {
font-size: 0.85rem; color: var(--text-muted);
}
.content {
max-width: 720px; margin: 0 auto; padding: 0 24px 100px;
position: relative; z-index: 2;
}
.content section {
margin-bottom: 48px;
}
.content h2 {
font-size: 1.25rem; font-weight: 600; letter-spacing: -0.02em;
margin-bottom: 16px; padding-bottom: 8px;
border-bottom: 1px solid var(--muted-soft);
}
.content h3 {
font-size: 1.05rem; font-weight: 600; margin: 24px 0 8px;
}
.content p {
margin-bottom: 12px; color: var(--text); font-size: 0.94rem; line-height: 1.75;
}
.content ul, .content ol {
margin: 0 0 16px 20px; font-size: 0.94rem; line-height: 1.75;
}
.content li { margin-bottom: 6px; }
.content strong { font-weight: 600; }
.content a {
color: var(--primary-deep); text-decoration: underline;
text-underline-offset: 2px;
}
.content a:hover { color: var(--text); }
.callout {
padding: 20px 24px; border-radius: 12px;
background: var(--card-bg); backdrop-filter: blur(16px);
border: 1px solid var(--card-border); margin-bottom: 20px;
}
.callout p { margin-bottom: 0; }
.callout .icon { font-size: 1.2rem; margin-right: 8px; }
table {
width: 100%; border-collapse: collapse; margin-bottom: 16px; font-size: 0.88rem;
}
th, td {
text-align: left; padding: 10px 14px;
border-bottom: 1px solid var(--muted-soft);
}
th { font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); }
/* ── Footer ── */
footer {
padding: 40px 24px; text-align: center;
border-top: 1px solid var(--muted-soft); position: relative; z-index: 2;
}
.footer-logo {
display: flex; align-items: center; justify-content: center;
gap: 8px; margin-bottom: 10px; color: var(--text-muted); font-size: 0.95rem;
}
.footer-logo svg { width: 22px; height: 22px; }
.footer-logo .ai { font-weight: 700; }
footer .legal { font-size: 0.78rem; color: var(--muted); }
footer .legal a { color: var(--text-muted); text-decoration: underline; text-underline-offset: 2px; }
footer .legal a:hover { color: var(--text); }
@media (max-width: 640px) {
nav { padding: 0 16px; }
.page-header { padding: 100px 20px 36px; }
.content { padding: 0 20px 80px; }
}
</style>
</head>
<body>
<nav role="navigation" aria-label="Main navigation">
<a href="./" class="nav-logo" aria-label="adiuvAI home">
<svg viewBox="0 0 64 64" fill="none" aria-hidden="true">
<path d="M32,4 L48,32 L16,32 Z" fill="#fbc881"/>
<path d="M16,32 L48,32 L32,60 Z" fill="#040404"/>
<circle cx="32" cy="32" r="2.5" fill="#040404" opacity="0.18"/>
</svg>
adiuv<span class="ai">AI</span>
</a>
<a href="./#final-cta" class="btn btn-primary">Join the waitlist</a>
</nav>
<header class="page-header">
<p class="label">Legal</p>
<h1>Privacy Policy</h1>
<p class="meta">Last updated: April 11, 2026</p>
</header>
<main class="content">
<div class="callout">
<p><span class="icon">🔒</span> <strong>The short version:</strong> adiuvAI is local-first. Your personal data — emails, tasks, notes, files — is processed and stored on your device. We never see it, and we can't access it.</p>
</div>
<section>
<h2>1. Who We Are</h2>
<p>adiuvAI ("we", "us", "our") is a desktop application and optional cloud service developed by Roberto Musso, based in the European Union. This Privacy Policy explains how we collect, use, and protect your information when you use the adiuvAI desktop application, our website (adiuvai.com), and any related services.</p>
<p>For questions about this policy, contact us at <a href="mailto:privacy@adiuvai.com">privacy@adiuvai.com</a>.</p>
</section>
<section>
<h2>2. Our Privacy Architecture</h2>
<p>adiuvAI is built on a <strong>local-first, privacy-by-design</strong> architecture. This means:</p>
<ul>
<li><strong>Processing happens on your device.</strong> When adiuvAI reads your email, organizes tasks, or generates your daily brief, all processing occurs locally in the Electron desktop application.</li>
<li><strong>Your data stays on your machine.</strong> Tasks, notes, projects, files, and extracted email content are stored in a local SQLite database and local vector store (LanceDB) on your device.</li>
<li><strong>EU AI Act compliant.</strong> Our AI features are designed in accordance with the EU Artificial Intelligence Act (Regulation 2024/1689).</li>
</ul>
</section>
<section>
<h2>3. What We Collect</h2>
<h3>3a. Data You Provide Directly</h3>
<table>
<thead><tr><th>Data</th><th>Purpose</th><th>Stored Where</th></tr></thead>
<tbody>
<tr><td>Email address</td><td>Account creation, waitlist, communications</td><td>Our server (PostgreSQL)</td></tr>
<tr><td>Name</td><td>Account personalization</td><td>Our server</td></tr>
<tr><td>Password</td><td>Authentication</td><td>Our server (bcrypt hash only)</td></tr>
<tr><td>Payment info</td><td>Subscription billing</td><td>Stripe (PCI-compliant) — we never store card numbers</td></tr>
</tbody>
</table>
<h3>3b. Data the App Processes Locally</h3>
<p>The following data is processed and stored <strong>exclusively on your device</strong>. We do not have access to it:</p>
<ul>
<li>Email content, attachments, and metadata</li>
<li>Tasks, projects, notes, and checkpoints</li>
<li>Calendar events and meeting notes</li>
<li>Files and folders you choose to monitor</li>
<li>AI conversation history</li>
<li>Vector embeddings of your content</li>
</ul>
<h3>3c. Data Shared with AI Providers</h3>
<p>When you use adiuvAI's AI features, portions of your data are sent to third-party large language model (LLM) providers for processing. This includes:</p>
<ul>
<li><strong>What is sent:</strong> Text snippets relevant to the current AI task (e.g., an email you're asking about, task context for prioritization). We send the minimum context needed.</li>
<li><strong>Providers:</strong> OpenAI, Anthropic, or other LLM providers as configured. The specific provider depends on the task for optimal cost and performance.</li>
<li><strong>Retention:</strong> We use provider tiers that do not retain your data for training. Refer to each provider's data processing terms for details.</li>
</ul>
<h3>3d. Data We Collect Automatically</h3>
<table>
<thead><tr><th>Data</th><th>Purpose</th><th>Legal Basis</th></tr></thead>
<tbody>
<tr><td>IP address</td><td>Rate limiting, abuse prevention</td><td>Legitimate interest</td></tr>
<tr><td>API usage patterns</td><td>Service improvement, tier enforcement</td><td>Legitimate interest</td></tr>
<tr><td>Crash reports (opt-in)</td><td>Bug fixing</td><td>Consent</td></tr>
</tbody>
</table>
<h3>3e. Website (Waitlist)</h3>
<p>When you join the waitlist, we collect only your email address. We do not use tracking pixels, analytics scripts, or third-party cookies on our website.</p>
</section>
<section>
<h2>4. How We Use Your Data</h2>
<ul>
<li><strong>Account management:</strong> Create and maintain your account, process subscriptions.</li>
<li><strong>Service delivery:</strong> Authenticate your desktop app, provide cloud backup/sync if opted in.</li>
<li><strong>Communications:</strong> Send product updates, security notices, and waitlist notifications. You can unsubscribe anytime.</li>
<li><strong>Security:</strong> Detect abuse, enforce rate limits, prevent unauthorized access.</li>
<li><strong>Improvement:</strong> Aggregate, anonymized usage patterns to improve the product. Never individual content.</li>
</ul>
</section>
<section>
<h2>5. Data Sharing</h2>
<p>We do not sell, rent, or trade your personal information. We share data only with:</p>
<ul>
<li><strong>Stripe</strong> — for payment processing (PCI DSS Level 1 compliant)</li>
<li><strong>Brevo (Sendinblue SAS)</strong> — for transactional emails (waitlist confirmation, product updates). Your email address is shared with Brevo solely to deliver these messages. Brevo acts as a data processor under GDPR and stores data in the EU. <a href="https://www.brevo.com/legal/privacypolicy/">Brevo Privacy Policy</a></li>
<li><strong>LLM providers</strong> (OpenAI, Anthropic) — text snippets for AI processing, under no-training data agreements</li>
<li><strong>Cloud infrastructure</strong> (hosting provider) — encrypted data only for cloud backup/sync features</li>
<li><strong>Law enforcement</strong> — only when required by law, and limited to data we actually possess (account info, not your local content)</li>
</ul>
</section>
<section>
<h2>6. Your Rights (GDPR)</h2>
<p>As an EU-based service, we respect the rights granted by the General Data Protection Regulation (GDPR) and equivalent UK/Swiss legislation:</p>
<ul>
<li><strong>Access:</strong> Request a copy of any personal data we hold about you.</li>
<li><strong>Rectification:</strong> Correct inaccurate personal data.</li>
<li><strong>Erasure:</strong> Request deletion of your account and all associated data from our servers.</li>
<li><strong>Portability:</strong> Export your data in a machine-readable format.</li>
<li><strong>Restriction:</strong> Request we limit processing of your data.</li>
<li><strong>Objection:</strong> Object to processing based on legitimate interest.</li>
<li><strong>Withdraw consent:</strong> Where processing is based on consent, withdraw it at any time.</li>
</ul>
<p>For local data: since it's stored on your device, you have full control already — you can view, export, or delete it at any time without contacting us.</p>
<p>To exercise your rights for server-side data, email <a href="mailto:privacy@adiuvai.com">privacy@adiuvai.com</a>. We respond within 30 days.</p>
</section>
<section>
<h2>7. Data Retention</h2>
<ul>
<li><strong>Account data:</strong> Retained while your account is active. Deleted within 30 days of account deletion request.</li>
<li><strong>Encrypted backups:</strong> Deleted within 30 days of account deletion, or on your request.</li>
<li><strong>Waitlist (confirmed):</strong> Retained until beta launch, then migrated to account data or deleted on request. Every email includes an unsubscribe link that immediately anonymizes your data.</li>
<li><strong>Waitlist (unconfirmed):</strong> Automatically anonymized after 48 hours. The anonymized record (signup date, source) is retained for aggregate analytics but contains no personal data.</li>
<li><strong>Server logs:</strong> Retained for 90 days, then purged.</li>
<li><strong>Local data:</strong> Under your control — persists until you delete it or uninstall the app.</li>
</ul>
</section>
<section>
<h2>8. Security</h2>
<p>We implement appropriate technical and organizational measures to protect your data:</p>
<ul>
<li>End-to-end encryption (AES-256) for all cloud-stored content</li>
<li>Device-bound encryption keys via OS-level secure storage (Electron safeStorage)</li>
<li>bcrypt for password hashing, SHA-256 for refresh token storage</li>
<li>Rate limiting and abuse detection on all API endpoints</li>
<li>JWT-based authentication with short-lived access tokens</li>
<li>Regular security reviews of the codebase</li>
</ul>
</section>
<section>
<h2>9. Children's Privacy</h2>
<p>adiuvAI is not intended for use by anyone under the age of 16. We do not knowingly collect personal information from children. If you believe a child has provided us with personal data, please contact us and we will delete it promptly.</p>
</section>
<section>
<h2>10. Third-Party Integrations</h2>
<p>adiuvAI integrates with third-party services at your direction:</p>
<ul>
<li><strong>Gmail / Google Workspace:</strong> OAuth 2.0 access. Email content is fetched and processed locally. We request read-only scopes.</li>
<li><strong>Microsoft Outlook / Teams:</strong> OAuth 2.0 access. Same local-only processing model.</li>
<li><strong>Telegram Bot:</strong> Messages you send to the adiuvAI bot are processed to execute commands (check tasks, get brief, add notes). We do not store Telegram message history on our servers.</li>
</ul>
<p>Each integration can be disconnected at any time from within the app, which revokes our access.</p>
</section>
<section>
<h2>11. International Transfers</h2>
<p>Account data may be processed in the EU. If data is transferred outside the EEA, we ensure adequate safeguards are in place (Standard Contractual Clauses or adequacy decisions) in compliance with GDPR Chapter V.</p>
</section>
<section>
<h2>12. Changes to This Policy</h2>
<p>We may update this Privacy Policy from time to time. Material changes will be communicated via email (for registered users) or a prominent notice on our website. The "Last updated" date at the top reflects the most recent revision.</p>
</section>
<section>
<h2>13. Contact</h2>
<p>For any privacy-related questions, concerns, or requests:</p>
<p>
<strong>Email:</strong> <a href="mailto:privacy@adiuvai.com">privacy@adiuvai.com</a><br>
<strong>Data Controller:</strong> Roberto Musso, adiuvAI<br>
<strong>Location:</strong> European Union
</p>
<p>You also have the right to lodge a complaint with your local data protection authority.</p>
</section>
</main>
<footer>
<div class="footer-logo">
<svg viewBox="0 0 64 64" fill="none" aria-hidden="true">
<path d="M32,4 L48,32 L16,32 Z" fill="#fbc881"/>
<path d="M16,32 L48,32 L32,60 Z" fill="currentColor"/>
</svg>
adiuv<span class="ai">AI</span>
</div>
<p class="legal">
&copy; 2026 adiuvAI. All rights reserved.
&nbsp;&middot;&nbsp;
<a href="./privacy.html" aria-current="page">Privacy</a>
&nbsp;&middot;&nbsp;
<a href="./terms.html">Terms</a>
</p>
</footer>
<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "33a52748219640618115655d931ddb87"}'></script>
</body>
</html>

4
robots.txt Normal file
View File

@@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://adiuvai.com/sitemap.xml

28
sitemap.xml Normal file
View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://adiuvai.com/</loc>
<lastmod>2026-04-12</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
<xhtml:link rel="alternate" hreflang="en" href="https://adiuvai.com/"/>
<xhtml:link rel="alternate" hreflang="it" href="https://adiuvai.com/?lang=it"/>
<xhtml:link rel="alternate" hreflang="es" href="https://adiuvai.com/?lang=es"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://adiuvai.com/?lang=fr"/>
<xhtml:link rel="alternate" hreflang="de" href="https://adiuvai.com/?lang=de"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://adiuvai.com/"/>
</url>
<url>
<loc>https://adiuvai.com/privacy.html</loc>
<lastmod>2026-04-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://adiuvai.com/terms.html</loc>
<lastmod>2026-04-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.3</priority>
</url>
</urlset>

385
terms.html Normal file
View File

@@ -0,0 +1,385 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Terms of Service — adiuvAI</title>
<meta name="description" content="adiuvAI Terms of Service. The rules, rights, and responsibilities for using the adiuvAI desktop app and cloud services.">
<link rel="canonical" href="https://adiuvai.com/terms.html">
<meta name="theme-color" content="#f4edf3">
<!-- Open Graph -->
<meta property="og:title" content="Terms of Service — adiuvAI">
<meta property="og:description" content="adiuvAI Terms of Service. The rules, rights, and responsibilities for using the adiuvAI desktop app and cloud services.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://adiuvai.com/terms.html">
<meta property="og:image" content="https://adiuvai.com/assets/og-image.png">
<meta property="og:site_name" content="adiuvAI">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Terms of Service — adiuvAI">
<meta name="twitter:description" content="adiuvAI Terms of Service. The rules, rights, and responsibilities for using the adiuvAI desktop app and cloud services.">
<meta name="twitter:image" content="https://adiuvai.com/assets/og-image.png">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8,1 L13,8 L3,8 Z' fill='%23fbc881'/%3E%3Cpath d='M3,8 L13,8 L8,15 Z' fill='%23040404'/%3E%3C/svg%3E">
<link rel="apple-touch-icon" href="assets/apple-touch-icon.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
:root {
--bg: #f4edf3;
--bg-shifted: #efe5ef;
--text: #040404;
--text-light: #fbfbfb;
--text-muted: #8a8ea9;
--primary: #fbc881;
--primary-deep: #e5a94e;
--muted: #c8c3cd;
--muted-soft: rgba(200, 195, 205, 0.4);
--card-bg: rgba(255, 255, 255, 0.45);
--card-border: rgba(255, 255, 255, 0.55);
--radius: 20px;
}
body {
font-family: 'Inter', system-ui, -apple-system, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
body::before {
content: '';
position: fixed;
inset: 0;
background:
radial-gradient(ellipse 80% 60% at 25% 20%, rgba(251,200,129,0.07) 0%, transparent 60%),
radial-gradient(ellipse 70% 50% at 75% 70%, rgba(138,142,169,0.06) 0%, transparent 50%);
pointer-events: none;
z-index: 0;
}
a { color: inherit; text-decoration: none; }
/* ── Nav ── */
nav {
position: fixed; top: 0; left: 0; right: 0; height: 64px;
display: flex; align-items: center; justify-content: space-between;
padding: 0 32px; z-index: 100;
background: rgba(244, 237, 243, 0.9);
backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
border-bottom: 1px solid var(--muted-soft);
}
.nav-logo {
display: flex; align-items: center; gap: 10px;
font-size: 1.1rem; font-weight: 400; letter-spacing: -0.02em;
}
.nav-logo svg { width: 28px; height: 28px; }
.nav-logo .ai { font-weight: 700; color: var(--primary-deep); }
.btn {
display: inline-flex; align-items: center; justify-content: center;
padding: 10px 24px; border-radius: 50px; font-size: 0.875rem;
font-weight: 600; border: none; cursor: pointer;
font-family: inherit; transition: all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.btn-primary { background: var(--text); color: var(--text-light); }
.btn-primary:hover { background: #222; transform: translateY(-1px); box-shadow: 0 8px 24px rgba(0,0,0,0.12); }
.btn-primary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
/* ── Content ── */
.page-header {
padding: 120px 24px 48px; text-align: center; position: relative; z-index: 2;
}
.page-header .label {
font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em;
text-transform: uppercase; color: var(--primary-deep); margin-bottom: 12px;
}
.page-header h1 {
font-size: clamp(2rem, 4vw, 3rem); font-weight: 600;
letter-spacing: -0.03em; line-height: 1.15; margin-bottom: 12px;
}
.page-header .meta {
font-size: 0.85rem; color: var(--text-muted);
}
.content {
max-width: 720px; margin: 0 auto; padding: 0 24px 100px;
position: relative; z-index: 2;
}
.content section {
margin-bottom: 48px;
}
.content h2 {
font-size: 1.25rem; font-weight: 600; letter-spacing: -0.02em;
margin-bottom: 16px; padding-bottom: 8px;
border-bottom: 1px solid var(--muted-soft);
}
.content h3 {
font-size: 1.05rem; font-weight: 600; margin: 24px 0 8px;
}
.content p {
margin-bottom: 12px; color: var(--text); font-size: 0.94rem; line-height: 1.75;
}
.content ul, .content ol {
margin: 0 0 16px 20px; font-size: 0.94rem; line-height: 1.75;
}
.content li { margin-bottom: 6px; }
.content strong { font-weight: 600; }
.content a {
color: var(--primary-deep); text-decoration: underline;
text-underline-offset: 2px;
}
.content a:hover { color: var(--text); }
.callout {
padding: 20px 24px; border-radius: 12px;
background: var(--card-bg); backdrop-filter: blur(16px);
border: 1px solid var(--card-border); margin-bottom: 20px;
}
.callout p { margin-bottom: 0; }
.callout .icon { font-size: 1.2rem; margin-right: 8px; }
/* ── Footer ── */
footer {
padding: 40px 24px; text-align: center;
border-top: 1px solid var(--muted-soft); position: relative; z-index: 2;
}
.footer-logo {
display: flex; align-items: center; justify-content: center;
gap: 8px; margin-bottom: 10px; color: var(--text-muted); font-size: 0.95rem;
}
.footer-logo svg { width: 22px; height: 22px; }
.footer-logo .ai { font-weight: 700; }
footer .legal { font-size: 0.78rem; color: var(--muted); }
footer .legal a { color: var(--text-muted); text-decoration: underline; text-underline-offset: 2px; }
footer .legal a:hover { color: var(--text); }
@media (max-width: 640px) {
nav { padding: 0 16px; }
.page-header { padding: 100px 20px 36px; }
.content { padding: 0 20px 80px; }
}
</style>
</head>
<body>
<nav role="navigation" aria-label="Main navigation">
<a href="./" class="nav-logo" aria-label="adiuvAI home">
<svg viewBox="0 0 64 64" fill="none" aria-hidden="true">
<path d="M32,4 L48,32 L16,32 Z" fill="#fbc881"/>
<path d="M16,32 L48,32 L32,60 Z" fill="#040404"/>
<circle cx="32" cy="32" r="2.5" fill="#040404" opacity="0.18"/>
</svg>
adiuv<span class="ai">AI</span>
</a>
<a href="./#final-cta" class="btn btn-primary">Join the waitlist</a>
</nav>
<header class="page-header">
<p class="label">Legal</p>
<h1>Terms of Service</h1>
<p class="meta">Last updated: April 11, 2026</p>
</header>
<main class="content">
<div class="callout">
<p><span class="icon">📋</span> <strong>The short version:</strong> Use adiuvAI for legitimate productivity purposes. Your local data is yours. Our cloud services have fair usage limits by tier. Don't abuse the service. We'll treat you fairly.</p>
</div>
<section>
<h2>1. Acceptance of Terms</h2>
<p>By creating an account, downloading, or using the adiuvAI desktop application ("App"), website ("Site"), or any associated cloud services ("Services"), you agree to these Terms of Service ("Terms"). If you do not agree, do not use adiuvAI.</p>
<p>These Terms constitute a legally binding agreement between you ("User", "you") and adiuvAI, operated by Roberto Musso ("we", "us", "our"), based in the European Union.</p>
</section>
<section>
<h2>2. Description of Service</h2>
<p>adiuvAI is an AI-powered personal secretary application that:</p>
<ul>
<li>Runs as a desktop application on your computer (Windows, macOS, Linux)</li>
<li>Processes your emails, files, and tasks <strong>locally on your device</strong></li>
<li>Generates daily briefings, task prioritization, and smart notes using AI</li>
<li>Optionally connects to cloud services for account management, backup, sync, and billing</li>
</ul>
<p>The App is local-first: core functionality works without an internet connection. Cloud features require an account and, for premium tiers, a paid subscription.</p>
</section>
<section>
<h2>3. Accounts</h2>
<h3>3a. Registration</h3>
<p>You must provide a valid email address and create a password, or sign in via Google OAuth. You must be at least 16 years old to create an account.</p>
<h3>3b. Account Security</h3>
<p>You are responsible for maintaining the security of your account credentials. Do not share your password. Notify us immediately at <a href="mailto:security@adiuvai.com">security@adiuvai.com</a> if you suspect unauthorized access.</p>
<h3>3c. Account Deletion</h3>
<p>You may delete your account at any time from within the App or by contacting us. Upon deletion, we will remove all server-side data associated with your account within 30 days. Local data remains on your device until you delete it.</p>
</section>
<section>
<h2>4. Subscription Tiers &amp; Billing</h2>
<p>adiuvAI offers multiple subscription tiers with different feature sets and usage limits. Free tier users can use core features without payment.</p>
<h3>4a. Payments</h3>
<ul>
<li>Paid subscriptions are billed through Stripe.</li>
<li>Prices are displayed before purchase and may change with 30 days' notice.</li>
<li>Subscriptions renew automatically unless cancelled.</li>
</ul>
<h3>4b. Cancellation &amp; Refunds</h3>
<ul>
<li>You may cancel your subscription at any time. Access to paid features continues until the end of the current billing period.</li>
<li>We offer a 14-day refund period from the first payment. After that, refunds are at our discretion.</li>
<li>Downgrading to Free tier does not delete any local data. Cloud backup data exceeding Free tier limits will be retained for 30 days, then deleted.</li>
</ul>
<h3>4c. Fair Usage</h3>
<p>Each tier includes specific rate limits and storage quotas. Automated abuse of the API (e.g., scripted requests beyond your tier's rate limit) may result in temporary throttling or account suspension.</p>
</section>
<section>
<h2>5. Your Data &amp; Content</h2>
<h3>5a. Ownership</h3>
<p><strong>You own your data.</strong> All content you create, input, or process through adiuvAI (emails, tasks, notes, projects, files) remains your property. We claim no ownership or license over your content.</p>
<h3>5b. Local Data</h3>
<p>Data processed and stored locally by the App is under your sole control. We cannot access, view, or recover local data. You are responsible for your own backups of local data.</p>
<h3>5c. Cloud Data</h3>
<p>If you use cloud backup or sync features, you grant us a limited, non-exclusive license to store and transmit your encrypted data solely for the purpose of providing the backup/sync service. This license terminates when you delete your account or the relevant data.</p>
<h3>5d. AI Processing</h3>
<p>When using AI features, portions of your content are sent to third-party LLM providers (OpenAI, Anthropic, or equivalent) for processing. By using AI features, you consent to this processing. We minimize the data sent and use provider tiers that do not train on your data. See our <a href="./privacy.html">Privacy Policy</a> for details.</p>
</section>
<section>
<h2>6. Acceptable Use</h2>
<p>You agree not to:</p>
<ul>
<li>Use adiuvAI for any illegal purpose or in violation of applicable laws</li>
<li>Attempt to reverse-engineer, decompile, or extract source code from the App beyond what's permitted by applicable law</li>
<li>Circumvent rate limits, tier restrictions, or security measures</li>
<li>Use adiuvAI to process data you do not have the right to process (e.g., emails from accounts you don't own)</li>
<li>Resell, sublicense, or redistribute adiuvAI without written permission</li>
<li>Introduce malicious code or use the service to harm others</li>
<li>Overwhelm the service with automated requests beyond what a reasonable individual user would generate</li>
</ul>
<p>Violation of these terms may result in account suspension or termination.</p>
</section>
<section>
<h2>7. Intellectual Property</h2>
<p>The adiuvAI application, website, brand, logo (the compass needle mark), documentation, and all associated code and designs are the intellectual property of adiuvAI / Roberto Musso. These Terms do not grant you any right to our intellectual property except the limited right to use the App as described.</p>
<p>The App is licensed, not sold. Your subscription or free tier access grants a personal, non-transferable, non-exclusive, revocable license to use the App.</p>
</section>
<section>
<h2>8. Third-Party Services</h2>
<p>adiuvAI integrates with third-party services at your direction (Gmail, Outlook, Teams, Telegram). Your use of these integrations is also governed by their respective terms of service. We are not responsible for third-party service availability, changes, or how they handle your data.</p>
</section>
<section>
<h2>9. Availability &amp; Modifications</h2>
<h3>9a. Service Availability</h3>
<p>We strive for high availability of cloud services but do not guarantee uninterrupted access. The desktop App's core features work offline regardless of server status.</p>
<h3>9b. Changes to the Service</h3>
<p>We may modify, update, or discontinue features of adiuvAI at any time. Material changes to paid features will be communicated with 30 days' notice. If a change significantly reduces the value of your paid subscription, you may cancel for a prorated refund.</p>
<h3>9c. Changes to These Terms</h3>
<p>We may update these Terms from time to time. Material changes will be communicated via email or in-app notification at least 14 days before taking effect. Continued use after the effective date constitutes acceptance.</p>
</section>
<section>
<h2>10. Disclaimers</h2>
<p>adiuvAI is provided <strong>"as is"</strong> and <strong>"as available"</strong> without warranties of any kind, express or implied, to the maximum extent permitted by law. Specifically:</p>
<ul>
<li>We do not warrant that the AI will always produce accurate, complete, or useful output. AI-generated content (daily briefs, task summaries, prioritization) should be reviewed by you.</li>
<li>We do not warrant uninterrupted or error-free operation.</li>
<li>We are not responsible for data loss on your local device. You are responsible for your own backups.</li>
</ul>
</section>
<section>
<h2>11. Limitation of Liability</h2>
<p>To the maximum extent permitted by applicable law:</p>
<ul>
<li>Our total liability to you for any claims arising from or relating to these Terms or the Service shall not exceed the amount you paid us in the 12 months preceding the claim, or €100, whichever is greater.</li>
<li>We shall not be liable for indirect, incidental, special, consequential, or punitive damages, including loss of data, revenue, or business opportunities.</li>
<li>These limitations apply regardless of the theory of liability (contract, tort, strict liability, or otherwise).</li>
</ul>
<p>Nothing in these Terms excludes liability for death, personal injury caused by negligence, fraud, or any liability that cannot be excluded under EU law.</p>
</section>
<section>
<h2>12. Indemnification</h2>
<p>You agree to indemnify and hold harmless adiuvAI and its operator from claims, damages, or expenses (including reasonable legal fees) arising from your use of the Service, violation of these Terms, or infringement of any third-party rights.</p>
</section>
<section>
<h2>13. Governing Law &amp; Disputes</h2>
<p>These Terms are governed by the laws of Italy and the European Union. For EU consumers, mandatory consumer protection laws of your country of residence apply where they provide greater protection.</p>
<p>Any disputes shall first be attempted to be resolved through good-faith negotiation. If unresolved within 30 days, disputes may be submitted to the competent courts of Italy, subject to your right as an EU consumer to bring proceedings in your country of residence.</p>
<p>You may also use the EU Online Dispute Resolution platform: <a href="https://ec.europa.eu/consumers/odr" target="_blank" rel="noopener">ec.europa.eu/consumers/odr</a>.</p>
</section>
<section>
<h2>14. Beta Program</h2>
<p>During the beta period, the Service may contain bugs, incomplete features, or instability. By participating in the beta:</p>
<ul>
<li>You accept that the App may not perform as expected</li>
<li>You agree to report issues or provide feedback when possible</li>
<li>Beta access is provided free of charge — no paid features are guaranteed during beta</li>
<li>We may reset data, revoke access, or change features without notice during the beta period</li>
</ul>
</section>
<section>
<h2>15. Termination</h2>
<p>You may stop using adiuvAI and delete your account at any time. We may terminate or suspend your account if you materially violate these Terms, after giving you reasonable notice and an opportunity to cure (except in cases of severe abuse or illegal activity).</p>
<p>Upon termination, your right to use the cloud Services ends immediately. Local data on your device remains yours. Encrypted cloud backups are deleted within 30 days.</p>
</section>
<section>
<h2>16. Severability</h2>
<p>If any provision of these Terms is found unenforceable, the remaining provisions continue in full force. The unenforceable provision will be modified to the minimum extent necessary to make it enforceable.</p>
</section>
<section>
<h2>17. Contact</h2>
<p>For questions about these Terms:</p>
<p>
<strong>Email:</strong> <a href="mailto:legal@adiuvai.com">legal@adiuvai.com</a><br>
<strong>Operator:</strong> Roberto Musso, adiuvAI<br>
<strong>Location:</strong> European Union
</p>
</section>
</main>
<footer>
<div class="footer-logo">
<svg viewBox="0 0 64 64" fill="none" aria-hidden="true">
<path d="M32,4 L48,32 L16,32 Z" fill="#fbc881"/>
<path d="M16,32 L48,32 L32,60 Z" fill="currentColor"/>
</svg>
adiuv<span class="ai">AI</span>
</div>
<p class="legal">
&copy; 2026 adiuvAI. All rights reserved.
&nbsp;&middot;&nbsp;
<a href="./privacy.html">Privacy</a>
&nbsp;&middot;&nbsp;
<a href="./terms.html" aria-current="page">Terms</a>
</p>
</footer>
<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "33a52748219640618115655d931ddb87"}'></script>
</body>
</html>