Skip to content

Commit fceeb2e

Browse files
committed
Point something at the handle the project already owns
@podiumstack was registered and then referenced nowhere: the site emitted twitter:card and twitter:image but no twitter:site, so every shared link rendered an unattributed card, and the footer offered no way to follow the project at all. Adds twitter:site, twitter:creator and og:site_name, and puts the handle in the footer beside GitHub, with the URL in consts.ts where that file's header comment says every outbound link belongs. Also corrects STATS.tests from 714 to 739, which is what the suite reports now. The comment above STATS says to regenerate rather than estimate; the other counts are left alone because they were not measured here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DqxMg5dMxq99sTo5VCA25Y
1 parent 176c8a3 commit fceeb2e

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

www/src/consts.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ export const API_DOC_URL = `${GITHUB_URL}/blob/main/docs/domain/09-api-and-integ
1818
export const LICENSE_URL = `${GITHUB_URL}/blob/main/LICENSE`;
1919
export const ISSUES_URL = `${GITHUB_URL}/issues`;
2020

21+
/**
22+
* `podiumstack` is the one qualifier the product uses wherever the bare word is
23+
* taken — this domain, the npm scope, and this handle. There is no second one,
24+
* so if the handle ever moves, these two lines move with it and nothing else.
25+
*/
26+
export const SOCIAL_HANDLE = "@podiumstack";
27+
export const SOCIAL_URL = "https://x.com/podiumstack";
28+
2129
export const SITE_TITLE = "Podium";
2230
export const SITE_DESCRIPTION =
2331
"Run your conference program without the spreadsheets. Podium handles the call for proposals, review, sponsor sessions, speaker onboarding and the schedule on your website. Open source, and it runs on infrastructure you own.";
@@ -53,7 +61,7 @@ export const NAV = [
5361
* workers/api/src | sort -u | wc -l (method + path pairs)
5462
*/
5563
export const STATS = {
56-
tests: 714,
64+
tests: 739,
5765
events: 136,
5866
invariants: 158,
5967
scopes: 22,

www/src/layouts/Base.astro

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import {
1111
SIGN_IN_URL,
1212
SITE_DESCRIPTION,
1313
SITE_TITLE,
14+
SOCIAL_HANDLE,
15+
SOCIAL_URL,
1416
} from "../consts";
1517
1618
interface Props {
@@ -61,13 +63,20 @@ const isCurrent = (href: string) => path === href || path.startsWith(`${href}/`)
6163
<meta name="theme-color" content="#6366F1" />
6264

6365
<meta property="og:type" content="website" />
66+
<meta property="og:site_name" content={SITE_TITLE} />
6467
<meta property="og:title" content={pageTitle} />
6568
<meta property="og:description" content={description} />
6669
{!noindex && <meta property="og:url" content={canonical} />}
6770
<meta property="og:image" content={ogImage} />
6871
<meta name="twitter:card" content="summary_large_image" />
6972
<meta name="twitter:image" content={ogImage} />
7073

74+
{/* Both tags carry the same handle: the account is the project, and there is
75+
no separate author to credit. Unlike og:url these attribute the card
76+
rather than address the page, so a noindex page still names its source. */}
77+
<meta name="twitter:site" content={SOCIAL_HANDLE} />
78+
<meta name="twitter:creator" content={SOCIAL_HANDLE} />
79+
7180
{/* Arms the scroll reveal. This has to run before first paint, or the
7281
sections paint, then hide, then fade back in — a flicker worse than no
7382
animation. It is deliberately the only thing here: the observer that
@@ -161,6 +170,7 @@ const isCurrent = (href: string) => path === href || path.startsWith(`${href}/`)
161170
<div>
162171
<h2>Source</h2>
163172
<a href={GITHUB_URL}>GitHub</a>
173+
<a href={SOCIAL_URL}>{SOCIAL_HANDLE} on X</a>
164174
<a href={DOMAIN_MODEL_URL}>Domain model</a>
165175
<a href={IMPLEMENTATION_URL}>Implementation notes</a>
166176
<a href={LICENSE_URL}>MIT licence</a>

0 commit comments

Comments
 (0)