@@ -95,6 +97,42 @@ const Hero = () => {
);
};
+// Launch directories check that their badge is on the homepage above the fold.
+// Both themes render and CSS shows one, because the prerendered HTML can't know
+// the visitor's theme. Image hosts must stay in vercel.json's img-src.
+const FEATURED_BADGES = [
+ {
+ alt: "Featured on LaunchIgniter",
+ width: 154,
+ light: { href: "https://launchigniter.com/product/debatelab?ref=badge-debatelab", src: "https://launchigniter.com/api/badge/debatelab?theme=light" },
+ dark: { href: "https://launchigniter.com/product/debatelab?ref=badge-debatelab", src: "https://launchigniter.com/api/badge/debatelab?theme=dark" },
+ },
+ {
+ alt: "Launched on StartupBase",
+ width: 150,
+ light: { href: "https://startupbase.io/products/debatelab?utm_source=startupbase&utm_medium=badge&utm_campaign=launch-badge-light", src: "https://statics.startupbase.io/site/badges/launched-on-sb.svg" },
+ dark: { href: "https://startupbase.io/products/debatelab?utm_source=startupbase&utm_medium=badge&utm_campaign=launch-badge-dark", src: "https://statics.startupbase.io/site/badges/launched-on-sb-dark.svg" },
+ },
+];
+
+const FeaturedOn = () => (
+
+
+ {FEATURED_BADGES.flatMap((badge) => (["light", "dark"] as const).map((theme) => (
+
+
+
+ )))}
+
+
+);
+
const HeroPreview = () => {
const { t } = useTranslation();
type DemoMode = "generate" | "crossfire" | "sparring";
diff --git a/vercel.json b/vercel.json
index 085975ed6..07ca2ed0c 100644
--- a/vercel.json
+++ b/vercel.json
@@ -114,7 +114,7 @@
"headers": [
{
"key": "Content-Security-Policy",
- "value": "default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; form-action 'self'; img-src 'self' data: blob: https://*.jam.dev; font-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' https://*.jam.dev; worker-src 'self' blob:; frame-src 'self' https://accounts.google.com https://*.jam.dev; connect-src 'self' https://*.jam.dev https://uziwdtkzofptihahfooo.supabase.co https://brifeyypjauyusmkptkx.supabase.co https://*.ingest.sentry.io https://*.sentry.io https://eu.i.posthog.com https://*.posthog.com;"
+ "value": "default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; form-action 'self'; img-src 'self' data: blob: https://*.jam.dev https://launchigniter.com https://statics.startupbase.io; font-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' https://*.jam.dev; worker-src 'self' blob:; frame-src 'self' https://accounts.google.com https://*.jam.dev; connect-src 'self' https://*.jam.dev https://uziwdtkzofptihahfooo.supabase.co https://brifeyypjauyusmkptkx.supabase.co https://*.ingest.sentry.io https://*.sentry.io https://eu.i.posthog.com https://*.posthog.com;"
},
{
"key": "X-Frame-Options",