Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion public/feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<link>https://usewraith.xyz/blog</link>
<description>Notes on stealth payments, private infrastructure, and the Wraith ecosystem.</description>
<language>en-us</language>
<lastBuildDate>Sat, 08 Aug 2026 18:36:39 GMT</lastBuildDate>
<lastBuildDate>Wed, 26 Aug 2026 02:49:58 GMT</lastBuildDate>
<atom:link href="https://usewraith.xyz/feed.xml" rel="self" type="application/rss+xml" />

<item>
Expand Down
44 changes: 31 additions & 13 deletions public/sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,79 +2,97 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://usewraith.xyz</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://usewraith.xyz/faq</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/privacy</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/use-cases</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/roadmap</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/case-studies</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/stellar</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/careers</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/press</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/grants</loc>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/grants/showcase</loc>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/contributors</loc>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/case-studies/payroll-processor</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://usewraith.xyz/blog</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/compare</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://usewraith.xyz/newsletter</loc>
<lastmod>2026-08-08</lastmod>
<lastmod>2026-08-26</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
Expand Down
14 changes: 14 additions & 0 deletions scripts/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,20 @@ const knownRoutes = [
'/stellar',
'/careers',
'/press',
'/grants',
'/grants/showcase',
'/contributors',
'/es',
'/es/faq',
'/es/privacy',
'/es/use-cases',
'/es/roadmap',
'/es/case-studies',
'/es/stellar',
'/es/careers',
'/es/grants',
'/es/grants/showcase',
'/es/contributors',
];

function getCaseStudyRoutes(): string[] {
Expand Down
161 changes: 160 additions & 1 deletion src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { lazy, Suspense } from 'react';
import { lazy, Suspense, useEffect, type ReactNode } from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import Header from './components/Header';
import Hero from './components/Hero';
Expand All @@ -7,6 +7,8 @@ import Layout from './components/Layout';
import TrustStrip from './components/TrustStrip';
import PartnerStrip from './components/PartnerStrip';
import { ThemeProvider } from './context/ThemeContext';
import { Seo } from './utils/seo';
import { changeLocale, type Locale } from './i18n';

// Lazy load below-the-fold homepage components
const StealthAnimation = lazy(() => import('./components/StealthAnimation'));
Expand Down Expand Up @@ -37,9 +39,21 @@ const NotFound = lazy(() => import('./pages/NotFound'));
const Contributors = lazy(() => import('./pages/Contributors'));
const Blog = lazy(() => import('./pages/Blog'));

/** Sets the i18n locale on mount for locale-prefixed routes. */
function LocaleSetter({ locale, children }: { locale: Locale; children: ReactNode }) {
useEffect(() => {
changeLocale(locale);
}, [locale]);
return <>{children}</>;
}

function Home() {
return (
<div className="bg-surface text-on-surface">
<Seo
title="Wraith Protocol — Private payments for every chain"
description="Wraith Protocol enables private payments on any blockchain using stealth addresses. One SDK, multiple chains."
/>
<a href="#main-content" className="skip-link">
Skip to content
</a>
Expand Down Expand Up @@ -141,6 +155,151 @@ export default function App() {
</Layout>
}
/>

{/* Spanish locale-prefixed routes */}
<Route
path="/es"
element={
<LocaleSetter locale="es">
<Home />
</LocaleSetter>
}
/>
<Route
path="/es/faq"
element={
<LocaleSetter locale="es">
<Faq />
</LocaleSetter>
}
/>
<Route
path="/es/privacy"
element={
<LocaleSetter locale="es">
<Privacy />
</LocaleSetter>
}
/>
<Route
path="/es/newsletter"
element={
<LocaleSetter locale="es">
<Newsletter />
</LocaleSetter>
}
/>
<Route
path="/es/use-cases"
element={
<LocaleSetter locale="es">
<UseCases />
</LocaleSetter>
}
/>
<Route
path="/es/roadmap"
element={
<LocaleSetter locale="es">
<Roadmap />
</LocaleSetter>
}
/>
<Route
path="/es/case-studies"
element={
<LocaleSetter locale="es">
<CaseStudies />
</LocaleSetter>
}
/>
<Route
path="/es/case-studies/:slug"
element={
<LocaleSetter locale="es">
<CaseStudies />
</LocaleSetter>
}
/>
<Route
path="/es/vitals"
element={
<LocaleSetter locale="es">
<Vitals />
</LocaleSetter>
}
/>
<Route
path="/es/stellar"
element={
<Layout>
<LocaleSetter locale="es">
<Stellar />
</LocaleSetter>
</Layout>
}
/>
<Route
path="/es/careers"
element={
<Layout>
<LocaleSetter locale="es">
<Careers />
</LocaleSetter>
</Layout>
}
/>
<Route
path="/es/grants"
element={
<Layout>
<LocaleSetter locale="es">
<Grants />
</LocaleSetter>
</Layout>
}
/>
<Route
path="/es/about"
element={
<Layout>
<LocaleSetter locale="es">
<About />
</LocaleSetter>
</Layout>
}
/>
<Route
path="/es/contributors"
element={
<Layout>
<LocaleSetter locale="es">
<Contributors />
</LocaleSetter>
</Layout>
}
/>
<Route
path="/es/blog"
element={
<Layout>
<LocaleSetter locale="es">
<Blog />
</LocaleSetter>
</Layout>
}
/>
<Route
path="/es/blog/:slug"
element={
<Layout>
<LocaleSetter locale="es">
<Blog />
</LocaleSetter>
</Layout>
}
/>

<Route path="*" element={<NotFound />} />
</Routes>
</Suspense>
Expand Down
20 changes: 5 additions & 15 deletions src/pages/About.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Helmet } from 'react-helmet-async';
import { Seo } from '../utils/seo';
import teamData from '../data/team.json';

const socialIcon = (type: 'github' | 'twitter') => {
Expand All @@ -19,20 +19,10 @@ const socialIcon = (type: 'github' | 'twitter') => {
export default function About() {
return (
<>
<Helmet>
<title>About – Wraith Protocol</title>
<meta
name="description"
content="Meet the team behind Wraith Protocol — building privacy-preserving payment infrastructure for everyone."
/>
<meta property="og:title" content="About – Wraith Protocol" />
<meta
property="og:description"
content="Meet the team behind Wraith Protocol — building privacy-preserving payment infrastructure."
/>
<meta property="og:url" content="https://usewraith.xyz/about" />
<meta property="og:type" content="website" />
</Helmet>
<Seo
title="About – Wraith Protocol"
description="Meet the team behind Wraith Protocol — building privacy-preserving payment infrastructure for everyone."
/>

{/* ── Hero ──────────────────────────────────────────────────────────── */}
<section className="border-b border-outline-variant-30 px-6 py-24 md:px-12">
Expand Down
Loading
Loading