diff --git a/apps/public/src/app/(content)/open-source/page.tsx b/apps/public/src/app/(content)/open-source/page.tsx
new file mode 100644
index 00000000..24d41043
--- /dev/null
+++ b/apps/public/src/app/(content)/open-source/page.tsx
@@ -0,0 +1,388 @@
+import { CtaBanner } from '@/app/(home)/_sections/cta-banner';
+import { HeroContainer } from '@/app/(home)/_sections/hero';
+import { FaqItem, Faqs } from '@/components/faq';
+import { FeatureCard } from '@/components/feature-card';
+import { Section, SectionHeader } from '@/components/section';
+import { Button } from '@/components/ui/button';
+import { url } from '@/lib/layout.shared';
+import { getOgImageUrl, getPageMetadata } from '@/lib/metadata';
+import {
+ BarChartIcon,
+ CheckIcon,
+ CodeIcon,
+ GlobeIcon,
+ HeartHandshakeIcon,
+ LinkIcon,
+ MailIcon,
+ MessageSquareIcon,
+ SparklesIcon,
+ UsersIcon,
+ ZapIcon,
+} from 'lucide-react';
+import type { Metadata } from 'next';
+import Link from 'next/link';
+import Script from 'next/script';
+
+export const metadata: Metadata = getPageMetadata({
+ title: 'Free Analytics for Open Source Projects | OpenPanel OSS Program',
+ description:
+ "Get free web and product analytics for your open source project. Track up to 2.5M events/month. Apply to OpenPanel's open source program today.",
+ url: url('/open-source'),
+ image: getOgImageUrl('/open-source'),
+});
+
+const jsonLd = {
+ '@context': 'https://schema.org',
+ '@type': 'WebPage',
+ name: 'Free Analytics for Open Source Projects | OpenPanel OSS Program',
+ description:
+ "Get free web and product analytics for your open source project. Track up to 2.5M events/month. Apply to OpenPanel's open source program today.",
+ url: url('/open-source'),
+ publisher: {
+ '@type': 'Organization',
+ name: 'OpenPanel',
+ logo: {
+ '@type': 'ImageObject',
+ url: url('/logo.png'),
+ },
+ },
+ mainEntity: {
+ '@type': 'Offer',
+ name: 'Free Analytics for Open Source Projects',
+ description:
+ 'Free analytics service for open source projects up to 2.5M events per month',
+ price: '0',
+ priceCurrency: 'USD',
+ },
+};
+
+export default function OpenSourcePage() {
+ return (
+
+
+
+
+
+ Free Analytics for
+
+ Open Source Projects
+ >
+ }
+ description="Track your users, understand adoption, and grow your project - all without cost. Get free analytics for your open source project with up to 2.5M events per month."
+ />
+
+
+
+ Up to 2.5M events/month • No credit card required
+
+
+
+
+
+
+
+ {/* What You Get Section */}
+
+
+
+
+
+
+
+
+
+
+ {/* Why We Do This Section */}
+
+
+
+
+ We started OpenPanel because we believed analytics tools
+ shouldn't be complicated or locked behind expensive enterprise
+ subscriptions. As an open source project ourselves, we
+ understand the challenges of building and growing a project
+ without the resources of big corporations.
+
+ Your project must use an OSI-approved open source license
+ (MIT, Apache, GPL, etc.)
+
+
+
+
+
+
+
Public Repository
+
+ Your code must be publicly available on GitHub, GitLab, or
+ similar platforms
+
+
+
+
+
+
+
Active Development
+
+ Show evidence of active development and a growing
+ community
+
+
+
+
+
+
+
+ Non-Commercial Primary Purpose
+
+
+ The primary purpose should be non-commercial, though
+ commercial OSS projects may be considered
+
+
+
+
+
+
+
+ {/* How to Apply Section */}
+
+
+
+
+
+
+ 1
+
+
Send us an email
+
+ Reach out to{' '}
+
+ oss@openpanel.dev
+ {' '}
+ with your project details
+
+
+
+
+ 2
+
+
Include project info
+
+ Share your project URL, license type, and a brief
+ description of what you're building
+
+
+
+
+ 3
+
+
We'll review
+
+ We'll evaluate your project and respond within a few
+ business days
+
+
+
+
+
+
+
+
+
+ {/* FAQ Section */}
+
+
+
+
+
+ We consider any project with an OSI-approved open source
+ license (MIT, Apache, GPL, BSD, etc.) that is publicly
+ available and actively maintained. The project should have a
+ non-commercial primary purpose, though we may consider
+ commercial open source projects on a case-by-case basis.
+
+
+ We understand that successful projects grow. If you
+ consistently exceed 2.5M events, we'll reach out to discuss
+ options. We're flexible and want to support your success. In
+ most cases, we can work out a solution that works for both of
+ us.
+
+
+ Yes, we consider commercial open source projects on a
+ case-by-case basis. If your project is open source but has
+ commercial offerings, please mention this in your application
+ and we'll evaluate accordingly.
+
+
+ As long as your project remains eligible and active, your free
+ access continues. We review projects periodically to ensure
+ they still meet our criteria, but we're committed to
+ supporting projects long-term.
+
+
+ No, displaying the widget is completely optional. We only
+ require a backlink to OpenPanel on your website or README. The
+ widget is just a nice way to showcase your analytics if you
+ want to.
+
+
+ We welcome projects of all sizes! Whether you're just getting
+ started or have a large community, if you meet our eligibility
+ criteria, we'd love to help. Small projects often benefit the
+ most from understanding their users early on.
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/public/src/app/og/[...og]/route.tsx b/apps/public/src/app/og/[...og]/route.tsx
index 5ddd78ed..4a656ead 100644
--- a/apps/public/src/app/og/[...og]/route.tsx
+++ b/apps/public/src/app/og/[...og]/route.tsx
@@ -26,6 +26,13 @@ async function getOgData(
'Support OpenPanel and get exclusive perks like latest Docker images, prioritized support, and early access to new features.',
};
}
+ case 'open-source': {
+ return {
+ title: 'Free analytics for open source projects',
+ description:
+ "Get free web and product analytics for your open source project. Track up to 2.5M events/month. Apply to OpenPanel's open source program today.",
+ };
+ }
case 'pricing': {
return {
title: 'Pricing',
diff --git a/apps/public/src/components/footer.tsx b/apps/public/src/components/footer.tsx
index daf4d7f8..1fe95fc1 100644
--- a/apps/public/src/components/footer.tsx
+++ b/apps/public/src/components/footer.tsx
@@ -25,6 +25,10 @@ export async function Footer() {
{ title: 'About', url: '/about' },
{ title: 'Contact', url: '/contact' },
{ title: 'Become a supporter', url: '/supporter' },
+ {
+ title: 'Free analytics for open source projects',
+ url: '/open-source',
+ },
]}
/>