diff --git a/apps/landing/public/og-image.png b/apps/landing/public/og-image.png
new file mode 100644
index 00000000..b52c5425
Binary files /dev/null and b/apps/landing/public/og-image.png differ
diff --git a/apps/landing/src/app/(detail)/docs/api/box/page.mdx b/apps/landing/src/app/(detail)/docs/api/box/page.mdx
index 48d2d646..dbb60adf 100644
--- a/apps/landing/src/app/(detail)/docs/api/box/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/box/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Box',
+ alternates: {
+ canonical: '/docs/api/box',
+ }
+
}
# Box
diff --git a/apps/landing/src/app/(detail)/docs/api/button/page.mdx b/apps/landing/src/app/(detail)/docs/api/button/page.mdx
index fc8079ee..2407c4c8 100644
--- a/apps/landing/src/app/(detail)/docs/api/button/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/button/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Button',
+ alternates: {
+ canonical: '/docs/api/button',
+ }
+
}
# Button
diff --git a/apps/landing/src/app/(detail)/docs/api/center/page.mdx b/apps/landing/src/app/(detail)/docs/api/center/page.mdx
index 03a3963b..82feaecf 100644
--- a/apps/landing/src/app/(detail)/docs/api/center/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/center/page.mdx
@@ -1,5 +1,8 @@
export const metadata = {
title: 'Center',
+ alternates: {
+ canonical: '/docs/api/center'
+ }
}
# Center
diff --git a/apps/landing/src/app/(detail)/docs/api/css/page.mdx b/apps/landing/src/app/(detail)/docs/api/css/page.mdx
index 6c0298c2..f1e44e31 100644
--- a/apps/landing/src/app/(detail)/docs/api/css/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/css/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'css',
+ alternates: {
+ canonical: '/docs/api/css'
+ }
+
}
# css
diff --git a/apps/landing/src/app/(detail)/docs/api/flex/page.mdx b/apps/landing/src/app/(detail)/docs/api/flex/page.mdx
index 8678163d..2939cb9e 100644
--- a/apps/landing/src/app/(detail)/docs/api/flex/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/flex/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Flex',
+ alternates: {
+ canonical: '/docs/api/flex'
+ }
+
}
# Flex
diff --git a/apps/landing/src/app/(detail)/docs/api/grid/page.mdx b/apps/landing/src/app/(detail)/docs/api/grid/page.mdx
index 990a4e4a..cb9a3f53 100644
--- a/apps/landing/src/app/(detail)/docs/api/grid/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/grid/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Grid',
+ alternates: {
+ canonical: '/docs/api/grid'
+ }
+
}
# Grid
diff --git a/apps/landing/src/app/(detail)/docs/api/group-selector/page.mdx b/apps/landing/src/app/(detail)/docs/api/group-selector/page.mdx
index 2614ee54..1826f86f 100644
--- a/apps/landing/src/app/(detail)/docs/api/group-selector/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/group-selector/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Group Selector',
+ alternates: {
+ canonical: '/docs/api/group-selector'
+ }
+
}
# Group Selector
diff --git a/apps/landing/src/app/(detail)/docs/api/image/page.mdx b/apps/landing/src/app/(detail)/docs/api/image/page.mdx
index 866d1d58..c23d4015 100644
--- a/apps/landing/src/app/(detail)/docs/api/image/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/image/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Image',
+ alternates: {
+ canonical: '/docs/api/image'
+ }
+
}
# Image
diff --git a/apps/landing/src/app/(detail)/docs/api/input/page.mdx b/apps/landing/src/app/(detail)/docs/api/input/page.mdx
index 3bc59a05..3fb5469e 100644
--- a/apps/landing/src/app/(detail)/docs/api/input/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/input/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Input',
+ alternates: {
+ canonical: '/docs/api/input'
+ }
+
}
# Input
diff --git a/apps/landing/src/app/(detail)/docs/api/selector/page.mdx b/apps/landing/src/app/(detail)/docs/api/selector/page.mdx
index 14a22c42..338a8b7a 100644
--- a/apps/landing/src/app/(detail)/docs/api/selector/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/selector/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Selector',
+ alternates: {
+ canonical: '/docs/api/selector'
+ }
+
}
# Selector
diff --git a/apps/landing/src/app/(detail)/docs/api/style-props/page.mdx b/apps/landing/src/app/(detail)/docs/api/style-props/page.mdx
index 1b184f42..e6b32431 100644
--- a/apps/landing/src/app/(detail)/docs/api/style-props/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/style-props/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Style Props',
+ alternates: {
+ canonical: '/docs/api/style-props'
+ }
+
}
# Style Props
diff --git a/apps/landing/src/app/(detail)/docs/api/text/page.mdx b/apps/landing/src/app/(detail)/docs/api/text/page.mdx
index 92d8a8b1..ebe1ea0d 100644
--- a/apps/landing/src/app/(detail)/docs/api/text/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/text/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Text',
+ alternates: {
+ canonical: '/docs/api/text'
+ }
+
}
# Text
diff --git a/apps/landing/src/app/(detail)/docs/api/v-stack/page.mdx b/apps/landing/src/app/(detail)/docs/api/v-stack/page.mdx
index 5cff7f3c..3fb6446c 100644
--- a/apps/landing/src/app/(detail)/docs/api/v-stack/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/api/v-stack/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'VStack',
+ alternates: {
+ canonical: '/docs/api/v-stack'
+ }
+
}
# VStack
diff --git a/apps/landing/src/app/(detail)/docs/devup/breakpoints/page.mdx b/apps/landing/src/app/(detail)/docs/devup/breakpoints/page.mdx
index 2c2bb7b8..8eab2d4e 100644
--- a/apps/landing/src/app/(detail)/docs/devup/breakpoints/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/devup/breakpoints/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Breakpoints',
+ alternates: {
+ canonical: '/docs/devup/breakpoints'
+ }
+
}
# Breakpoints
diff --git a/apps/landing/src/app/(detail)/docs/devup/colors/page.mdx b/apps/landing/src/app/(detail)/docs/devup/colors/page.mdx
index 8d3a6ec5..073bfef5 100644
--- a/apps/landing/src/app/(detail)/docs/devup/colors/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/devup/colors/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Colors',
+ alternates: {
+ canonical: '/docs/devup/colors'
+ }
+
}
# Colors
diff --git a/apps/landing/src/app/(detail)/docs/devup/devup-json/page.mdx b/apps/landing/src/app/(detail)/docs/devup/devup-json/page.mdx
index 52c77683..7eb26bec 100644
--- a/apps/landing/src/app/(detail)/docs/devup/devup-json/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/devup/devup-json/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'devup.json',
+ alternates: {
+ canonical: '/docs/devup/devup-json'
+ }
+
}
# devup.json
diff --git a/apps/landing/src/app/(detail)/docs/devup/figma-plugin/page.mdx b/apps/landing/src/app/(detail)/docs/devup/figma-plugin/page.mdx
index bb2dd907..cef1b653 100644
--- a/apps/landing/src/app/(detail)/docs/devup/figma-plugin/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/devup/figma-plugin/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Figma Plugin',
+ alternates: {
+ canonical: '/docs/devup/figma-plugin'
+ }
+
}
# Figma Plugin
diff --git a/apps/landing/src/app/(detail)/docs/devup/typography/page.mdx b/apps/landing/src/app/(detail)/docs/devup/typography/page.mdx
index c89cdbd1..59ba33dd 100644
--- a/apps/landing/src/app/(detail)/docs/devup/typography/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/devup/typography/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: 'Typography',
+ alternates: {
+ canonical: '/docs/devup/typography'
+ }
+
}
# Typography
diff --git a/apps/landing/src/app/(detail)/docs/features/page.mdx b/apps/landing/src/app/(detail)/docs/features/page.mdx
index 4b01c659..272a898e 100644
--- a/apps/landing/src/app/(detail)/docs/features/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/features/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: "Features",
+ alternates: {
+ canonical: '/docs/features',
+ }
+
}
# Features
diff --git a/apps/landing/src/app/(detail)/docs/installation/page.mdx b/apps/landing/src/app/(detail)/docs/installation/page.mdx
index 4789d56a..58d8ef0a 100644
--- a/apps/landing/src/app/(detail)/docs/installation/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/installation/page.mdx
@@ -1,5 +1,9 @@
export const metadata = {
title: "Installation",
+ alternates: {
+ canonical: '/docs/installation',
+ }
+
}
# Installation
diff --git a/apps/landing/src/app/(detail)/docs/overview/page.mdx b/apps/landing/src/app/(detail)/docs/overview/page.mdx
index 1b879a5e..1f4697ea 100644
--- a/apps/landing/src/app/(detail)/docs/overview/page.mdx
+++ b/apps/landing/src/app/(detail)/docs/overview/page.mdx
@@ -1,5 +1,8 @@
export const metadata = {
title: "What is Devup UI?",
+ alternates: {
+ canonical: '/docs/overview',
+ }
}
## What is Devup UI?
diff --git a/apps/landing/src/app/(detail)/team/page.mdx b/apps/landing/src/app/(detail)/team/page.mdx
index 0b58811c..404cfe8e 100644
--- a/apps/landing/src/app/(detail)/team/page.mdx
+++ b/apps/landing/src/app/(detail)/team/page.mdx
@@ -1,3 +1,10 @@
+export const metadata = {
+ alternates: {
+ canonical: '/team',
+ }
+}
+
+
# Team
We are a team committed to developing the most optimized CSS-in-JS solutions.
diff --git a/apps/landing/src/app/layout.tsx b/apps/landing/src/app/layout.tsx
index 9f718202..bf8fcb7d 100644
--- a/apps/landing/src/app/layout.tsx
+++ b/apps/landing/src/app/layout.tsx
@@ -11,6 +11,18 @@ import { SearchModal } from '../components/SearchModal'
export const metadata: Metadata = {
title: 'Devup UI',
description: 'Zero Config, Zero FOUC, Zero Runtime, CSS in JS Preprocessor',
+ alternates: {
+ canonical: 'https://devup-ui.com',
+ },
+ metadataBase: new URL('https://devup-ui.com'),
+ openGraph: {
+ title: 'Devup UI',
+ description: 'Zero Config, Zero FOUC, Zero Runtime, CSS in JS Preprocessor',
+ images: ['https://devup-ui.com/og-image.png'],
+ siteName: 'Devup UI',
+ type: 'website',
+ url: 'https://devup-ui.com',
+ },
}
export default function RootLayout({
diff --git a/apps/landing/src/app/page.tsx b/apps/landing/src/app/page.tsx
index 8b5ffea6..f4c3e469 100644
--- a/apps/landing/src/app/page.tsx
+++ b/apps/landing/src/app/page.tsx
@@ -1,4 +1,5 @@
import { Box, css, Flex, Grid, Image, Text, VStack } from '@devup-ui/react'
+import { Metadata } from 'next'
import Link from 'next/link'
import { CodeBoard } from '../components/CodeBoard'
@@ -6,10 +7,15 @@ import { Container } from '../components/Container'
import { Discord } from '../components/Discord'
import { FeatureCard } from './FeatureCard'
+export const metadata: Metadata = {
+ alternates: {
+ canonical: '/',
+ },
+}
+
export default function HomePage() {
return (
<>
-