mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 09:36:08 +00:00
- Replace unsubstantiated hero claim with client sign-off messaging - Rename Open Source (Self-hosted) to Fair Source (Self-hosted) with FSL explanation (source visible, self-hostable, Apache 2.0 after two years) - Put Hosted Cloud first in pricing with Recommended badge and trial note - Move self-hosting hero link to GitHub, out of primary CTA path - Add FAQ entries for FSL licensing and 7-day free trial - Align license language across landing, README, terms, SEO, comparisons - Fix contact email to [email protected] everywhere (mailto links, notification sender fallbacks) and SEO fallback domain
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
const FALLBACK_SITE_URL = 'https://open-frame.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: 'Fair Source Video Review Platform',
|
|
description:
|
|
'OpenFrame is a fair source video review platform for collecting timestamped feedback with text and voice comments.',
|
|
keywords: [
|
|
'fair source video review platform',
|
|
'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;
|