Skip to content

Commit cdbfab5

Browse files
committed
add new schemas
1 parent ea97643 commit cdbfab5

File tree

6 files changed

+179
-129
lines changed

6 files changed

+179
-129
lines changed

app/(site)/page.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import { AboutSectionV2 } from "../components/AboutSectionV2"
44
import { ServicesSectionV2 } from "../components/ServicesSectionV2"
55
import { RecruiterContact } from "../components/RecruiterContact"
66
import { Metadata } from "next"
7-
import { SITE_SLUGS } from "@/config/siteConfig"
7+
import { SITE_CONFIG, SITE_SLUGS } from "@/config/siteConfig"
8+
import { homeGraph } from "@/config/schemas"
9+
import Script from "next/script"
810

911
export const metadata: Metadata = {
10-
title: "Austin Serb - Web Developer Portfolio | React & Next.js",
12+
title: SITE_CONFIG.title,
1113
description:
1214
"Explore the web developer portfolio of Austin Serb, a full-stack engineer building fast, modern web applications. See what a professional coding portfolio looks like, featuring projects in React, Next.js, and the custom-built React-Zero-UI library.",
1315

@@ -34,6 +36,13 @@ export const metadata: Metadata = {
3436
const PortfolioPage: React.FC = () => {
3537
return (
3638
<main className="overflow-hidden">
39+
<Script
40+
id="id-site-schema"
41+
type="application/ld+json"
42+
dangerouslySetInnerHTML={{
43+
__html: JSON.stringify(homeGraph),
44+
}}
45+
/>
3746
<HeroV2 />
3847
<div className="border-b border-gray-200" />
3948
<ProjectsSection />

app/components/ProjectSection/ProjectDisplay.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,19 @@ import { LargeReview } from "../LargeReview"
66
import { MoreProjectsSection } from "./MoreProjectsSection"
77
import { ProjectData } from "../../data/project-data"
88
import { RecruiterContact } from "../RecruiterContact"
9+
import Script from "next/script"
10+
import { buildProjectGraphMinimal } from "@/config/schemas"
911

1012
const ProjectDisplay: React.FC<{ projectData: ProjectData }> = ({ projectData }) => {
1113
return (
1214
<main className="overflow-hidden">
15+
<Script
16+
id="id-project-schema"
17+
type="application/ld+json"
18+
dangerouslySetInnerHTML={{
19+
__html: JSON.stringify(buildProjectGraphMinimal(projectData.slug, projectData)),
20+
}}
21+
/>
1322
<ProjectHero {...projectData.hero} />
1423
{projectData.beforeAfter && (
1524
<BeforeAfterSection

app/data/project-data.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,14 @@ import { ApproachTabsImage } from "../components/ProjectSection/ApproachTabsImag
3939
// }
4040
// }
4141
// }
42+
4243
export interface ProjectHeroProps {
4344
title: string | React.ReactNode
4445
client: string
4546
year: string
4647
description: string | React.ReactNode
4748
categories: string[]
49+
// link to the client's website
4850
link: string
4951
}
5052

@@ -62,6 +64,7 @@ export type ProjectData = {
6264
results: AnalyticCardProps[]
6365
phases: Phase[]
6466
review: ReviewProps
67+
slug: string
6568
}
6669

6770
export const bespoke: ProjectData = {
@@ -80,6 +83,7 @@ export const bespoke: ProjectData = {
8083
categories: ["SEO", "Web Design", "Web Development", "Photography"],
8184
link: "https://www.bespokeauto.org/",
8285
},
86+
slug: "bespoke",
8387
beforeAfter: {
8488
heroBefore: heroBefore,
8589
beforeAltText: "Bespoke Tint & PPF Before",
@@ -212,6 +216,8 @@ export const automedicsKirkland: ProjectData = {
212216
categories: ["Next.js", "Web Design", "Local SEO", "Copywriting"],
213217
link: "https://www.automedicskirkland.com",
214218
},
219+
slug: "automedics",
220+
215221
beforeAfter: {
216222
heroBefore: heroBeforeAutomedics,
217223
beforeAltText: "Automedics Kirkland Before",
@@ -319,6 +325,7 @@ export const iao: ProjectData = {
319325
categories: ["Next.js", "Web Design", "Web Development", "Storytelling"],
320326
link: "https://iao-seattle.vercel.app/?src=serbyte",
321327
},
328+
slug: "iron-and-oak",
322329
beforeAfter: {
323330
heroBefore: heroBeforeIao,
324331
heroBeforeMobile: heroBeforeMobileIao,

app/layout.tsx

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { ViewTransitions } from "./utils/ViewTransition"
1111
import { BottomBlurOverlay } from "./ui/BlurBottomOverlay"
1212
import { LazySplashCursor } from "./utils/lazy-splash-cursor"
1313
import { DesktopCursor } from "./utils/lazy-dot-cursor"
14-
import { breadcrumbSchema, contactPageSchema, profilePageSchema } from "@/config/schemas"
14+
import { siteGraph } from "@/config/schemas"
1515
import Script from "next/script"
1616

1717
const switzer = localFont({
@@ -44,21 +44,10 @@ const RootLayout = ({ children }: { children: React.ReactNode }) => {
4444
{children}
4545

4646
<script
47+
id="id-site-schema"
4748
type="application/ld+json"
4849
dangerouslySetInnerHTML={{
49-
__html: JSON.stringify(contactPageSchema),
50-
}}
51-
/>
52-
<script
53-
type="application/ld+json"
54-
dangerouslySetInnerHTML={{
55-
__html: JSON.stringify(profilePageSchema),
56-
}}
57-
/>
58-
<script
59-
type="application/ld+json"
60-
dangerouslySetInnerHTML={{
61-
__html: JSON.stringify(breadcrumbSchema),
50+
__html: JSON.stringify(siteGraph),
6251
}}
6352
/>
6453
<FooterV2 />

0 commit comments

Comments
 (0)