Skip to content

Commit

Permalink
signoz vs newrelic (#1089)
Browse files Browse the repository at this point in the history
* page done

* add floating card

* Enhance SigNoz vs New Relic comparison page with improved metadata and SEO optimizations. Updated page title and description, added Open Graph and Twitter card data, and included relevant keywords. Adjusted internal link paths for better navigation.

* change floating card to bottom of the div to avoid h1 seo heading issue

* build

* updated theme to be consistent in all three pages
  • Loading branch information
yuvraajsj18 authored Jan 16, 2025
1 parent c0b8995 commit bd3f755
Show file tree
Hide file tree
Showing 13 changed files with 5,462 additions and 3,623 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ const SigNozVsGrafanaV2 = () => {
transition={{ duration: 0.8 }}
className="mb-10 w-full lg:mb-0 lg:w-2/5"
>
<h1 className="mb-6 bg-gradient-to-r from-green-400 to-blue-600 bg-clip-text text-5xl font-bold leading-[1.3] text-transparent lg:text-6xl lg:leading-[1.3]">
<h1 className="mb-6 bg-gradient-to-r from-blue-400 to-purple-600 bg-clip-text text-5xl font-bold leading-[1.3] text-transparent lg:text-6xl lg:leading-[1.3]">
SigNoz vs Grafana
</h1>
<h3 className="mb-8 text-lg font-semibold text-gray-300 lg:text-xl">
Expand Down Expand Up @@ -159,7 +159,7 @@ const SigNozVsGrafanaV2 = () => {
transition={{ duration: 0.8 }}
className="relative w-full lg:-right-8 lg:w-3/5"
>
<div className="overflow-hidden rounded-xl shadow-2xl shadow-green-400/20">
<div className="overflow-hidden rounded-xl shadow-2xl shadow-blue-400/20">
<video autoPlay muted loop className="w-full lg:w-[120%]">
<source src="/img/unified-observability/showcase.mp4" type="video/mp4" />
Your browser does not support the video tag.
Expand Down Expand Up @@ -616,9 +616,9 @@ const SigNozVsGrafanaV2 = () => {
</section>

{/* Experience Seamless All-in-one Observability */}
<section className="mx-auto max-w-4xl rounded-xl bg-gradient-to-r from-green-900/20 to-blue-900/20 px-4 py-12 sm:px-6">
<section className="mx-auto max-w-4xl rounded-xl bg-gradient-to-r from-blue-900/20 to-purple-900/20 px-4 py-12 sm:px-6">
<h2 className="mb-8 text-left text-xl font-bold lg:text-2xl">
Experience Seamless All-in-one Observability
Migrate from Grafana - Save up to 45% on your Grafana bill
</h2>
<div className="text-gray-300">
<p className="mb-6 text-[1.1rem] text-gray-300">
Expand Down
1,706 changes: 1,706 additions & 0 deletions app/product-comparison/signoz-vs-newrelic/SigNozVsNewRelicV2.tsx

Large diffs are not rendered by default.

52 changes: 47 additions & 5 deletions app/product-comparison/signoz-vs-newrelic/page.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,53 @@
import SigNozVSNewRelic from './SigNozVsNewRelic'

import SigNozVSNewRelicV2 from './SigNozVsNewRelicV2'
import siteMetadata from '../../../data/siteMetadata'
import { Metadata } from 'next'

export const metadata: Metadata = {
title: 'SigNoz VS New Relic',
title: 'In Depth - SigNoz vs New Relic',
description:
'How is SigNoz a great alternative to New Relic? Learn where SigNoz is a better fit for your use cases when compared to New Relic.',
openGraph: {
title: 'In Depth - SigNoz vs New Relic',
description:
'How is SigNoz a great alternative to New Relic? Learn where SigNoz is a better fit for your use cases when compared to New Relic.',
images: [
{
url: '/img/product-comparisons/signoz-vs-datadog/messaging-queue-monitoring-otel.webp',
width: 800,
height: 400,
alt: 'SigNoz vs New Relic Comparison',
},
],
type: 'website',
url: `${siteMetadata.siteUrl}/product-comparison/signoz-vs-newrelic`,
siteName: siteMetadata.title,
} as const,
twitter: {
card: 'summary_large_image',
title: 'In Depth - SigNoz vs New Relic | SigNoz',
description:
'How is SigNoz a great alternative to New Relic? Learn where SigNoz is a better fit for your use cases when compared to New Relic.',
images: ['/img/product-comparisons/signoz-vs-datadog/messaging-queue-monitoring-otel.webp'],
site: siteMetadata.twitter,
} as const,
keywords: [
'SigNoz vs New Relic',
'New Relic alternative',
'open source New Relic alternative',
'New Relic comparison',
'observability platform',
'application monitoring',
'OpenTelemetry',
'APM',
'application performance monitoring',
'SigNoz',
],
robots: {
index: true,
follow: true,
},
}

export default function SigNozVSNewRelicPage() {
return <SigNozVSNewRelic />
}
return <SigNozVSNewRelicV2 />
}
2 changes: 1 addition & 1 deletion components/MigrationFloatingCard/MigrationFloatingCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const MigrationFloatingCard: React.FC = () => {
const documentHeight = document.documentElement.scrollHeight

// Show when past 20% of page
const showThreshold = documentHeight * 0.2
const showThreshold = documentHeight * 0.15

// Hide when near the bottom section (adjust 800px based on your needs)
const hideThreshold = documentHeight - windowHeight - 800
Expand Down
87 changes: 87 additions & 0 deletions components/MigrationFloatingCard/NewrelicMigrationFloatingCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
'use client'

import React, { useState, useEffect } from 'react'
import Link from 'next/link'
import { ArrowRight, X } from 'lucide-react'
import Button from '@/components/Button/Button'

const NewrelicMigrationFloatingCard: React.FC = () => {
const [isVisible, setIsVisible] = useState(false)
const [isClosed, setIsClosed] = useState(false)

useEffect(() => {
const cardClosed = localStorage.getItem('newrelicMigrationCardClosed')
if (cardClosed) {
setIsClosed(true)
}
}, [])

useEffect(() => {
const handleScroll = () => {
const scrollPosition = window.scrollY
const windowHeight = window.innerHeight
const documentHeight = document.documentElement.scrollHeight

// Show when past 20% of page
const showThreshold = documentHeight * 0.15

// Hide when near the bottom section (adjust 800px based on your needs)
const hideThreshold = documentHeight - windowHeight - 800

if (scrollPosition > showThreshold && scrollPosition < hideThreshold) {
setIsVisible(true)
} else {
setIsVisible(false)
}
}

window.addEventListener('scroll', handleScroll)
return () => window.removeEventListener('scroll', handleScroll)
}, [])

const handleClose = () => {
setIsClosed(true)
localStorage.setItem('newrelicMigrationCardClosed', 'true')
}

return (
<div
className={`fixed bottom-6 right-6 z-50 hidden w-64 transform rounded-lg bg-gradient-to-r from-blue-900/90 to-purple-900/90 p-4 shadow-lg backdrop-blur-sm transition-all duration-500 ease-in-out hover:-translate-y-1 hover:shadow-xl lg:block ${
isVisible && !isClosed
? 'translate-y-0 opacity-100'
: 'pointer-events-none translate-y-8 opacity-0'
}`}
>
<button
onClick={handleClose}
className="absolute right-2 top-2 text-gray-400 hover:text-white"
aria-label="Close"
>
<X size={14} />
</button>

<h3 className="mb-2 text-lg font-bold text-white">Save up to 67% on your New Relic bill</h3>
<p className="mb-3 text-xs text-gray-300">
We provide migration support if your monthly New Relic bill is over $1000. Get started with
SigNoz quickly.
</p>
<div className="flex flex-col gap-2">
<Link href="/teams/" className="w-full">
<Button className="flex w-full items-center justify-center gap-1 text-xs font-bold">
Try SigNoz - Free <ArrowRight className="h-3 w-3" />
</Button>
</Link>
<Link href="/product-comparison/migrate-from-newrelic/" className="w-full">
<Button
type={Button.TYPES.SECONDARY}
className="flex w-full items-center justify-center gap-1 text-xs font-bold"
>
Request Migration Support <ArrowRight className="h-3 w-3" />
</Button>
</Link>
</div>
</div>
)
}

export default NewrelicMigrationFloatingCard
Loading

0 comments on commit bd3f755

Please sign in to comment.