diff --git a/website/astro.config.mjs b/website/astro.config.mjs
index 106618b..60217f3 100644
--- a/website/astro.config.mjs
+++ b/website/astro.config.mjs
@@ -71,7 +71,8 @@ export default defineConfig({
!page.includes("/tags/") &&
!page.includes("/account/") &&
!page.includes("/oauth/") &&
- !page.includes("/invite/")
+ !page.includes("/invite/") &&
+ !page.includes("/en-US")
);
},
serialize: (item) => {
@@ -86,6 +87,27 @@ export default defineConfig({
item.url = item.url.replace(/^https?:\/\/[^/]+/, baseUrl);
}
+ if (item.links?.length) {
+ item.links = item.links.map((link) => ({
+ ...link,
+ url: link.url.replace(/^https?:\/\/[^/]+/, baseUrl),
+ }));
+
+ // Point x-default at the English (root) alternate
+ const defaultLink = item.links.find(
+ (link) => link.lang === LOCALES_MAP[DEFAULT_LOCALE],
+ );
+ if (
+ defaultLink &&
+ !item.links.some((link) => link.lang === "x-default")
+ ) {
+ item.links.push({
+ url: defaultLink.url,
+ lang: "x-default",
+ });
+ }
+ }
+
// Check if this is a homepage link using the current base URL
const homepageLinks = SUPPORTED_LOCALES.map((locale) => {
if (locale === DEFAULT_LOCALE) return `${baseUrl}/`;
diff --git a/website/public/_redirects b/website/public/_redirects
index 1a83d31..b4c530b 100644
--- a/website/public/_redirects
+++ b/website/public/_redirects
@@ -1,4 +1,7 @@
/quantum-security-checker /quantum-risk-checker 301
/quantum-security-checker/ /quantum-risk-checker 301
/quests /quests/shill 301
-/quests/ /quests/shill 301
\ No newline at end of file
+/quests/ /quests/shill 301
+/en-US / 301
+/en-US/ / 301
+/en-US/* /:splat 301
diff --git a/website/public/robots.txt b/website/public/robots.txt
index cd352e8..5559fcc 100644
--- a/website/public/robots.txt
+++ b/website/public/robots.txt
@@ -1,4 +1,6 @@
User-agent: *
+Content-Signal: search=yes, ai-input=yes, ai-train=yes
+
Allow: /
Sitemap: https://www.quantus.com/sitemap-index.xml
\ No newline at end of file
diff --git a/website/src/components/features/about/ContactSection.astro b/website/src/components/features/about/ContactSection.astro
index 2aa770e..bd8681b 100644
--- a/website/src/components/features/about/ContactSection.astro
+++ b/website/src/components/features/about/ContactSection.astro
@@ -21,6 +21,8 @@ const t = await createTranslator(locale);
href="mailto:hello@quantus.com"
class="contact-email about-animate"
data-delay="0.45"
+ data-track="contact_email_click"
+ data-track-cta-location="about_contact"
>
{t("about.contact.email")}
@@ -28,6 +30,8 @@ const t = await createTranslator(locale);
href="mailto:hello@quantus.com?subject=Enquiry%20from%20Quantus%20Website"
class="contact-cta about-animate"
data-delay="0.6"
+ data-track="contact_email_click"
+ data-track-cta-location="about_contact"
>
{t("about.contact.cta")}
diff --git a/website/src/components/features/community/EventSection.astro b/website/src/components/features/community/EventSection.astro
index 0a10373..2838c86 100644
--- a/website/src/components/features/community/EventSection.astro
+++ b/website/src/components/features/community/EventSection.astro
@@ -26,7 +26,10 @@ const t = await createTranslator(locale);
href="https://tally.so/r/D4502E"
target="_blank"
rel="noopener"
- class="event-cta">{t("community.events.card.cta")}{t("community.events.card.cta")}
diff --git a/website/src/components/features/community/SocialsSection.astro b/website/src/components/features/community/SocialsSection.astro
index 9f15f29..044a9c9 100644
--- a/website/src/components/features/community/SocialsSection.astro
+++ b/website/src/components/features/community/SocialsSection.astro
@@ -20,6 +20,9 @@ const t = await createTranslator(locale);
rel="noopener"
class="social-box comm-animate"
data-delay="0"
+ data-track="community_click"
+ data-track-channel="x"
+ data-track-cta-location="community_socials"
>
{t("community.socials.platforms.x")}
@@ -32,6 +35,9 @@ const t = await createTranslator(locale);
rel="noopener"
class="social-box comm-animate"
data-delay="0.08"
+ data-track="community_click"
+ data-track-channel="instagram"
+ data-track-cta-location="community_socials"
>
{t("community.socials.platforms.instagram")}
@@ -56,6 +62,9 @@ const t = await createTranslator(locale);
rel="noopener"
class="social-box comm-animate"
data-delay="0.24"
+ data-track="community_click"
+ data-track-channel="youtube"
+ data-track-cta-location="community_socials"
>
{t("community.socials.platforms.youtube")}
diff --git a/website/src/components/features/community/TelegramSection.astro b/website/src/components/features/community/TelegramSection.astro
index 68a86c7..aa8c156 100644
--- a/website/src/components/features/community/TelegramSection.astro
+++ b/website/src/components/features/community/TelegramSection.astro
@@ -22,7 +22,11 @@ const t = await createTranslator(locale);
target="_blank"
rel="noopener"
class="telegram-btn comm-animate"
- data-delay="0.45">{t("community.telegram.cta")}{t("community.telegram.cta")}
diff --git a/website/src/components/features/home/CommunitySection.astro b/website/src/components/features/home/CommunitySection.astro
index e7ca9f6..7f2a377 100644
--- a/website/src/components/features/home/CommunitySection.astro
+++ b/website/src/components/features/home/CommunitySection.astro
@@ -43,6 +43,9 @@ const t = await createTranslator(locale);
href="https://t.me/quantusnetwork"
target="_blank"
class="community-panel-cta"
+ data-track="community_click"
+ data-track-channel="telegram"
+ data-track-cta-location="home_community"
>
{t("home.community.cards.telegram.cta")}
@@ -73,6 +76,9 @@ const t = await createTranslator(locale);
href="https://x.com/QuantusNetwork"
target="_blank"
class="community-panel-cta"
+ data-track="community_click"
+ data-track-channel="x"
+ data-track-cta-location="home_community"
>
{t("home.community.cards.x.cta")}
@@ -118,6 +124,9 @@ const t = await createTranslator(locale);
href="https://www.instagram.com/quantusnetwork/"
target="_blank"
class="community-panel-cta"
+ data-track="community_click"
+ data-track-channel="instagram"
+ data-track-cta-location="home_community"
>
{t("home.community.cards.instagram.cta")}
@@ -148,6 +157,9 @@ const t = await createTranslator(locale);
href="https://www.youtube.com/@QuantusNetwork"
target="_blank"
class="community-panel-cta"
+ data-track="community_click"
+ data-track-channel="youtube"
+ data-track-cta-location="home_community"
>
{t("home.community.cards.youtube.cta")}
diff --git a/website/src/components/features/home/EcosystemSection.astro b/website/src/components/features/home/EcosystemSection.astro
index 6b20774..cef6c87 100644
--- a/website/src/components/features/home/EcosystemSection.astro
+++ b/website/src/components/features/home/EcosystemSection.astro
@@ -128,6 +128,9 @@ const t = await createTranslator(locale);
target="_blank"
rel="noopener"
class="eco-dl-tag"
+ data-track="wallet_store_click"
+ data-track-store="ios"
+ data-track-cta-location="home_ecosystem"
>
{t("home.ecosystem.cards.wallet.app_store")}
@@ -136,6 +139,9 @@ const t = await createTranslator(locale);
target="_blank"
rel="noopener"
class="eco-dl-tag"
+ data-track="wallet_store_click"
+ data-track-store="android"
+ data-track-cta-location="home_ecosystem"
>
{t("home.ecosystem.cards.wallet.google_play")}
@@ -340,7 +346,14 @@ const t = await createTranslator(locale);
{t("home.ecosystem.cards.network.validators")}
diff --git a/website/src/components/features/home/HeroBanner.astro b/website/src/components/features/home/HeroBanner.astro
index ced483d..e5f68d3 100644
--- a/website/src/components/features/home/HeroBanner.astro
+++ b/website/src/components/features/home/HeroBanner.astro
@@ -25,6 +25,8 @@ const t = await createTranslator(locale);
class="wallet-cta-link"
target="_blank"
rel="noopener"
+ data-track="wallet_store_click"
+ data-track-cta-location="home_hero"
>
{t("home.hero_banner.cta_download_wallet")}
diff --git a/website/src/components/features/home/NewsletterSection.astro b/website/src/components/features/home/NewsletterSection.astro
index dc88a06..c04014f 100644
--- a/website/src/components/features/home/NewsletterSection.astro
+++ b/website/src/components/features/home/NewsletterSection.astro
@@ -310,6 +310,7 @@ const t = await createTranslator(locale);
diff --git a/website/src/components/ui/AppInformation.astro b/website/src/components/ui/AppInformation.astro
index f277f36..6987984 100644
--- a/website/src/components/ui/AppInformation.astro
+++ b/website/src/components/ui/AppInformation.astro
@@ -45,6 +45,9 @@ const t = await createTranslator(locale);
href={APP_LINKS.ios}
target="_blank"
rel="noopener noreferrer"
+ data-track="wallet_store_click"
+ data-track-store="ios"
+ data-track-cta-location="account"
>
{t("app.download.ios")}
@@ -54,6 +57,9 @@ const t = await createTranslator(locale);
href={APP_LINKS.android}
target="_blank"
rel="noopener noreferrer"
+ data-track="wallet_store_click"
+ data-track-store="android"
+ data-track-cta-location="account"
>
{t("app.download.android")}
diff --git a/website/src/components/ui/Button.astro b/website/src/components/ui/Button.astro
index 6d32795..72431d2 100644
--- a/website/src/components/ui/Button.astro
+++ b/website/src/components/ui/Button.astro
@@ -14,6 +14,8 @@ export interface Props {
href?: string;
target?: string;
rel?: string;
+ /** Allow data-track* and other passthrough HTML attributes */
+ [key: `data-${string}`]: string | undefined;
}
const {
diff --git a/website/src/components/ui/CookieConsent.astro b/website/src/components/ui/CookieConsent.astro
index 2419db5..a2557ef 100644
--- a/website/src/components/ui/CookieConsent.astro
+++ b/website/src/components/ui/CookieConsent.astro
@@ -41,6 +41,9 @@ const t = await createTranslator(locale);