Fix canonical tags
All checks were successful
Build And Publish / BuildAndPublish (push) Successful in 2m43s

This commit is contained in:
Ryan Freeman 2024-10-17 20:58:15 +01:00
parent 412927d663
commit 40913ad401
14 changed files with 85 additions and 22 deletions

View File

@ -15,7 +15,10 @@ const meta = {
description: 'I\'ve always had an affinity for technology, and loved making things for as long as I can remember. ' + description: 'I\'ve always had an affinity for technology, and loved making things for as long as I can remember. ' +
'My first computer was an Amstrad CPC 464 way back in the 90s, which is ancient by modern standards. ' + 'My first computer was an Amstrad CPC 464 way back in the 90s, which is ancient by modern standards. ' +
'My passion for tinkering continued through my teens and into adulthood where I eventually found my way into software engineering.', 'My passion for tinkering continued through my teens and into adulthood where I eventually found my way into software engineering.',
type: 'website' type: 'website',
alternates: {
canonical: '/about'
}
} }
export const metadata = _metadata({...meta, heading: meta.heading}) export const metadata = _metadata({...meta, heading: meta.heading})

View File

@ -25,7 +25,7 @@ export async function GET(request: Request) {
style={{ style={{
fontSize: 64, fontSize: 64,
fontFamily: 'Inter', fontFamily: 'Inter',
background: 'black', background: '#0a0a0a',
width: '100%', width: '100%',
height: '100%', height: '100%',
display: 'flex', display: 'flex',

View File

@ -11,10 +11,7 @@ export const metadata = {
template: '%s - Ryan Freeman' template: '%s - Ryan Freeman'
}, },
description: 'Full-stack software engineer who enjoys building cloud-native applications.', description: 'Full-stack software engineer who enjoys building cloud-native applications.',
metadataBase: new URL('https://ryanfreeman.dev'), metadataBase: new URL('https://ryanfreeman.dev')
alternates: {
canonical: '/'
}
} }
export default function RootLayout({children}: { children: ReactNode }) { export default function RootLayout({children}: { children: ReactNode }) {

View File

@ -16,7 +16,10 @@ const meta = {
description: 'Hi. I\'m Ryan, a software engineer based in Dublin, Ireland. I\'m currently working in the aviation industry for Aer Lingus. ' + description: 'Hi. I\'m Ryan, a software engineer based in Dublin, Ireland. I\'m currently working in the aviation industry for Aer Lingus. ' +
'I am passionate about personal growth and progressing in my career. ' + 'I am passionate about personal growth and progressing in my career. ' +
'This is my personal website where you can learn more about me, read articles I\'ve written and see projects I\'ve worked on.', 'This is my personal website where you can learn more about me, read articles I\'ve written and see projects I\'ve worked on.',
type: 'website' type: 'website',
alternates: {
canonical: '/'
}
} }
export const metadata = _metadata({...meta, heading: meta.heading}) export const metadata = _metadata({...meta, heading: meta.heading})

View File

@ -11,7 +11,10 @@ const meta = {
title: 'Projects', title: 'Projects',
heading: 'Things I\'ve made and projects I\'ve worked on.', heading: 'Things I\'ve made and projects I\'ve worked on.',
description: 'Here\'s a selection of academic and personal projects that I have worked on. Many of them are open-source, so if you see something that piques your interest, check out the code and contribute if you have ideas for how it can be improved.', description: 'Here\'s a selection of academic and personal projects that I have worked on. Many of them are open-source, so if you see something that piques your interest, check out the code and contribute if you have ideas for how it can be improved.',
type: 'website' type: 'website',
alternates: {
canonical: '/projects'
}
} }
export const metadata = _metadata({...meta, heading: meta.heading}) export const metadata = _metadata({...meta, heading: meta.heading})

View File

@ -7,7 +7,10 @@ const meta = {
title: 'Reading', title: 'Reading',
heading: 'Books I\'m reading at the moment', heading: 'Books I\'m reading at the moment',
description: 'Take a look at my curated reading list.', description: 'Take a look at my curated reading list.',
type: 'website' type: 'website',
alternates: {
canonical: '/reading'
}
} }
export const metadata = _metadata({...meta, heading: meta.heading}) export const metadata = _metadata({...meta, heading: meta.heading})

View File

@ -16,7 +16,10 @@ const meta = {
heading: 'I offer a wide range of digital services to elevate and transform your business', heading: 'I offer a wide range of digital services to elevate and transform your business',
description: 'Whether you need a WordPress website, React app, AWS support or odd coding jobs, I\'m here to help. ' + description: 'Whether you need a WordPress website, React app, AWS support or odd coding jobs, I\'m here to help. ' +
'As an experienced software engineer, I produce high-quality software that will deliver immediate value for you and your customers.', 'As an experienced software engineer, I produce high-quality software that will deliver immediate value for you and your customers.',
type: 'website' type: 'website',
alternates: {
canonical: '/services'
}
} }
export const metadata = _metadata({...meta, heading: meta.heading}) export const metadata = _metadata({...meta, heading: meta.heading})

View File

@ -8,7 +8,10 @@ const meta = {
title: 'Uses', title: 'Uses',
heading: 'Software I use, equipment that makes my job easier, and other things I recommend.', heading: 'Software I use, equipment that makes my job easier, and other things I recommend.',
description: 'I get asked a lot about the things I use to build software and stay productive. Heres a big list of all of my favourite gear.', description: 'I get asked a lot about the things I use to build software and stay productive. Heres a big list of all of my favourite gear.',
type: 'website' type: 'website',
alternates: {
canonical: '/uses'
}
} }
export const metadata = _metadata({...meta, heading: meta.heading}) export const metadata = _metadata({...meta, heading: meta.heading})

View File

@ -6,10 +6,19 @@ export const meta = {
authors: 'Ryan Freeman', authors: 'Ryan Freeman',
title: 'A personal journey in software engineering', title: 'A personal journey in software engineering',
date: '2022-12-04', date: '2022-12-04',
description: 'Hello there! If you\'re reading this, you\'ve likely stumbled upon my website — welcome! My name is Ryan Freeman, and I\'m a full-stack developer with a passion for creating intuitive and dynamic web applications.' description: 'Hello there! If you\'re reading this, you\'ve likely stumbled upon my website — welcome! My name is Ryan Freeman, and I\'m a full-stack developer with a passion for creating intuitive and dynamic web applications.',
alternates: {
canonical: `/writing/${createSlug('A personal journey in software engineering')}`
}
} }
export const metadata = _metadata({title: meta.title, heading: meta.title, description: meta.description, type: 'article'}) export const metadata = _metadata({
title: meta.title,
heading: meta.title,
description: meta.description,
type: 'article',
alternates: meta.alternates
})
export default (props) => <ArticleLayout export default (props) => <ArticleLayout
title={meta.title} title={meta.title}

View File

@ -8,10 +8,19 @@ export const meta = {
authors: 'Ryan Freeman', authors: 'Ryan Freeman',
title: 'Generating dynamic Open Graph images with Next.js', title: 'Generating dynamic Open Graph images with Next.js',
date: '2024-10-10', date: '2024-10-10',
description: 'In this post I\'ll talk about how I created dynamic, eye-catching Open Graph images with Next.js for this website.' description: 'In this post I\'ll talk about how I created dynamic, eye-catching Open Graph images with Next.js for this website.',
alternates: {
canonical: `/writing/${createSlug('Generating dynamic Open Graph images with Next.js')}`
}
} }
export const metadata = _metadata({title: meta.title, heading: meta.title, description: meta.description, type: 'article'}) export const metadata = _metadata({
title: meta.title,
heading: meta.title,
description: meta.description,
type: 'article',
alternates: meta.alternates
})
export default (props) => <ArticleLayout export default (props) => <ArticleLayout
title={meta.title} title={meta.title}

View File

@ -9,10 +9,19 @@ export const meta = {
authors: 'Ryan Freeman', authors: 'Ryan Freeman',
title: 'Migrating from Vercel to Raspberry Pi 5', title: 'Migrating from Vercel to Raspberry Pi 5',
date: '2024-08-23', date: '2024-08-23',
description: 'Recently, I decided to migrate this website from Vercel to a self-hosted environment using a Raspberry Pi 5. This transition was driven by several motivations, such as lowering costs and having greater control over the software and hardware that I run.' description: 'Recently, I decided to migrate this website from Vercel to a self-hosted environment using a Raspberry Pi 5. This transition was driven by several motivations, such as lowering costs and having greater control over the software and hardware that I run.',
alternates: {
canonical: `/writing/${createSlug('Migrating from Vercel to Raspberry Pi 5')}`
}
} }
export const metadata = _metadata({title: meta.title, heading: meta.title, description: meta.description, type: 'article'}) export const metadata = _metadata({
title: meta.title,
heading: meta.title,
description: meta.description,
type: 'article',
alternates: meta.alternates
})
export default (props) => <ArticleLayout export default (props) => <ArticleLayout
title={meta.title} title={meta.title}

View File

@ -11,7 +11,10 @@ const meta = {
title: 'Writing', title: 'Writing',
heading: 'Writing on software engineering, and everything in between.', heading: 'Writing on software engineering, and everything in between.',
description: 'All of my long-form thoughts on software engineering, and more, displayed in chronological order.', description: 'All of my long-form thoughts on software engineering, and more, displayed in chronological order.',
type: 'website' type: 'website',
alternates: {
canonical: '/writing'
}
} }
export const metadata = _metadata({...meta, heading: meta.heading}) export const metadata = _metadata({...meta, heading: meta.heading})

View File

@ -11,10 +11,19 @@ export const meta = {
authors: 'Ryan Freeman', authors: 'Ryan Freeman',
title: 'Secure your websites with Let\'s Encrypt, NPM and Cloudflare', title: 'Secure your websites with Let\'s Encrypt, NPM and Cloudflare',
date: '2024-09-21', date: '2024-09-21',
description: 'SSL/TLS is the encryption standard or protocol which encrypts the session between a website (server) and the browser (client). This protects us from potential man-in-the-middle attacks whereby an attacker could eavesdrop on the session and see all the traffic and data exchanged in the clear.' description: 'SSL/TLS is the encryption standard or protocol which encrypts the session between a website (server) and the browser (client). This protects us from potential man-in-the-middle attacks whereby an attacker could eavesdrop on the session and see all the traffic and data exchanged in the clear.',
alternates: {
canonical: `/writing/${createSlug('Secure your websites with Let\'s Encrypt, NPM and Cloudflare')}`
}
} }
export const metadata = _metadata({title: meta.title, heading: meta.title, description: meta.description, type: 'article'}) export const metadata = _metadata({
title: meta.title,
heading: meta.title,
description: meta.description,
type: 'article',
alternates: meta.alternates
})
export default (props) => <ArticleLayout export default (props) => <ArticleLayout
title={meta.title} title={meta.title}

View File

@ -8,10 +8,19 @@ export const meta = {
authors: 'Ryan Freeman', authors: 'Ryan Freeman',
title: 'Using Tailscale to bypass Steam Families restrictions', title: 'Using Tailscale to bypass Steam Families restrictions',
date: '2024-09-14', date: '2024-09-14',
description: 'This past week, Steam launched Steam Families, which allows Steam account owners to share their game library with up to six members of their family.' description: 'This past week, Steam launched Steam Families, which allows Steam account owners to share their game library with up to six members of their family.',
alternates: {
canonical: `/writing/${createSlug('Using Tailscale to bypass Steam Families restrictions')}`
}
} }
export const metadata = _metadata({title: meta.title, heading: meta.title, description: meta.description, type: 'article'}) export const metadata = _metadata({
title: meta.title,
heading: meta.title,
description: meta.description,
type: 'article',
alternates: meta.alternates
})
export default (props) => <ArticleLayout export default (props) => <ArticleLayout
title={meta.title} title={meta.title}