Skip to content

Commit

Permalink
NEOS-1107: seo updates (#2018)
Browse files Browse the repository at this point in the history
  • Loading branch information
evisdrenova authored May 24, 2024
1 parent cf46f16 commit ce913ef
Show file tree
Hide file tree
Showing 48 changed files with 410 additions and 279 deletions.
2 changes: 1 addition & 1 deletion frontend/apps/web/app/(mgmt)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import BaseLayout from '../BaseLayout';

export const metadata: Metadata = {
title: 'Neosync',
description: 'Open Source Test Data Management',
description: 'Open Source Data Anonymization and Synthetic Data',
icons: [{ rel: 'icon', url: '/favicon.ico' }],
};

Expand Down
2 changes: 1 addition & 1 deletion frontend/apps/web/app/invite/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import BaseLayout from '../BaseLayout';

export const metadata: Metadata = {
title: 'Neosync',
description: 'Open Source Test Data Management',
description: 'Open Source Data Anonymization and Synthetic Data',
icons: [{ rel: 'icon', url: '/favicon.ico' }],
};

Expand Down
4 changes: 2 additions & 2 deletions marketing/app/about/Hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ export default function Hero(): ReactElement {
<div className="flex justify-center">
<Image src="/images/nlogo2.svg" alt="logo" width={400} height={400} />
</div>
<div className="text-center text-gray-900 font-semibold text-3xl lg:text-6xl font-satoshi pt-10 bg-white/50">
<h1 className="text-center text-gray-900 font-semibold text-3xl lg:text-6xl font-satoshi pt-10 bg-white/50">
The Future is Synthetic Data Engineering
</div>
</h1>
<div className="text-center text-gray-800 font-semibold text-lg font-satoshi mx-10 md:mx-20 lg:mx-20 bg-white/50 max-w-4xl pt-6">
Synthetic Data Engineering represents the next step in customer data
security and privacy. Imagine having endless data, at your fingertips,
Expand Down
7 changes: 4 additions & 3 deletions marketing/app/about/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ import Values from './Values';

export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Neosync | About',
title: `Neosync | Learn more about Neosync's mission and values`,
description: `Neosync is mission-focused on delivering synthetic data engineering and data anonymization. Learn more about our journey and values.`,
openGraph: {
title: 'Neosync | About',
description: `Learn more about Neosync's mission and values `,
title: `Neosync | Learn more about Neosync's mission and values`,
description: `Neosync is mission-focused on delivering synthetic data engineering and data anonymization. Learn more about our journey and values.`,
url: 'https://www.neosync.dev/about',
siteName: 'Neosync',
images: [
Expand Down
16 changes: 12 additions & 4 deletions marketing/app/blog/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@ import { Metadata } from 'next';
import { ReactElement } from 'react';

export const metadata: Metadata = {
title: 'Neosync | Blog',
title: 'Neosync | Blogs on data anonymization and synthetic data.',
description:
'Read the Neosync Blog to learn more about data anonymization, synthetic data and to be kept up to date on product announcements.',
openGraph: {
title: 'Neosync',
description: 'Blog',
title: 'Neosync | Blogs on data anonymization and synthetic data.',
description:
'Read the Neosync Blog to learn more about data anonymization, synthetic data and to be kept up to date on product announcements.',
url: 'https://www.neosync.dev/blog',
siteName: 'Neosync',
images: [
Expand Down Expand Up @@ -46,7 +49,12 @@ export default async function BlogPage(): Promise<ReactElement> {

return (
<div className="container lg:max-w-6xl py-6 lg:py-10">
{headerPost && <HeaderBlog post={headerPost} />}
<h1 className="text-left text-gray-900 font-semibold text-3xl lg:text-6xl font-satoshi pt-10">
Blogs
</h1>
<div className="pt-10">
{headerPost && <HeaderBlog post={headerPost} />}
</div>
<hr className="my-12" />
{posts?.length ? (
<div className="grid gap-10 sm:grid-cols-3">
Expand Down
11 changes: 9 additions & 2 deletions marketing/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@ import PHProvider, { PostHogPageview } from './providers';

export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Neosync | Open Source Data Anonymization and Synthetic Data',
description:
'Neosync is an open source data anonymization and synthetic data generation platform for developers',
openGraph: {
title: 'Neosync',
description: 'Open Source Synthetic Data Orchestration',
title: 'Neosync | Open Source Data Anonymization and Synthetic Data',
description:
'Neosync is an open source data anonymization and synthetic data generation platform for developers',
url: 'https://www.neosync.dev',
siteName: 'Neosync',
images: [
Expand All @@ -27,6 +31,9 @@ export const metadata: Metadata = {
locale: 'en_US',
type: 'website',
},
alternates: {
canonical: 'https://www.neosync.dev',
},
};

export default function RootLayout({
Expand Down
27 changes: 26 additions & 1 deletion marketing/app/msa/page.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,29 @@
'use client';
import { Metadata } from 'next';

export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Neosync | MSA',
description: 'Neosync master services agreement and terms for customers.',
openGraph: {
title: 'Neosync',
description: 'Neosync Master Services Agreement and terms for customers.',
url: 'https://www.neosync.dev',
siteName: 'Neosync',
images: [
{
url: '/neosync/marketingsite/mainOGHero.svg',
width: 1200,
height: 630,
alt: 'mainOG',
},
],
locale: 'en_US',
type: 'website',
},
alternates: {
canonical: 'https://www.neosync.dev/msa',
},
};

export default function MSA() {
return (
Expand Down
9 changes: 6 additions & 3 deletions marketing/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@ import { ReactElement } from 'react';

export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Neosync | Synthetic Data Orchestration',
title: 'Neosync | Open Source Data Anonymization and Synthetic Data',
description:
'Neosync is an open source data anonymization and synthetic data generation platform for developers',
openGraph: {
title: 'Neosync',
description: 'Open Source Synthetic Data Orchestration',
title: 'Neosync | Open Source Data Anonymization and Synthetic Data',
description:
'Neosync is an open source data anonymization and synthetic data generation platform for developers',
url: 'https://www.neosync.dev',
siteName: 'Neosync',
images: [
Expand Down
65 changes: 47 additions & 18 deletions marketing/app/pricing/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,59 @@ import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { Separator } from '@/components/ui/separator';
import { CheckCircle2Icon } from 'lucide-react';
import Head from 'next/head';
import Link from 'next/link';
import posthog from 'posthog-js';
import { ReactElement } from 'react';

export default function Pricing() {
return (
<div className="flex flex-col gap-6 justify-center z-40 py-20 mx-auto">
<div className="text-center text-gray-900 font-semibold text-3xl lg:text-5xl font-satoshi pt-10 bg-white/50">
Simple, Transparent Pricing
</div>
<div className="text-center text-gray-800 font-semibold text-lg font-satoshi bg-white/50 pt-6">
Pricing shouldn&apos;t be complicated, so we made it easy.
</div>
<div className="flex flex-col lg:flex-row items-center justify-center gap-6 pt-10 ">
<OpenSourcePlan />
<FreePlan />
<TeamPlan />
<CustomPlan />
</div>
<FAQs />
<div className="px-5 sm:px-10 md:px-20 lg:px-40 max-w-[1800px] mx-auto py-10 lg:py-20">
<CTA />
<>
<Head>
<title>Neosync | Simple, transparent pricing</title>
<meta
name="description"
content="Explore Neosync's simple and transparent pricing options ranging from Open Source to an Enterprise package."
/>
<link rel="canonical" href="https://www.neosync.dev/pricing" />
<meta
property="og:title"
content="Neosync | Simple, transparent pricing"
/>
<meta
property="og:description"
content="Explore Neosync's simple and transparent pricing options ranging from Open Source to an Enterprise package."
/>
<meta property="og:url" content="https://www.neosync.dev" />
<meta property="og:site_name" content="Neosync" />
<meta
property="og:image"
content="/neosync/marketingsite/mainOGHero.svg"
/>
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
</Head>
<div className="flex flex-col gap-6 justify-center z-40 py-20 mx-auto">
<h1 className="text-center text-gray-900 font-semibold text-3xl lg:text-5xl font-satoshi pt-10 bg-white/50">
Simple, Transparent Pricing
</h1>
<div className="text-center text-gray-800 font-semibold text-lg font-satoshi bg-white/50 pt-6">
Pricing shouldn&apos;t be complicated, so we made it easy.
</div>
<div className="flex flex-col lg:flex-row items-center justify-center gap-6 pt-10">
<OpenSourcePlan />
<FreePlan />
<TeamPlan />
<CustomPlan />
</div>
<FAQs />
<div className="px-5 sm:px-10 md:px-20 lg:px-40 max-w-[1800px] mx-auto py-10 lg:py-20">
<CTA />
</div>
</div>
</div>
</>
);
}

Expand Down Expand Up @@ -215,7 +244,7 @@ function CustomPlan(): ReactElement {
];

return (
<div className="border-2 border-gray-400 rounded-xl p-8 lg:mt-28 lg:w-[360px] bg-gradient-to-b from-[#ffffff] to-[#f3f3f3]">
<div className="border-2 border-gray-400 rounded-xl p-8 lg:mt-28 lg:w-[300px] bg-gradient-to-b from-[#ffffff] to-[#f3f3f3]">
<div className="flex flex-col gap-6">
<div className="flex justify-center">
<Badge variant="outline" className="border-gray-400 border">
Expand Down
27 changes: 26 additions & 1 deletion marketing/app/privacy-policy/page.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,29 @@
'use client';
import { Metadata } from 'next';

export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Neosync | Privacy Policy',
description: 'Neosync Privacy Policy and terms for customers.',
openGraph: {
title: 'Neosync',
description: 'Neosync Privacy Policy and terms for customers.',
url: 'https://www.neosync.dev',
siteName: 'Neosync',
images: [
{
url: '/neosync/marketingsite/mainOGHero.svg',
width: 1200,
height: 630,
alt: 'mainOG',
},
],
locale: 'en_US',
type: 'website',
},
alternates: {
canonical: 'https://www.neosync.dev/privacy-policy',
},
};

export default function TOS() {
return (
Expand Down
1 change: 0 additions & 1 deletion marketing/app/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ export default async function sitemap() {
const routes = [
'',
'/about',
'/docs',
'/blog',
'/solutions/fix-staging-environments',
'/solutions/reproduce-prod-bugs-locally',
Expand Down
4 changes: 2 additions & 2 deletions marketing/app/solutions/fix-staging-environments/hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ export default function Hero(): ReactElement {
return (
<div className="flex flex-col lg:flex-row items-center pb-8 lg:pb-20 z-40 pt-20">
<div className="flex flex-col items-center lg:items-start gap-2 lg:gap-10">
<div className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
<h1 className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
Fix Broken Staging Environments
</div>
</h1>
<h3 className="text-gray-800 text-md lg:text-lg font-semibold text-center lg:text-left lg:px-0 px-6 lg:w-[80%]">
Catch production bugs before they reach production and ship faster
when you hydrate your staging environments with synthetic
Expand Down
2 changes: 2 additions & 0 deletions marketing/app/solutions/fix-staging-environments/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import Hero from './hero';
export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Fix Staging Environments | Neosync',
description:
'Fix broken staging environments using Neosync in order to deliver a better developer experience.',
openGraph: {
title: 'Fix Staging Environments | Neosync',
description:
Expand Down
4 changes: 2 additions & 2 deletions marketing/app/solutions/reproduce-prod-bugs-locally/hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ export default function Hero(): ReactElement {
return (
<div className="flex flex-col lg:flex-row items-center lg:pb-20 mt-20 z-20 ">
<div className="flex flex-col items-center lg:items-start gap-2 lg:gap-10 w-1/2">
<div className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
<h1 className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
Easily reproduce Production bugs locally
</div>
</h1>
<h3 className="text-gray-800 text-md lg:text-lg font-semibold text-center lg:text-left lg:px-0 px-6 lg:w-[80%]">
Anonymize senstiive Production Data to make it safe to use locally for
the best debugging experience
Expand Down
2 changes: 2 additions & 0 deletions marketing/app/solutions/reproduce-prod-bugs-locally/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import ReproduceBugsLocally from './ReproduceBugsLocally';
export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Easily reproduce Production bugs locally | Neosync',
description:
'Easily reproduce Production bugs locally using Neosync in order to deliver a better developer experience.',
openGraph: {
title: 'Easily reproduce Production bugs locally | Neosync',
description:
Expand Down
4 changes: 2 additions & 2 deletions marketing/app/solutions/security-privacy/hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ export default function Hero(): ReactElement {
return (
<div className="flex flex-col lg:flex-row items-center lg:pb-20 z-40 pt-20">
<div className="flex flex-col items-center lg:items-start gap-2 lg:gap-10">
<div className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
<h1 className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
Frictionless Security, Privacy and Compliance
</div>
</h1>
<h3 className="text-gray-800 text-md lg:text-lg font-semibold text-center lg:text-left lg:px-0 px-6 lg:w-[80%]">
Easily comply with laws like HIPAA, GDPR, and DPDP with de-identified
and synthetic data that structurally and statistically looks just like
Expand Down
2 changes: 2 additions & 0 deletions marketing/app/solutions/security-privacy/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import Hero from './hero';
export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Easily comply with Data Privacy, Security and Compliance | Neosync',
description:
'Easily comply with laws like HIPAA, GDPR, and DPDP with de-identified and synthetic data that structurally and statistically looks just like your production data. ',
openGraph: {
title: 'Easily comply with Data Privacy, Security and Compliance | Neosync',
description:
Expand Down
4 changes: 2 additions & 2 deletions marketing/app/solutions/unblock-local-development/hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ export default function Hero(): ReactElement {
return (
<div className="flex flex-col lg:flex-row items-center z-40">
<div className="flex flex-col items-center lg:items-start gap-2 lg:gap-10">
<div className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
<h1 className="text-gray-900 font-semibold lg:text-6xl text-4xl leading-tight text-center lg:text-left">
Safely test code against Production data
</div>
</h1>
<h3 className="text-gray-800 text-md lg:text-lg font-semibold text-center lg:text-left lg:px-0 px-6 lg:w-[80%]">
Give developers the ability to self-serve de-identified and synthetic
data for local development
Expand Down
2 changes: 2 additions & 0 deletions marketing/app/solutions/unblock-local-development/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import Hero from './hero';
export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Unblock Local Development | Neosync',
description:
'Unblock local development by using Neosync to anonymize sensitive data and generate synthetic data so that developers can self-serve data locally. ',
openGraph: {
title: 'Unblock Local Development | Neosync',
description:
Expand Down
29 changes: 28 additions & 1 deletion marketing/app/terms-of-service/page.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,31 @@
'use client';
import { Metadata } from 'next';

export const metadata: Metadata = {
metadataBase: new URL('https://assets.nucleuscloud.com/'),
title: 'Neosync | Terms of Service',
description:
'Neosync Terms of Service for customers and users of the platform.',
openGraph: {
title: 'Neosync',
description:
'Neosync Terms of Service for customers and users of the platform.',
url: 'https://www.neosync.dev',
siteName: 'Neosync',
images: [
{
url: '/neosync/marketingsite/mainOGHero.svg',
width: 1200,
height: 630,
alt: 'mainOG',
},
],
locale: 'en_US',
type: 'website',
},
alternates: {
canonical: 'https://www.neosync.dev/terms-of-service',
},
};

export default function TOS() {
return (
Expand Down
Loading

0 comments on commit ce913ef

Please sign in to comment.