Skip to content

Commit b7073ba

Browse files
fix: FAQ undefined CSS var + em-dash sweep in user-facing copy
Two cleanup passes from the full-page audit: 1. faq/page.tsx referenced var(--ink-fade), which isn't defined in the design tokens — text fell back to default color. Switched to var(--c-muted) which is the intended muted-text token. 2. Removed em dashes (—) from all user-facing strings: meta titles, meta descriptions, OG/Twitter cards, and visible body text on layout / pricing / about / faq / legal. Replaced with colons, commas, parens, or middle-dot separators as fit each context. Em dashes leak into browser tabs and search snippets, and they read as AI-generated tells. JSX comments left untouched. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 58ea113 commit b7073ba

8 files changed

Lines changed: 21 additions & 21 deletions

File tree

src/app/about/AboutContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const SECTIONS = [
1111
{
1212
id: 'method-of-examination',
1313
heading: 'Method of Examination',
14-
body: "We query the GitHub public API commit history, star count, open issues, archive status — and run a severity assessment. The cause of death is algorithmic, not editorial. The results are accurate. The framing is not.",
14+
body: "We query the GitHub public API for commit history, star count, open issues, and archive status, then run a severity assessment. The cause of death is algorithmic, not editorial. The results are accurate. The framing is not.",
1515
},
1616
{
1717
id: 'records-we-keep',

src/app/about/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import type { Metadata } from 'next'
22
import AboutContent from './AboutContent'
33

44
export const metadata: Metadata = {
5-
title: 'About Commitment Issues | How It Works',
5+
title: 'About · Commitment Issues · How It Works',
66
description: 'How Commitment Issues works: we analyze your GitHub repo\'s commit history, activity decay, and open issues to assign a cause of death and generate a printable death certificate.',
77
alternates: { canonical: 'https://commitmentissues.dev/about' },
88
openGraph: {
9-
title: 'About Commitment Issues | How It Works',
9+
title: 'About · Commitment Issues · How It Works',
1010
description: 'How Commitment Issues works: we analyze your GitHub repo\'s commit history, activity decay, and open issues to assign a cause of death and generate a printable death certificate.',
1111
url: 'https://commitmentissues.dev/about',
1212
},

src/app/faq/page.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import type { Metadata } from 'next'
22
import Link from 'next/link'
33

44
export const metadata: Metadata = {
5-
title: 'FAQ Commitment Issues',
5+
title: 'FAQ · Commitment Issues',
66
description: 'Frequently asked questions about Commitment Issues, the death certificate generator for abandoned GitHub repositories. Free, no sign-up.',
77
alternates: { canonical: 'https://commitmentissues.dev/faq' },
88
openGraph: {
9-
title: 'FAQ Commitment Issues',
9+
title: 'FAQ · Commitment Issues',
1010
description: 'Everything about the death certificate generator for dead GitHub repos.',
1111
url: 'https://commitmentissues.dev/faq',
1212
type: 'website',
@@ -32,15 +32,15 @@ const FAQ: { q: string; a: string }[] = [
3232
},
3333
{
3434
q: 'Is there a side project graveyard online?',
35-
a: 'Yes Commitment Issues has a Famous Casualties section listing well-known abandoned open-source projects. You can also paste any GitHub username to see that user\'s personal graveyard of unfinished projects.',
35+
a: 'Yes. Commitment Issues has a Famous Casualties section listing well-known abandoned open-source projects. You can also paste any GitHub username to see that user\'s personal graveyard of unfinished projects.',
3636
},
3737
{
3838
q: 'How do I detect dependency rot in my project?',
3939
a: 'Commitment Issues focuses on individual repo abandonment, not full dependency trees. Pair it with tools like npm audit or Snyk for tree-level rot, and use Commitment Issues to verify whether the maintainers behind specific dependencies are still active.',
4040
},
4141
{
4242
q: 'Is Commitment Issues free?',
43-
a: 'Yes completely free. No ads, no in-app purchases, no sign-up, no account required. Works in any browser. The Chrome extension is also free.',
43+
a: 'Yes, completely free. No ads, no in-app purchases, no sign-up, no account required. Works in any browser. The Chrome extension is also free.',
4444
},
4545
{
4646
q: 'Does Commitment Issues use AI?',
@@ -56,7 +56,7 @@ const FAQ: { q: string; a: string }[] = [
5656
},
5757
{
5858
q: 'How does Commitment Issues compare to GitHub\'s built-in tools?',
59-
a: 'GitHub shows raw activity data but does not synthesize abandonment. Commitment Issues takes those signals and renders an opinionated verdict alive, life support, or deceased with a comedic but accurate certificate.',
59+
a: 'GitHub shows raw activity data but does not synthesize abandonment. Commitment Issues takes those signals and renders an opinionated verdict (alive, life support, or deceased) with a comedic but accurate certificate.',
6060
},
6161
{
6262
q: 'Who made Commitment Issues?',
@@ -87,11 +87,11 @@ export default function FAQPage() {
8787
<main className="page-shell-main">
8888
<FAQJsonLd />
8989
<div className="page-shell-inner">
90-
<Link href="/" style={{ display: 'inline-block', marginBottom: 24, color: 'var(--ink-fade)', fontSize: 14, textDecoration: 'none' }}>← Back to Commitment Issues</Link>
90+
<Link href="/" style={{ display: 'inline-block', marginBottom: 24, color: 'var(--c-muted)', fontSize: 14, textDecoration: 'none' }}>← Back to Commitment Issues</Link>
9191
<h1 style={{ fontSize: 36, fontWeight: 800, letterSpacing: '-0.025em', margin: '0 0 8px' }}>
9292
Frequently Asked Questions
9393
</h1>
94-
<p style={{ color: 'var(--ink-fade)', fontSize: 15, marginBottom: 40 }}>
94+
<p style={{ color: 'var(--c-muted)', fontSize: 15, marginBottom: 40 }}>
9595
Everything about the death certificate generator for dead GitHub repos.
9696
</p>
9797
<div style={{ display: 'flex', flexDirection: 'column', gap: 24 }}>

src/app/layout.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ export const viewport: Viewport = {
3737

3838
export const metadata: Metadata = {
3939
metadataBase: new URL('https://commitmentissues.dev'),
40-
title: 'Commitment Issues Death Certificates for Dead GitHub Repos',
41-
description: 'Paste any public GitHub repo and get an official death certificate cause of death, last commit as last words, and repo stats. Free for developers.',
40+
title: 'Commitment Issues: Death Certificates for Dead GitHub Repos',
41+
description: 'Paste any public GitHub repo and get an official death certificate: cause of death, last commit as last words, and repo stats. Free for developers.',
4242
keywords: [
4343
'abandoned github repo', 'dead github project', 'github repo death certificate',
4444
'unmaintained open source', 'stale repository checker', 'github graveyard',
@@ -49,7 +49,7 @@ export const metadata: Metadata = {
4949
authors: [{ name: 'Dot Systems', url: 'https://github.com/dotsystemsdevs' }],
5050
alternates: { canonical: 'https://commitmentissues.dev' },
5151
openGraph: {
52-
title: 'Commitment Issues Death Certificates for Dead GitHub Repos',
52+
title: 'Commitment Issues: Death Certificates for Dead GitHub Repos',
5353
description: 'Paste any public GitHub repo and get an official death certificate. Cause of death, last words, repo stats. Free for developers.',
5454
url: 'https://commitmentissues.dev',
5555
siteName: 'Commitment Issues',
@@ -58,7 +58,7 @@ export const metadata: Metadata = {
5858
},
5959
twitter: {
6060
card: 'summary_large_image',
61-
title: 'Commitment Issues Death Certificates for Dead GitHub Repos',
61+
title: 'Commitment Issues: Death Certificates for Dead GitHub Repos',
6262
description: 'Paste any public GitHub repo and get an official death certificate. Cause of death, last words, repo stats.',
6363
images: ['/opengraph-image'],
6464
},

src/app/legal/legalContent.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const SECTIONS: Section[] = [
2020
{
2121
id: 'data-sources',
2222
heading: 'Data Sources',
23-
body: "The tool analyzes public data from GitHub's public API repository metadata, commit activity, archive status, open issues. We do not access private code, credentials, or anything not already publicly available on GitHub.",
23+
body: "The tool analyzes public data from GitHub's public API: repository metadata, commit activity, archive status, open issues. We do not access private code, credentials, or anything not already publicly available on GitHub.",
2424
},
2525
{
2626
id: 'privacy',
@@ -30,7 +30,7 @@ const SECTIONS: Section[] = [
3030
{
3131
id: 'analytics',
3232
heading: 'Analytics',
33-
body: 'Privacy-friendly analytics only aggregate counts, not personal profiles. You can avoid submitting private or sensitive URLs; this tool is intended for public GitHub data only.',
33+
body: 'Privacy-friendly analytics only: aggregate counts, not personal profiles. You can avoid submitting private or sensitive URLs; this tool is intended for public GitHub data only.',
3434
},
3535
{
3636
id: 'contact',

src/app/legal/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import type { Metadata } from 'next'
22
import LegalContent from './legalContent'
33

44
export const metadata: Metadata = {
5-
title: 'Legal Commitment Issues',
5+
title: 'Legal · Commitment Issues',
66
description: 'Terms of use and privacy policy for Commitment Issues.',
77
alternates: { canonical: 'https://commitmentissues.dev/legal' },
88
openGraph: {
9-
title: 'Legal Commitment Issues',
9+
title: 'Legal · Commitment Issues',
1010
description: 'Terms of use and privacy policy for Commitment Issues.',
1111
url: 'https://commitmentissues.dev/legal',
1212
},

src/app/pricing/PricingContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ const SECTIONS = [
6868
{
6969
id: 'how-we-survive',
7070
heading: 'How We Stay Alive',
71-
body: 'Commitment Issues is built and maintained by Dot Systems an indie studio that funds this work from other projects. Fork it, share it, or open a pull request with new famous casualties. If you really want to chip in:',
71+
body: 'Commitment Issues is built and maintained by Dot Systems, an indie studio that funds this work from other projects. Fork it, share it, or open a pull request with new famous casualties. If you really want to chip in:',
7272
coffin: true,
7373
},
7474
]

src/app/pricing/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import type { Metadata } from 'next'
22
import PricingContent from './PricingContent'
33

44
export const metadata: Metadata = {
5-
title: 'Pricing Commitment Issues | Death Is Free',
5+
title: 'Pricing · Commitment Issues · Death Is Free',
66
description: 'No price. No paywall. No premium tier. Commitment Issues is free and open source forever. Death does not charge admission.',
77
alternates: { canonical: 'https://commitmentissues.dev/pricing' },
88
openGraph: {
9-
title: 'Pricing Commitment Issues | Death Is Free',
9+
title: 'Pricing · Commitment Issues · Death Is Free',
1010
description: 'No price. No paywall. No premium tier. Commitment Issues is free and open source forever.',
1111
url: 'https://commitmentissues.dev/pricing',
1212
},

0 commit comments

Comments
 (0)