feat(seo): upgrade site metadata, schema, and crawl files for OpenFrame rebrand

- update title/description to Open Source Video Review Platform
- add centralized SEO config with canonical URL + meta image (/meta.webp)
- add Open Graph and Twitter card metadata
- add JSON-LD Organization/WebSite structured data
- add robots.txt, sitemap.xml, and web app manifest routes
- version icon metadata to help search engines refresh branding
This commit is contained in:
Yusuf İpek
2026-02-22 16:53:01 +03:00
parent b0e6f9514a
commit 323093029e
6 changed files with 202 additions and 3 deletions
+45
View File
@@ -0,0 +1,45 @@
const FALLBACK_SITE_URL = 'https://openframe.net';
function normalizeSiteUrl(rawUrl: string | undefined): string {
if (!rawUrl) {
return FALLBACK_SITE_URL;
}
const trimmed = rawUrl.trim();
if (!trimmed) {
return FALLBACK_SITE_URL;
}
const withProtocol = /^https?:\/\//i.test(trimmed) ? trimmed : `https://${trimmed}`;
try {
return new URL(withProtocol).origin;
} catch {
return FALLBACK_SITE_URL;
}
}
export function getSiteUrl(): string {
return normalizeSiteUrl(process.env.NEXT_PUBLIC_APP_URL ?? process.env.NEXTAUTH_URL);
}
export const seoConfig = {
name: 'OpenFrame',
title: 'Open Source Video Review Platform',
description:
'OpenFrame is an open source video review platform for collecting timestamped feedback with text and voice comments.',
keywords: [
'open source video review platform',
'video review tool',
'timestamped video feedback',
'video collaboration',
'video annotation',
'creative review workflow',
],
url: getSiteUrl(),
ogImage: '/meta.webp',
logoPath: '/icon.svg',
logo: '/icon.svg?v=2',
githubUrl: 'https://github.com/yusufipk/OpenFrame',
} as const;