From 5adf6bf5d9016769ffcedbdf6b6e47447db7d533 Mon Sep 17 00:00:00 2001 From: Sahil Sinha Date: Wed, 3 Sep 2025 00:03:03 +0530 Subject: [PATCH] feat: SEO improvements --- frontend/config/site.ts | 101 +++++++++++++++++++++++++--------- frontend/public/manifest.json | 27 +++++++++ frontend/public/robots.txt | 12 ++++ frontend/public/sitemap.xml | 45 +++++++++++++++ 4 files changed, 159 insertions(+), 26 deletions(-) create mode 100644 frontend/public/manifest.json create mode 100644 frontend/public/robots.txt create mode 100644 frontend/public/sitemap.xml diff --git a/frontend/config/site.ts b/frontend/config/site.ts index 29b65d25..9289edf1 100644 --- a/frontend/config/site.ts +++ b/frontend/config/site.ts @@ -2,13 +2,85 @@ import type { Metadata } from "next"; const TITLE = "1ai | Multi-model AI chat app"; const DESCRIPTION = - "1ai is a platform that allows you to chat with different LLMs via a unified interface."; + "1ai is a powerful platform that allows you to chat with different Large Language Models (LLMs) via a unified interface. Experience seamless AI conversations with models like GPT-4, Claude, and more. Fast, secure, and user-friendly AI chat application."; -const BASE_URL = process.env.NEXT_PUBLIC_APP_URL ?? "http://localhost:3002"; +// Use environment variable or default to production URL +const BASE_URL = process.env.NEXT_PUBLIC_APP_URL ?? "https://1ai.chat"; export const siteConfig: Metadata = { title: TITLE, description: DESCRIPTION, + keywords: [ + "AI Chat", + "Large Language Models", + "LLM", + "GPT-4", + "Claude", + "AI Assistant", + "Chat AI", + "Multi-model AI", + "AI Platform", + "Conversational AI", + "AI Chat App", + "Artificial Intelligence", + "Machine Learning", + "Natural Language Processing", + "AI Tools", + "Productivity", + "AI Assistant", + "Chatbot", + "AI Conversation", + "Smart Chat", + ], + authors: [{ name: "1ai Team" }], + creator: "1ai", + publisher: "1ai", + formatDetection: { + email: false, + address: false, + telephone: false, + }, + metadataBase: new URL(BASE_URL), + alternates: { + canonical: BASE_URL, + }, + openGraph: { + type: "website", + locale: "en_US", + url: BASE_URL, + title: TITLE, + description: DESCRIPTION, + siteName: "1ai", + images: [ + { + url: `${BASE_URL}/og-image.png`, + width: 1200, + height: 630, + alt: "1ai - Multi-model AI chat app", + }, + ], + }, + twitter: { + card: "summary_large_image", + title: TITLE, + description: DESCRIPTION, + images: [`${BASE_URL}/og-image.png`], + creator: "@1ai_chat", + }, + robots: { + index: true, + follow: true, + googleBot: { + index: true, + follow: true, + "max-video-preview": -1, + "max-image-preview": "large", + "max-snippet": -1, + }, + }, + verification: { + google: process.env.GOOGLE_SITE_VERIFICATION, + }, icons: { icon: [ { @@ -22,30 +94,7 @@ export const siteConfig: Metadata = { type: "image/svg+xml", }, ], + apple: "/apple-touch-icon.png", }, - category: "AI", - alternates: { - canonical: BASE_URL, - }, - - keywords: [ - "1AI Chat", - "AI Fiesta", - "1AI", - "AI", - "LLM", - "Fast", - "User friendly", - "Customization", - "Cheap", - "web3", - "blockchain", - "open-source", - "self-hosted", - "self-hosting", - "self-host", - "self-hosting", - ], - metadataBase: new URL(BASE_URL!), }; diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json new file mode 100644 index 00000000..a3b7bb3f --- /dev/null +++ b/frontend/public/manifest.json @@ -0,0 +1,27 @@ +{ + "name": "1ai - Multi-model AI Chat Platform", + "short_name": "1ai", + "description": "Chat with multiple AI models including GPT-4, Claude, and more through a unified interface", + "start_url": "/", + "display": "standalone", + "background_color": "#000000", + "theme_color": "#000000", + "orientation": "portrait-primary", + "icons": [ + { + "src": "/favicon.svg", + "sizes": "any", + "type": "image/svg+xml", + "purpose": "any maskable" + }, + { + "src": "/favicon-dark.svg", + "sizes": "any", + "type": "image/svg+xml", + "purpose": "any" + } + ], + "categories": ["productivity", "utilities", "ai"], + "lang": "en", + "dir": "ltr" +} diff --git a/frontend/public/robots.txt b/frontend/public/robots.txt new file mode 100644 index 00000000..2aa64727 --- /dev/null +++ b/frontend/public/robots.txt @@ -0,0 +1,12 @@ +User-agent: * +Allow: / + +# Disallow sensitive areas +Disallow: /api/ +Disallow: /admin/ +Disallow: /_next/ +Disallow: /auth/ +Disallow: /dashboard/ + +# Sitemap location +Sitemap: https://1ai.co/sitemap.xml diff --git a/frontend/public/sitemap.xml b/frontend/public/sitemap.xml new file mode 100644 index 00000000..e4dfda90 --- /dev/null +++ b/frontend/public/sitemap.xml @@ -0,0 +1,45 @@ + + + + https://1ai.co + 2024-12-19 + daily + 1.0 + + + https://1ai.co/ask + 2024-12-19 + daily + 0.9 + + + https://1ai.co/pricing + 2024-12-19 + weekly + 0.8 + + + https://1ai.co/about + 2024-12-19 + monthly + 0.7 + + + https://1ai.co/contact + 2024-12-19 + monthly + 0.6 + + + https://1ai.co/privacy + 2024-12-19 + yearly + 0.5 + + + https://1ai.co/terms + 2024-12-19 + yearly + 0.5 + +