diff --git a/index.html b/index.html index c5b1695..a9e3bcd 100644 --- a/index.html +++ b/index.html @@ -3,8 +3,51 @@ - Rosetta.IM + Rosetta - Secure & Private Messaging | End-to-End Encrypted Chat + + + + + + + + + + + + + + + + + + + + + +
diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..4852ccd --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,18 @@ +User-agent: * +Allow: / +Disallow: /admin/ +Disallow: /private/ + +Sitemap: https://rosetta.im/sitemap.xml + +User-agent: GPTBot +Disallow: / + +User-agent: ChatGPT-User +Disallow: / + +User-agent: CCBot +Disallow: / + +User-agent: anthropic-ai +Disallow: / diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..b01788c --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,15 @@ + + + + https://rosetta.im/ + 2026-02-16 + weekly + 1.0 + + diff --git a/src/App.tsx b/src/App.tsx index 789261e..6e704cb 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,17 +1,17 @@ -// Import styles of packages that you've installed. -// All packages except `@mantine/hooks` require styles imports import '@mantine/core/styles.css'; import { MantineProvider } from '@mantine/core'; import { HeroTitle } from './components/HeroTitle/HeroTitle'; import { DownloadCenter } from './components/DownloadCenter/DownloadCenter'; import { FeaturesGrid } from './components/FeaturesGrid/FeaturesGrid'; +import { SEO } from './components/SEO/SEO'; import './style.css' import { MessageSteps } from './components/MessageSteps/MessageSteps'; export default function App() { return + diff --git a/src/components/SEO/SEO.tsx b/src/components/SEO/SEO.tsx new file mode 100644 index 0000000..5380423 --- /dev/null +++ b/src/components/SEO/SEO.tsx @@ -0,0 +1,44 @@ +import { useEffect } from 'react'; + +interface SEOProps { + title?: string; + description?: string; + ogImage?: string; + keywords?: string; +} + +export function SEO({ + title = 'Rosetta - Secure Messaging for Everyone', + description = 'End-to-end encrypted messaging app with military-grade security. Download for macOS, Windows, Linux.', + ogImage = '/og-image.png', + keywords = 'secure messaging, encrypted chat, private messenger' +}: SEOProps) { + useEffect(() => { + // Update title + document.title = title; + + // Update meta tags + updateMetaTag('name', 'description', description); + updateMetaTag('name', 'keywords', keywords); + updateMetaTag('property', 'og:title', title); + updateMetaTag('property', 'og:description', description); + updateMetaTag('property', 'og:image', ogImage); + updateMetaTag('name', 'twitter:title', title); + updateMetaTag('name', 'twitter:description', description); + updateMetaTag('name', 'twitter:image', ogImage); + }, [title, description, ogImage, keywords]); + + return null; +} + +function updateMetaTag(attr: string, name: string, content: string) { + let element = document.querySelector(`meta[${attr}="${name}"]`); + + if (!element) { + element = document.createElement('meta'); + element.setAttribute(attr, name); + document.head.appendChild(element); + } + + element.setAttribute('content', content); +}