public: new page and copy improvements

This commit is contained in:
Carl-Gerhard Lindesvärd
2026-02-17 00:16:08 +01:00
parent 0ebe2768be
commit e3faab7588
22 changed files with 1026 additions and 352 deletions

View File

@@ -1,8 +1,11 @@
import { FeatureCard } from '@/components/feature-card';
import { Section, SectionHeader } from '@/components/section';
import { BoltIcon, GithubIcon, ServerIcon } from 'lucide-react';
import { DataOwnershipIllustration } from './illustrations/data-ownership';
import { PrivacyIllustration } from './illustrations/privacy';
import Link from 'next/link';
import { FeatureCard } from '@/components/feature-card';
import { GetStartedButton } from '@/components/get-started-button';
import { DataOwnershipIllustration } from '@/components/illustrations/data-ownership';
import { PrivacyIllustration } from '@/components/illustrations/privacy';
import { Section, SectionHeader } from '@/components/section';
import { Button } from '@/components/ui/button';
const secondaryFeatures = [
{
@@ -29,6 +32,7 @@ export function DataPrivacy() {
return (
<Section className="container">
<SectionHeader
description="OpenPanel gives you analytics on your terms - privacy-friendly, open-source, and fully self-hostable. Every part of the platform is designed to put you in control of your data while delivering fast, reliable insights without compromising user trust."
title={
<>
Built for Control,
@@ -36,32 +40,37 @@ export function DataPrivacy() {
Transparency & Trust
</>
}
description="OpenPanel gives you analytics on your terms - privacy-friendly, open-source, and fully self-hostable. Every part of the platform is designed to put you in control of your data while delivering fast, reliable insights without compromising user trust."
/>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6 mt-16">
<div className="mt-16 mb-6 grid grid-cols-1 gap-6 md:grid-cols-2">
<FeatureCard
variant="large"
title="Privacy-first"
description="Privacy-first analytics without cookies, fingerprinting, or invasive tracking. Built for compliance and user trust."
illustration={<PrivacyIllustration />}
title="Privacy-first"
variant="large"
/>
<FeatureCard
variant="large"
title="Data Ownership"
description="You own your data - no vendors, no sharing, no hidden processing. Store analytics on your own infrastructure and stay in full control."
illustration={<DataOwnershipIllustration />}
title="Data Ownership"
variant="large"
/>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<div className="grid grid-cols-1 gap-4 md:grid-cols-3">
{secondaryFeatures.map((feature) => (
<FeatureCard
key={feature.title}
title={feature.title}
description={feature.description}
icon={feature.icon}
key={feature.title}
title={feature.title}
/>
))}
</div>
<div className="row mt-8 gap-4">
<GetStartedButton />
<Button asChild className="px-6" size="lg" variant="outline">
<Link href="/docs/self-hosting/self-hosting">Self-host for free</Link>
</Button>
</div>
</Section>
);
}