Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const defaultDescription = `A compilation archive of guitarists' rigs and signal

export const metadata: Metadata = {
metadataBase: new URL(SITE_URL),
title: { default: 'Suede DNA Signal Chains, Archived', template: '%s · Suede DNA' },
title: { default: 'Suede DNA: Signal Chains, Archived', template: '%s · Suede DNA' },
Comment thread
JasonColapietro marked this conversation as resolved.
description: defaultDescription,
keywords: [
'guitar rigs',
Expand All @@ -41,13 +41,13 @@ export const metadata: Metadata = {
locale: 'en_US',
url: SITE_URL,
siteName: 'Suede DNA',
title: 'Suede DNA Signal Chains, Archived',
title: 'Suede DNA: Signal Chains, Archived',
description: defaultDescription,
images: [DNA_SOCIAL_IMAGE],
},
twitter: {
card: 'summary_large_image',
title: 'Suede DNA Signal Chains, Archived',
title: 'Suede DNA: Signal Chains, Archived',
description: defaultDescription,
site: '@AISUEDE',
creator: '@johnnysuede',
Expand Down
2 changes: 1 addition & 1 deletion src/app/opengraph-image.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { getStats } from '@/lib/manifest';
export const runtime = 'nodejs';
export const size = { width: 1200, height: 630 };
export const contentType = 'image/png';
export const alt = 'Suede DNA Signal Chains, Archived';
export const alt = 'Suede DNA: Signal Chains, Archived';

export default async function Image() {
const stats = getStats();
Expand Down
8 changes: 8 additions & 0 deletions src/components/footer/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,14 @@ export function Footer() {
>
PRIVACY ↗
</a>
<a
href="https://hub.suedeai.ai"
className="text-[color:var(--color-mute-readable)] hover:text-[color:var(--color-signal)] block mt-1"
target="_blank"
rel="noopener noreferrer"
>
Suede estate directory ↗
</a>
<a
href="https://guitar.solutions"
className="text-[color:var(--color-mute-readable)] hover:text-[color:var(--color-signal)] block mt-1"
Expand Down
6 changes: 3 additions & 3 deletions src/lib/seo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,11 @@ export function artistArchiveContext(
}

export function homePageTitle(): string {
return 'Suede DNA Signal Chains, Archived';
return 'Suede DNA: Signal Chains, Archived';
}

export function homePageDescription(stats: { totalRigs: number; yearMin: number; yearMax: number }): string {
return `A compilation archive of guitarists' rigs and signal chains. ${stats.totalRigs.toLocaleString()} documented setups from ${stats.yearMin} to ${stats.yearMax}, indexed by year and player, sourced from the Guitar Geek Archives on the Internet Archive.`;
return `A compilation archive of guitarists' rigs and signal chains. ${stats.totalRigs.toLocaleString()} documented setups from ${stats.yearMin} to ${stats.yearMax}, indexed by year and player.`;
}

/**
Expand Down Expand Up @@ -119,7 +119,7 @@ export function homeJsonLd(
return {
'@context': 'https://schema.org',
'@type': 'CollectionPage',
name: 'Suede DNA Signal Chains, Archived',
name: 'Suede DNA: Signal Chains, Archived',
description: homePageDescription(stats),
url: siteUrl,
isPartOf: { '@type': 'WebSite', name: 'Suede DNA', url: siteUrl },
Expand Down
2 changes: 1 addition & 1 deletion src/lib/seo/social-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ export const DNA_SOCIAL_IMAGE = {
url: '/dna-social-card.webp',
width: 1200,
height: 630,
alt: 'Suede DNA Signal Chains, Archived',
alt: 'Suede DNA: Signal Chains, Archived',
};
17 changes: 17 additions & 0 deletions tests/lib/seo.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ import {
artistPageDescription,
artistPageTitle,
homeJsonLd,
homePageDescription,
homePageTitle,
} from '../../src/lib/seo';
import { getStats } from '../../src/lib/manifest';
import { ARTICLES } from '../../src/lib/articles-content';
import type { Artist } from '../../src/lib/manifest';

Expand Down Expand Up @@ -106,6 +109,20 @@ describe('SEO helpers', () => {
expect(iommi.name).toContain('Black Sabbath');
});

it('keeps the home page title free of em dashes across every surface', () => {
expect(homePageTitle()).toBe('Suede DNA: Signal Chains, Archived');
expect(homePageTitle()).not.toContain('\u2014');
expect(homeJsonLd('https://dna.suedeai.ai', getStats()).name).toBe(homePageTitle());
});

it('keeps the home page description within the 160 character snippet limit', () => {
const description = homePageDescription(getStats());
expect(description.length).toBeLessThanOrEqual(160);
expect(description).toContain('409');
expect(description).toContain('1964 to 2014');
expect(description).toMatch(/indexed by year and player\.$/);
});

it('does not declare a list structure the home page cannot enumerate', () => {
const ld = homeJsonLd('https://dna.suedeai.ai', {
totalRigs: 409,
Expand Down
Loading