From 13c2d20961e764a251b62c68988a4348ad291046 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?=
Date: Sun, 24 Mar 2024 18:25:53 +0100
Subject: [PATCH] public: update public website (mainly pricing)
---
apps/public/src/app/features.tsx | 4 +-
apps/public/src/app/navbar.tsx | 3 +
apps/public/src/app/pricing.tsx | 103 ++++++++++++++--------------
apps/public/src/app/punch-lines.tsx | 78 +++++++++++++--------
4 files changed, 106 insertions(+), 82 deletions(-)
diff --git a/apps/public/src/app/features.tsx b/apps/public/src/app/features.tsx
index e9a90c22..21884d9a 100644
--- a/apps/public/src/app/features.tsx
+++ b/apps/public/src/app/features.tsx
@@ -43,8 +43,8 @@ const features: FeatureItem[] = [
be accessible.
- Mark events as conversions to highlight and soon notifications with
- out iOS/Android app.
+ Mark events as conversions to highlight and get notifications with our
+ iOS/Android app (app coming soon!)
>
),
diff --git a/apps/public/src/app/navbar.tsx b/apps/public/src/app/navbar.tsx
index 115eda84..0399c52e 100644
--- a/apps/public/src/app/navbar.tsx
+++ b/apps/public/src/app/navbar.tsx
@@ -21,6 +21,9 @@ export function Navbar({ darkText = false, className }: Props) {
{pathname !== '/' && Home}
+
+ Pricing
+
Docs
diff --git a/apps/public/src/app/pricing.tsx b/apps/public/src/app/pricing.tsx
index 7bb904cd..24d87769 100644
--- a/apps/public/src/app/pricing.tsx
+++ b/apps/public/src/app/pricing.tsx
@@ -2,69 +2,66 @@ import { CheckIcon } from 'lucide-react';
import { Heading2, Lead2 } from './copy';
+const pricing = [
+ { price: 'Free', events: 3000 },
+ { price: '$5', events: 10_000 },
+ { price: '$10', events: 20_000 },
+ { price: '$20', events: 100_000 },
+ { price: '$30', events: 200_000 },
+ { price: '$50', events: 400_000 },
+ { price: '$70', events: 600_000 },
+ { price: '$90', events: 1_000_000 },
+];
+
export function Pricing() {
return (
-
-
-
-
+
+
+
+
Simple, transparent pricing
Everything is included, just decide how many events you want to
track each month.
-
-
-
- What's included for{' '}
- all plans
-
-
-
- Unlimited websites/apps
-
-
- Unlimited Users
-
-
-
- Unlimted dashboards
-
-
- Unlimted charts
-
-
- Unlimted tracked
- profiles
-
-
- Yes, its that simple
-
-
-
-
-
-
- From
-
-
$10
-
- billed monthly
-
+
+
+ Unlimited websites/apps
+
+
+ Unlimited users
+
+
+ Unlimted dashboards
+
+
+ Unlimted charts
+
+
+ Unlimted tracked profiles
+
+
+ Yes, its that simple
+
+
+
+ {pricing.map((item) => (
+
+
{item.price}
+
+
+ {new Intl.NumberFormat('en').format(item.events)} events
+
+ per month
+
- {/*
- Get Started
- */}
-
-
-
-
- Exact pricing will come soon, but we asure you, it will be cheaper
- than the competition.
-
-
During beta everything is free!
+ ))}
+
Everything is free during beta period!
diff --git a/apps/public/src/app/punch-lines.tsx b/apps/public/src/app/punch-lines.tsx
index d9523d1c..0ff5583a 100644
--- a/apps/public/src/app/punch-lines.tsx
+++ b/apps/public/src/app/punch-lines.tsx
@@ -7,24 +7,38 @@ import {
DollarSignIcon,
HandshakeIcon,
KeyIcon,
+ ShieldIcon,
+ WebhookIcon,
} from 'lucide-react';
import Image from 'next/image';
-import { Heading2, Heading3, Heading4 } from './copy';
+import { Heading2, Heading4 } from './copy';
const items = [
{
title: 'Own Your Own Data',
description: (
- All our serveres are hosted in EU (Stockholm) and we are fully GDPR
- compliant.
+ We believe that you should own your own data. That's why we don't sell
+ your data to third parties. Ever. Period.
),
icon: KeyIcon,
color: '#2563EB',
className: 'bg-blue-light',
},
+ {
+ title: 'GDPR Compliant',
+ description: (
+
+ All our serveres are hosted in EU (Stockholm) and we are fully GDPR
+ compliant.
+
+ ),
+ icon: ShieldIcon,
+ color: '#b051d3',
+ className: 'bg-[#b051d3]',
+ },
{
title: 'Cloud or Self-Hosting',
description: (
@@ -103,37 +117,47 @@ const items = [
color: '#3ba974',
className: 'bg-[#e19900]',
},
+ {
+ title: 'Powerful Export API',
+ description: Use our powerful export API to access your data.
,
+ icon: WebhookIcon,
+ color: '#3ba974',
+ className: 'bg-[#e93838]',
+ },
];
export function PunchLines() {
return (
-
-
- Not convinced?
-
-
-
- {items.map((item) => {
- const Icon = item.icon;
- return (
-
+
+
+
+
+ Not convinced?
+
+
+
+ {items.map((item) => {
+ const Icon = item.icon;
+ return (
-
+
+
+
+
{item.title}
+
{item.description}
-
{item.title}
-
{item.description}
-
- );
- })}
+ );
+ })}
+