add multilanguage support
All checks were successful
Deploy Website / deploy (push) Successful in 3s

This commit is contained in:
Roberto Musso
2026-04-12 09:56:20 +02:00
parent 26e81d3b79
commit 14cb07e1a7
9 changed files with 790 additions and 85 deletions

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;
@@ -1075,7 +1156,17 @@
<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>
<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">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>
</nav>
<!-- ═══════ HERO ═══════ -->
@@ -1094,35 +1185,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 +1226,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 +1278,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 +1314,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 +1344,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 +1410,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 +1422,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 +1433,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 +1459,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 +1662,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 {
@@ -1592,7 +1685,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,6 +1697,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>