Compare commits

...

5 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
9 changed files with 800 additions and 86 deletions

View File

@@ -31,6 +31,9 @@ jobs:
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/"

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 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();
}

View File

@@ -5,10 +5,35 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>adiuvAI — Your AI Secretary</title>
<meta name="description" content="adiuvAI is an AI-powered personal secretary that reads your email, organizes your work, and briefs you every morning — all without your data leaving your device.">
<link rel="canonical" href="https://adiuvai.com/">
<meta name="theme-color" content="#f4edf3">
<!-- Hreflang for multilanguage SEO -->
<link rel="alternate" hreflang="en" href="https://adiuvai.com/">
<link rel="alternate" hreflang="it" href="https://adiuvai.com/?lang=it">
<link rel="alternate" hreflang="es" href="https://adiuvai.com/?lang=es">
<link rel="alternate" hreflang="fr" href="https://adiuvai.com/?lang=fr">
<link rel="alternate" hreflang="de" href="https://adiuvai.com/?lang=de">
<link rel="alternate" hreflang="x-default" href="https://adiuvai.com/">
<!-- Open Graph -->
<meta property="og:title" content="adiuvAI — Meet your new chief of staff">
<meta property="og:description" content="What if AI could be your secretary? Private by design. EU AI Act compliant. Beta June 2026.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://adiuvai.com/">
<meta property="og:image" content="https://adiuvai.com/assets/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:site_name" content="adiuvAI">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="adiuvAI — Your AI Secretary">
<meta name="twitter:description" content="What if AI could be your secretary? Private by design. EU AI Act compliant. Beta June 2026.">
<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">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
@@ -173,6 +198,62 @@
.nav-logo svg { width: 28px; height: 28px; }
.nav-logo .ai { font-weight: 700; color: var(--primary-deep); }
/* Language Switcher */
.nav-right { display: flex; align-items: center; gap: 12px; }
.lang-switcher {
position: relative;
font-size: 0.78rem;
font-weight: 600;
letter-spacing: 0.04em;
}
.lang-switcher summary {
list-style: none;
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
padding: 6px 10px;
border-radius: 8px;
border: 1px solid var(--muted-soft);
background: rgba(255,255,255,0.4);
color: var(--text-muted);
transition: all 0.2s;
user-select: none;
}
.lang-switcher summary::-webkit-details-marker { display: none; }
.lang-switcher summary:hover { background: rgba(255,255,255,0.7); color: var(--text); }
.lang-switcher[open] summary { background: rgba(255,255,255,0.7); color: var(--text); }
.lang-options {
position: absolute;
top: calc(100% + 6px);
right: 0;
background: rgba(255,255,255,0.95);
backdrop-filter: blur(16px);
border: 1px solid var(--muted-soft);
border-radius: 10px;
padding: 4px;
display: flex;
flex-direction: column;
min-width: 56px;
box-shadow: 0 8px 24px rgba(0,0,0,0.08);
z-index: 200;
}
.lang-option {
padding: 6px 12px;
border: none;
background: none;
cursor: pointer;
font-family: inherit;
font-size: 0.78rem;
font-weight: 600;
color: var(--text-muted);
border-radius: 6px;
transition: all 0.15s;
text-align: center;
}
.lang-option:hover { background: rgba(251,200,129,0.12); color: var(--text); }
.lang-option.active { color: var(--primary-deep); background: rgba(251,200,129,0.15); }
.btn {
display: inline-flex;
align-items: center;
@@ -1041,6 +1122,10 @@
.features-grid { grid-template-columns: 1fr; }
.pillars { flex-direction: column; align-items: center; }
nav { padding: 0 16px; }
.nav-right { gap: 8px; }
.lang-switcher summary { padding: 6px; gap: 0; }
.lang-switcher .lang-label { display: none; }
.nav-right .btn-primary { padding: 8px 16px; font-size: 0.78rem; }
.section { padding: 48px 20px; }
.final-cta { padding: 48px 20px; }
.founder-quote { padding: 28px; }
@@ -1075,7 +1160,19 @@
<circle cx="32" cy="32" r="2.5" fill="#040404" opacity="0.18"/>
</svg><span>adiuv<span class="ai">AI</span></span>
</a>
<a href="#final-cta" class="btn btn-primary">Join the waitlist</a>
<div class="nav-right">
<details id="lang-dropdown" class="lang-switcher">
<summary class="lang-current" aria-label="Select language"><i data-lucide="globe" style="width:16px;height:16px;"></i> <span id="lang-current-label" class="lang-label">EN</span></summary>
<div class="lang-options">
<button class="lang-option active" data-lang="en">EN</button>
<button class="lang-option" data-lang="it">IT</button>
<button class="lang-option" data-lang="es">ES</button>
<button class="lang-option" data-lang="fr">FR</button>
<button class="lang-option" data-lang="de">DE</button>
</div>
</details>
<a href="#final-cta" class="btn btn-primary" data-i18n="navJoinWaitlist">Join the waitlist</a>
</div>
</nav>
<!-- ═══════ HERO ═══════ -->
@@ -1094,35 +1191,35 @@
</div>
<div class="hero-badge hero-el">
<span class="dot"></span> Beta launching June 2026
<span class="dot"></span> <span data-i18n="heroBadge">Beta launching June 2026</span>
</div>
<p class="hero-tagline hero-el">Meet your new chief of staff.</p>
<p class="hero-tagline hero-el" data-i18n="heroTagline">Meet your new chief of staff.</p>
<h1 class="hero-el">
<h1 class="hero-el" data-i18n-html="heroH1">
What if AI could be<br>
<span class="accent">your secretary?</span>
</h1>
<p class="hero-sub hero-el">
<p class="hero-sub hero-el" data-i18n="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.
</p>
<form class="waitlist-form hero-el" id="waitlist-hero" aria-label="Join the waitlist">
<input type="email" name="email" placeholder="your@email.com" required autocomplete="email" aria-label="Email address">
<button type="submit" class="btn btn-primary">Get early access</button>
<button type="submit" class="btn btn-primary" data-i18n="heroButton">Get early access</button>
</form>
<p class="form-note hero-el">Free to start · No credit card · <a href="./privacy.html" style="color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;">Privacy policy</a></p>
<p class="form-note hero-el"><span data-i18n="heroFormNote">Free to start · No credit card</span> · <a href="./privacy.html" style="color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;">Privacy policy</a></p>
<div class="form-success" id="success-hero" role="status">
<div class="check-icon"><i data-lucide="mail" style="color: var(--primary-deep); width:24px; height:24px;"></i></div>
<p>Check your inbox!</p>
<p class="sub">We sent you a confirmation link. Click it to secure your spot.</p>
<p data-i18n="heroSuccessTitle">Check your inbox!</p>
<p class="sub" data-i18n="heroSuccessSub">We sent you a confirmation link. Click it to secure your spot.</p>
</div>
<div class="scroll-hint" aria-hidden="true">
<i data-lucide="chevron-down" style="width:16px; height:16px;"></i>
scroll
<span data-i18n="scrollHint">scroll</span>
</div>
</section>
@@ -1135,33 +1232,33 @@
<div class="wt-text">
<div class="wt-step-pin">
<div class="wt-step" data-step="0">
<p class="wt-step-num">The problem</p>
<h3>Your important emails hide between newsletters.</h3>
<p>You miss deadlines buried in threads. Tasks get lost across three different apps. Sound familiar?</p>
<p class="wt-step-num" data-i18n="wtStep0Label">The problem</p>
<h3 data-i18n="wtStep0Title">Your important emails hide between newsletters.</h3>
<p data-i18n="wtStep0Desc">You miss deadlines buried in threads. Tasks get lost across three different apps. Sound familiar?</p>
<div class="wt-dots"><span class="wt-dot active"></span><span class="wt-dot"></span><span class="wt-dot"></span><span class="wt-dot"></span></div>
</div>
</div>
<div class="wt-step-pin">
<div class="wt-step" data-step="1">
<p class="wt-step-num">The greeting</p>
<h3>Every morning, your AI secretary is ready.</h3>
<p>Open the app and it already knows what happened overnight — emails scanned, tasks prioritized, deadlines flagged.</p>
<p class="wt-step-num" data-i18n="wtStep1Label">The greeting</p>
<h3 data-i18n="wtStep1Title">Every morning, your AI secretary is ready.</h3>
<p data-i18n="wtStep1Desc">Open the app and it already knows what happened overnight — emails scanned, tasks prioritized, deadlines flagged.</p>
<div class="wt-dots"><span class="wt-dot"></span><span class="wt-dot active"></span><span class="wt-dot"></span><span class="wt-dot"></span></div>
</div>
</div>
<div class="wt-step-pin">
<div class="wt-step" data-step="2">
<p class="wt-step-num">The brief</p>
<h3>Meeting notes sit in a doc you'll never open again.</h3>
<p>Not here. Your daily brief is a clear, AI-generated summary of what matters today — tasks, follow-ups, and deadlines in one place.</p>
<p class="wt-step-num" data-i18n="wtStep2Label">The brief</p>
<h3 data-i18n="wtStep2Title">Meeting notes sit in a doc you'll never open again.</h3>
<p data-i18n="wtStep2Desc">Not here. Your daily brief is a clear, AI-generated summary of what matters today — tasks, follow-ups, and deadlines in one place.</p>
<div class="wt-dots"><span class="wt-dot"></span><span class="wt-dot"></span><span class="wt-dot active"></span><span class="wt-dot"></span></div>
</div>
</div>
<div class="wt-step-pin">
<div class="wt-step" data-step="3">
<p class="wt-step-num">The result</p>
<h3 class="emphasis">You don't need another tool.<br>You need <em>a secretary</em>.</h3>
<p>Ask it anything. It understands your projects, your emails, your schedule — and it never leaves your device.</p>
<p class="wt-step-num" data-i18n="wtStep3Label">The result</p>
<h3 class="emphasis" data-i18n-html="wtStep3Title">You don't need another tool.<br>You need <em>a secretary</em>.</h3>
<p data-i18n="wtStep3Desc">Ask it anything. It understands your projects, your emails, your schedule — and it never leaves your device.</p>
<div class="wt-dots"><span class="wt-dot"></span><span class="wt-dot"></span><span class="wt-dot"></span><span class="wt-dot active"></span></div>
</div>
</div>
@@ -1187,32 +1284,32 @@
<!-- Main -->
<div class="wt-main">
<div class="wt-greeting" id="wt-greeting">
<div class="wt-greeting-label">Good morning,</div>
<div class="wt-greeting-label" data-i18n="wtGreetingLabel">Good morning,</div>
<div class="wt-greeting-name">James <span class="wt-sparkle"></span></div>
</div>
<div class="wt-brief" id="wt-brief">
<div class="wt-brief" id="wt-brief" data-i18n="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.
</div>
<div class="wt-chat" id="wt-chat">
<div class="wt-chat-input">
<span>Ask me anything...</span>
<span data-i18n="wtChatPlaceholder">Ask me anything...</span>
<div class="wt-chat-send"><i data-lucide="arrow-up"></i></div>
</div>
</div>
<div class="wt-suggestions" id="wt-suggestions">
<div class="wt-suggestion"><i data-lucide="list-todo"></i> What's on my plate today?</div>
<div class="wt-suggestion"><i data-lucide="trending-up"></i> Summarize this week</div>
<div class="wt-suggestion"><i data-lucide="circle-alert"></i> Any overdue tasks?</div>
<div class="wt-suggestion"><i data-lucide="lightbulb"></i> Suggest next actions</div>
<div class="wt-suggestion"><i data-lucide="list-todo"></i> <span data-i18n="wtSuggestion1">What's on my plate today?</span></div>
<div class="wt-suggestion"><i data-lucide="trending-up"></i> <span data-i18n="wtSuggestion2">Summarize this week</span></div>
<div class="wt-suggestion"><i data-lucide="circle-alert"></i> <span data-i18n="wtSuggestion3">Any overdue tasks?</span></div>
<div class="wt-suggestion"><i data-lucide="lightbulb"></i> <span data-i18n="wtSuggestion4">Suggest next actions</span></div>
</div>
</div>
</div>
</div>
<div class="pillars wt-pillars" id="wt-pillars">
<div class="pillar"><i data-lucide="sparkles"></i> AI Secretary</div>
<div class="pillar"><i data-lucide="lock"></i> Private by Design</div>
<div class="pillar"><i data-lucide="scale"></i> EU AI Act Compliant</div>
<div class="pillar"><i data-lucide="sparkles"></i> <span data-i18n="wtPillar1">AI Secretary</span></div>
<div class="pillar"><i data-lucide="lock"></i> <span data-i18n="wtPillar2">Private by Design</span></div>
<div class="pillar"><i data-lucide="scale"></i> <span data-i18n="wtPillar3">EU AI Act Compliant</span></div>
</div>
</div>
@@ -1223,27 +1320,27 @@
<section class="section" id="how-it-works">
<div class="container">
<div class="steps-header">
<p class="section-label gs-reveal">How it works</p>
<h2 class="gs-reveal">Three steps to clarity.</h2>
<p class="section-label gs-reveal" data-i18n="howLabel">How it works</p>
<h2 class="gs-reveal" data-i18n="howHeading">Three steps to clarity.</h2>
</div>
<div class="steps">
<div class="step-card gs-reveal">
<div class="step-num">1</div>
<i data-lucide="plug"></i>
<h3>Connect</h3>
<p>Link your Gmail, Outlook, or local folders. adiuvAI starts learning what matters to you.</p>
<h3 data-i18n="step1Title">Connect</h3>
<p data-i18n="step1Desc">Link your Gmail, Outlook, or local folders. adiuvAI starts learning what matters to you.</p>
</div>
<div class="step-card gs-reveal">
<div class="step-num">2</div>
<i data-lucide="scan-search"></i>
<h3>Extract</h3>
<p>AI agents scan your email, files, and meetings. They detect tasks, deadlines, and key info — automatically.</p>
<h3 data-i18n="step2Title">Extract</h3>
<p data-i18n="step2Desc">AI agents scan your email, files, and meetings. They detect tasks, deadlines, and key info — automatically.</p>
</div>
<div class="step-card gs-reveal">
<div class="step-num">3</div>
<i data-lucide="sunrise"></i>
<h3>Brief</h3>
<p>Every morning, get a personalized briefing. Today's priorities, what changed overnight, what needs your attention.</p>
<h3 data-i18n="step3Title">Brief</h3>
<p data-i18n="step3Desc">Every morning, get a personalized briefing. Today's priorities, what changed overnight, what needs your attention.</p>
</div>
</div>
</div>
@@ -1253,63 +1350,63 @@
<section class="section" id="features">
<div class="container">
<div class="features-header">
<p class="section-label gs-reveal">Features</p>
<h2 class="gs-reveal">Built for busy people,<br>not busy work.</h2>
<p class="section-label gs-reveal" data-i18n="featLabel">Features</p>
<h2 class="gs-reveal" data-i18n-html="featHeading">Built for busy people,<br>not busy work.</h2>
</div>
<div class="features-grid">
<div class="feature-card gs-reveal">
<div class="feature-status status-beta"><span class="status-dot"></span> Beta</div>
<div class="feature-status status-beta"><span class="status-dot"></span> <span data-i18n="statusBeta">Beta</span></div>
<div class="feature-icon"><i data-lucide="sun"></i></div>
<h3>Daily Brief &amp; Carousel</h3>
<p>Start every day with clarity. Swipe through your priorities like stories.</p>
<h3 data-i18n="feat1Title">Daily Brief &amp; Carousel</h3>
<p data-i18n="feat1Desc">Start every day with clarity. Swipe through your priorities like stories.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-beta"><span class="status-dot"></span> Beta</div>
<div class="feature-status status-beta"><span class="status-dot"></span> <span data-i18n="statusBeta">Beta</span></div>
<div class="feature-icon"><i data-lucide="mail-search"></i></div>
<h3>Email → Task Extraction</h3>
<p>Gmail and Outlook integration. Important emails become tasks automatically.</p>
<h3 data-i18n="feat2Title">Email → Task Extraction</h3>
<p data-i18n="feat2Desc">Gmail and Outlook integration. Important emails become tasks automatically.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-beta"><span class="status-dot"></span> Beta</div>
<div class="feature-status status-beta"><span class="status-dot"></span> <span data-i18n="statusBeta">Beta</span></div>
<div class="feature-icon"><i data-lucide="layout-list"></i></div>
<h3>Projects &amp; Tasks</h3>
<p>Full project management with priorities, timelines, and milestone tracking.</p>
<h3 data-i18n="feat3Title">Projects &amp; Tasks</h3>
<p data-i18n="feat3Desc">Full project management with priorities, timelines, and milestone tracking.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-beta"><span class="status-dot"></span> Beta</div>
<div class="feature-status status-beta"><span class="status-dot"></span> <span data-i18n="statusBeta">Beta</span></div>
<div class="feature-icon"><i data-lucide="file-text"></i></div>
<h3>Smart Notes</h3>
<p>Markdown notes with AI-powered semantic search across your workspace.</p>
<h3 data-i18n="feat4Title">Smart Notes</h3>
<p data-i18n="feat4Desc">Markdown notes with AI-powered semantic search across your workspace.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-beta"><span class="status-dot"></span> Beta</div>
<div class="feature-status status-beta"><span class="status-dot"></span> <span data-i18n="statusBeta">Beta</span></div>
<div class="feature-icon"><i data-lucide="send"></i></div>
<h3>Telegram Bot</h3>
<p>Talk to your secretary on Telegram. Check tasks, get your brief, add notes.</p>
<h3 data-i18n="feat5Title">Telegram Bot</h3>
<p data-i18n="feat5Desc">Talk to your secretary on Telegram. Check tasks, get your brief, add notes.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-beta"><span class="status-dot"></span> Beta</div>
<div class="feature-status status-beta"><span class="status-dot"></span> <span data-i18n="statusBeta">Beta</span></div>
<div class="feature-icon"><i data-lucide="folder-search"></i></div>
<h3>File Monitoring</h3>
<p>AI agents watch your local folders and extract important information.</p>
<h3 data-i18n="feat6Title">File Monitoring</h3>
<p data-i18n="feat6Desc">AI agents watch your local folders and extract important information.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-soon"><span class="status-dot"></span> Soon</div>
<div class="feature-status status-soon"><span class="status-dot"></span> <span data-i18n="statusSoon">Soon</span></div>
<div class="feature-icon"><i data-lucide="mic"></i></div>
<h3>Voice Assistant</h3>
<p>Joins your calls, takes notes, suggests next steps — in real-time.</p>
<h3 data-i18n="feat7Title">Voice Assistant</h3>
<p data-i18n="feat7Desc">Joins your calls, takes notes, suggests next steps — in real-time.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-soon"><span class="status-dot"></span> Soon</div>
<div class="feature-status status-soon"><span class="status-dot"></span> <span data-i18n="statusSoon">Soon</span></div>
<div class="feature-icon"><i data-lucide="smartphone"></i></div>
<h3>Mobile App</h3>
<p>Your daily brief, wherever you are. Review tasks and stay in sync.</p>
<h3 data-i18n="feat8Title">Mobile App</h3>
<p data-i18n="feat8Desc">Your daily brief, wherever you are. Review tasks and stay in sync.</p>
</div>
<div class="feature-card gs-reveal">
<div class="feature-status status-roadmap"><span class="status-dot"></span> Roadmap</div>
<div class="feature-status status-roadmap"><span class="status-dot"></span> <span data-i18n="statusRoadmap">Roadmap</span></div>
<div class="feature-icon"><i data-lucide="users"></i></div>
<h3>Team Workspace</h3>
<p>Shared workspace, SSO, and team coordination — coming for organizations.</p>
<h3 data-i18n="feat9Title">Team Workspace</h3>
<p data-i18n="feat9Desc">Shared workspace, SSO, and team coordination — coming for organizations.</p>
</div>
</div>
</div>
@@ -1319,11 +1416,11 @@
<section class="section" id="founder">
<div class="container">
<div class="founder gs-reveal">
<p class="section-label">From the maker</p>
<p class="section-label" data-i18n="founderLabel">From the maker</p>
<div class="founder-quote">
<p>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.</p>
<p>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.</p>
<p>If that resonates, join the waitlist. Early adopters will shape what we build.</p>
<p data-i18n="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.</p>
<p data-i18n="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.</p>
<p data-i18n="founderP3">If that resonates, join the waitlist. Early adopters will shape what we build.</p>
<div class="founder-sig">
<svg viewBox="0 0 64 64" fill="none" aria-hidden="true">
<path d="M32,4 L48,32 L16,32 Z" fill="#fbc881"/>
@@ -1331,7 +1428,7 @@
</svg>
<div>
<div class="name">Roberto Musso</div>
<div class="title">Founder</div>
<div class="title" data-i18n="founderTitle">Founder</div>
</div>
</div>
</div>
@@ -1342,19 +1439,19 @@
<!-- ═══════ FINAL CTA ═══════ -->
<section class="final-cta" id="final-cta">
<div class="container">
<h2 class="gs-reveal">Be the first to meet<br>your AI secretary.</h2>
<p class="subtitle gs-reveal">Beta launches June 2026. Early adopters get free priority access and a voice in what we build next.</p>
<h2 class="gs-reveal" data-i18n-html="ctaHeading">Be the first to meet<br>your AI secretary.</h2>
<p class="subtitle gs-reveal" data-i18n="ctaSub">Beta launches June 2026. Early adopters get free priority access and a voice in what we build next.</p>
<form class="waitlist-form gs-reveal" id="waitlist-footer" aria-label="Join the waitlist">
<input type="email" name="email" placeholder="your@email.com" required autocomplete="email" aria-label="Email address">
<button type="submit" class="btn btn-primary">Join the waitlist</button>
<button type="submit" class="btn btn-primary" data-i18n="ctaButton">Join the waitlist</button>
</form>
<p class="form-note gs-reveal">No spam, ever. <a href="./privacy.html" style="color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;">Privacy policy</a></p>
<p class="form-note gs-reveal"><span data-i18n="ctaFormNote">No spam, ever.</span> <a href="./privacy.html" style="color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;">Privacy policy</a></p>
<div class="form-success" id="success-footer" role="status">
<div class="check-icon"><i data-lucide="mail" style="color: var(--primary-deep); width:24px; height:24px;"></i></div>
<p>Check your inbox!</p>
<p class="sub">We sent you a confirmation link. Click it to secure your spot.</p>
<p data-i18n="ctaSuccessTitle">Check your inbox!</p>
<p class="sub" data-i18n="ctaSuccessSub">We sent you a confirmation link. Click it to secure your spot.</p>
</div>
</div>
</section>
@@ -1368,11 +1465,11 @@
</svg><span>adiuv<span class="ai">AI</span></span>
</div>
<p class="legal">
&copy; 2026 adiuvAI. All rights reserved.
<span data-i18n="footerCopyright">&copy; 2026 adiuvAI. All rights reserved.</span>
&nbsp;&middot;&nbsp;
<a href="./privacy.html">Privacy</a>
<a href="./privacy.html" data-i18n="footerPrivacy">Privacy</a>
&nbsp;&middot;&nbsp;
<a href="./terms.html">Terms</a>
<a href="./terms.html" data-i18n="footerTerms">Terms</a>
</p>
</footer>
@@ -1571,7 +1668,9 @@
const btn = form.querySelector('button');
const original = btn.textContent;
btn.textContent = 'Joining…';
const lang = localStorage.getItem('adiuvai-lang') || 'en';
const t = typeof I18N !== 'undefined' ? I18N[lang] || I18N.en : null;
btn.textContent = t ? t.joining : 'Joining…';
btn.disabled = true;
try {
@@ -1581,7 +1680,7 @@
const res = await fetch('/api/v1/waitlist', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email }),
body: JSON.stringify({ email, lang }),
});
if (!res.ok) throw new Error(res.statusText);
@@ -1592,7 +1691,7 @@
if (note && note.classList.contains('form-note')) note.style.display = 'none';
document.getElementById(successId).style.display = 'block';
} catch {
btn.textContent = 'Try again';
btn.textContent = t ? t.tryAgain : 'Try again';
btn.disabled = false;
setTimeout(() => {
btn.textContent = original;
@@ -1604,5 +1703,31 @@
initForm('waitlist-hero', 'success-hero');
initForm('waitlist-footer', 'success-footer');
</script>
<!-- Structured Data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "adiuvAI",
"description": "AI-powered personal secretary that reads your email, organizes your work, and briefs you every morning — all without your data leaving your device.",
"url": "https://adiuvai.com",
"applicationCategory": "ProductivityApplication",
"operatingSystem": "Windows, macOS, Linux",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "EUR",
"availability": "https://schema.org/PreOrder"
},
"author": {
"@type": "Person",
"name": "Roberto Musso"
}
}
</script>
<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "33a52748219640618115655d931ddb87"}'></script>
<script src="i18n.js" defer></script>
</body>
</html>

View File

@@ -5,7 +5,25 @@
<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">
@@ -363,5 +381,6 @@
</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>

View File

@@ -5,7 +5,25 @@
<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">
@@ -362,5 +380,6 @@
</p>
</footer>
<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "33a52748219640618115655d931ddb87"}'></script>
</body>
</html>