From abcbf3892ee3896a4803a90b077f8992c73003f0 Mon Sep 17 00:00:00 2001 From: Abhishek More Date: Sat, 18 Mar 2023 18:34:17 -0500 Subject: [PATCH 1/5] added competitor pages --- components/Competitors/ComparisonTable.tsx | 63 ++++++++ components/Competitors/competitors.tsx | 114 +++++++++++++++ pages/session-replay/[slug].tsx | 162 +++++++++++++++++++++ 3 files changed, 339 insertions(+) create mode 100644 components/Competitors/ComparisonTable.tsx create mode 100644 components/Competitors/competitors.tsx create mode 100644 pages/session-replay/[slug].tsx diff --git a/components/Competitors/ComparisonTable.tsx b/components/Competitors/ComparisonTable.tsx new file mode 100644 index 00000000..84064644 --- /dev/null +++ b/components/Competitors/ComparisonTable.tsx @@ -0,0 +1,63 @@ +import { HiCheckCircle, HiXCircle } from 'react-icons/hi' +import { Typography } from '../common/Typography/Typography' +import { ComparisonTableRow, ComparisonTableSection, Competitor } from './competitors' + +export default function ComparisonTable(props: { competitor: Competitor }) { + if (!props.competitor) { + return
No Competitor Loaded
+ } + + return ( +
+ {props.competitor.sections.map((section: ComparisonTableSection, i) => ( +
+
+ + {section.title} + +
+ {section.rows.map((row: ComparisonTableRow, j) => ( +
+ + {row.feature} + +
+
+ {row.highlight == 1 ? ( + + ) : ( +
+ + {row.highlight == 0.5 && ( +
+ + Coming soon + +
+ )} +
+ )} +
+
+ {row.competitor ? ( + + ) : ( + + )} +
+
+
+ ))} +
+ ))} +
+ ) +} diff --git a/components/Competitors/competitors.tsx b/components/Competitors/competitors.tsx new file mode 100644 index 00000000..28a6d09e --- /dev/null +++ b/components/Competitors/competitors.tsx @@ -0,0 +1,114 @@ +import { StaticImageData } from 'next/image' + +export type ComparisonTableRow = { + feature: string + highlight: 0 | 0.5 | 1 + competitor: 0 | 1 + tooltip?: string +} + +export type ComparisonTableSection = { + title: string + rows: ComparisonTableRow[] +} + +export type Competitor = { + slug: string + name: string + logo?: StaticImageData + sections: ComparisonTableSection[] +} + +export const COMPETITORS: { [k: string]: Competitor } = { + 'log-rocket': { + slug: 'log-rocket', + name: 'LogRocket', + sections: [ + { + title: 'General', + rows: [ + { + feature: 'Unlimited Team Members', + highlight: 1, + competitor: 1, + }, + { + feature: 'Unlimited Team Members', + highlight: 1, + competitor: 0, + }, + { + feature: 'Unlimited Team Members', + highlight: 1, + competitor: 1, + }, + { + feature: 'Unlimited Team Members', + highlight: 0.5, + competitor: 1, + }, + { + feature: 'Unlimited Team Members', + highlight: 1, + competitor: 1, + }, + ], + }, + { + title: 'Session Replay', + rows: [ + { + feature: 'Commenting / Mentions', + highlight: 1, + competitor: 1, + }, + { + feature: 'Heatmaps', + highlight: 1, + competitor: 0, + }, + { + feature: 'Session Sharing', + highlight: 1, + competitor: 1, + }, + { + feature: 'Privacy SDKs', + highlight: 0.5, + competitor: 0, + }, + { + feature: 'Embedded Error Monitoring', + highlight: 1, + competitor: 1, + }, + { + feature: 'Canvas & WebGL Recording', + highlight: 1, + competitor: 1, + }, + { + feature: 'Session-level Debugging Data', + highlight: 1, + competitor: 1, + }, + ], + }, + { + title: 'Error Monitoring', + rows: [ + { + feature: 'Embedded Session Replay', + highlight: 1, + competitor: 1, + }, + { + feature: 'Support for Backend SDKs', + highlight: 1, + competitor: 0, + }, + ], + }, + ], + }, +} diff --git a/pages/session-replay/[slug].tsx b/pages/session-replay/[slug].tsx new file mode 100644 index 00000000..ba3ffa74 --- /dev/null +++ b/pages/session-replay/[slug].tsx @@ -0,0 +1,162 @@ +import classNames from 'classnames' +import { GetStaticPaths, GetStaticProps } from 'next' +import Image from 'next/image' +import Link from 'next/link' +import { useState } from 'react' +import { MdKeyboardReturn } from 'react-icons/md' +import { PrimaryButton } from '../../components/common/Buttons/PrimaryButton' +import { FooterCallToAction } from '../../components/common/CallToAction/FooterCallToAction' +import { OSSCallToAction } from '../../components/common/CallToAction/OSSCallToAction' +import Footer from '../../components/common/Footer/Footer' +import Navbar from '../../components/common/Navbar/Navbar' +import { Section } from '../../components/common/Section/Section' +import { Typography } from '../../components/common/Typography/Typography' +import CompetitorTable from '../../components/Competitors/ComparisonTable' +import { Competitor, COMPETITORS } from '../../components/Competitors/competitors' +import { CompaniesReel } from '../../components/Home/CompaniesReel/CompaniesReel' +import { CustomerReviewTrack } from '../../components/Home/CustomerReviewTrack' +import homeStyles from '../../components/Home/Home.module.scss' +import errorMonitoringHero from '../../public/images/features/errorMonitoringHero.png' +import loggingHero from '../../public/images/features/loggingHero.png' +import sessionReplayHero from '../../public/images/features/sessionReplayHero.png' +import sessionscreenshot from '../../public/images/sessionscreenshot.png' + +import { AnimateFeatureHeroRight, AnimateFeatureHeroXL } from '../../components/Animate' + +const CompetitorComparisonPage = ({ competitor }: { competitor: Competitor }) => { + const [imageLoaded, setImageLoaded] = useState(false) + + return ( +
+ Hero Background + Hero Background + Hero Background + +
+ + +
+ Explore highlight.io +
+
+ +
+
+
+
+
+

The {competitor.name} alternative you've been waiting for

+ + + Pixel-perfect video replay of your web application. Step into the shoes of your users. + +
+ + + Get started for free + + + + + Read our docs + + +
+
+
+
+ + Feature Spotlight setImageLoaded(true)} + /> + + + Feature Spotlight setImageLoaded(true)} + /> + + Feature Spotlight setImageLoaded(true)} + /> +
+
+
+
+
+

+ How does highlight.io stack up? +

+
+ + LogRocket? More like dog pocket. + +
+
+ +
+
+ + +
+ +
+
+
+
+ + Don't take our word. Read our customer review section → + +
+
+
+ + +
+
+
+ ) +} + +export const getStaticPaths: GetStaticPaths = async () => { + return { + paths: Object.keys(COMPETITORS).map((k: string) => ({ + params: { slug: k }, + })), + fallback: 'blocking', + } +} + +//Gets list of products from products.ts +export const getStaticProps: GetStaticProps = async ({ params }) => { + const slug = params?.slug as string + + // Handle event slugs which don't exist + if (!COMPETITORS[slug]) { + return { + notFound: true, + } + } + + return { + props: { + competitor: COMPETITORS[slug], + }, + } +} + +export default CompetitorComparisonPage From 0ea0d9349a2d6d9f867e397bfda8fdcb42ed0dc2 Mon Sep 17 00:00:00 2001 From: Abhishek More Date: Sat, 18 Mar 2023 18:42:21 -0500 Subject: [PATCH 2/5] file rename --- components/Competitors/{competitors.tsx => competitors.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename components/Competitors/{competitors.tsx => competitors.ts} (100%) diff --git a/components/Competitors/competitors.tsx b/components/Competitors/competitors.ts similarity index 100% rename from components/Competitors/competitors.tsx rename to components/Competitors/competitors.ts From 171a189eb1aa684bc9a4c295ce64831839807ee9 Mon Sep 17 00:00:00 2001 From: Abhishek More Date: Sun, 19 Mar 2023 19:26:00 -0500 Subject: [PATCH 3/5] added logos to table --- components/Competitors/ComparisonTable.tsx | 23 +++++++++++++++------ components/Competitors/competitors.ts | 2 ++ pages/session-replay/[slug].tsx | 6 +++--- public/images/logrocketlogofull.png | Bin 0 -> 8292 bytes 4 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 public/images/logrocketlogofull.png diff --git a/components/Competitors/ComparisonTable.tsx b/components/Competitors/ComparisonTable.tsx index 84064644..c41ae498 100644 --- a/components/Competitors/ComparisonTable.tsx +++ b/components/Competitors/ComparisonTable.tsx @@ -1,4 +1,7 @@ +import Image from 'next/image' import { HiCheckCircle, HiXCircle } from 'react-icons/hi' +import logrocketlogofull from '../../public/images/logrocketlogofull.png' +import { HighlightLogo } from '../common/HighlightLogo/HighlightLogo' import { Typography } from '../common/Typography/Typography' import { ComparisonTableRow, ComparisonTableSection, Competitor } from './competitors' @@ -8,22 +11,30 @@ export default function ComparisonTable(props: { competitor: Competitor }) { } return ( -
+
{props.competitor.sections.map((section: ComparisonTableSection, i) => (
-
+
{section.title} +
{section.rows.map((row: ComparisonTableRow, j) => (
- + {row.feature}
@@ -33,7 +44,7 @@ export default function ComparisonTable(props: { competitor: Competitor }) {
{row.highlight == 0.5 && ( -
+
Coming soon @@ -43,7 +54,7 @@ export default function ComparisonTable(props: { competitor: Competitor }) { )}
diff --git a/components/Competitors/competitors.ts b/components/Competitors/competitors.ts index 28a6d09e..9ec972ba 100644 --- a/components/Competitors/competitors.ts +++ b/components/Competitors/competitors.ts @@ -15,6 +15,7 @@ export type ComparisonTableSection = { export type Competitor = { slug: string name: string + subHeader: string logo?: StaticImageData sections: ComparisonTableSection[] } @@ -23,6 +24,7 @@ export const COMPETITORS: { [k: string]: Competitor } = { 'log-rocket': { slug: 'log-rocket', name: 'LogRocket', + subHeader: 'An Open Source, Fullstack Alternative to Logrocket. Get Started for free in minutes.', sections: [ { title: 'General', diff --git a/pages/session-replay/[slug].tsx b/pages/session-replay/[slug].tsx index ba3ffa74..2786be3f 100644 --- a/pages/session-replay/[slug].tsx +++ b/pages/session-replay/[slug].tsx @@ -101,9 +101,9 @@ const CompetitorComparisonPage = ({ competitor }: { competitor: Competitor }) =>

How does highlight.io stack up?

-
- - LogRocket? More like dog pocket. +
+ + {competitor.subHeader}
diff --git a/public/images/logrocketlogofull.png b/public/images/logrocketlogofull.png new file mode 100644 index 0000000000000000000000000000000000000000..c883bd228aa56ab02d5de006a0c62bc46850655a GIT binary patch literal 8292 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 f?};*6)l1y0@ Date: Mon, 20 Mar 2023 16:47:01 -0500 Subject: [PATCH 4/5] added mobile logos and icons --- components/Competitors/ComparisonTable.tsx | 21 ++++++++++++++------- public/images/logrocketlogosmall.png | Bin 0 -> 1548 bytes 2 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 public/images/logrocketlogosmall.png diff --git a/components/Competitors/ComparisonTable.tsx b/components/Competitors/ComparisonTable.tsx index c41ae498..38f6df2a 100644 --- a/components/Competitors/ComparisonTable.tsx +++ b/components/Competitors/ComparisonTable.tsx @@ -1,6 +1,8 @@ import Image from 'next/image' -import { HiCheckCircle, HiXCircle } from 'react-icons/hi' +import { HiCheckCircle, HiDotsCircleHorizontal, HiXCircle } from 'react-icons/hi' +import highlightlogosmall from '../../public/images/logo-on-dark.png' import logrocketlogofull from '../../public/images/logrocketlogofull.png' +import logrocketlogosmall from '../../public/images/logrocketlogosmall.png' import { HighlightLogo } from '../common/HighlightLogo/HighlightLogo' import { Typography } from '../common/Typography/Typography' import { ComparisonTableRow, ComparisonTableSection, Competitor } from './competitors' @@ -18,12 +20,16 @@ export default function ComparisonTable(props: { competitor: Competitor }) { {section.title} -