Skip to content

pit.world global footer + one-row site footer (1.9.1) - #90

Merged
ralyodio merged 1 commit into
masterfrom
pit-footer
Oct 19, 2026
Merged

ralyodio merged 1 commit into
masterfrom
pit-footer

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor
  • Adds components/PitFooter.tsx: an async server component that fetches https://pit.world/snippets/footer.html?site=c0upons.com (revalidate 3600, 3s timeout) and renders nothing on any failure. Rendered last in <body> in the root layout.
  • Trims components/Footer.tsx from a four-column link dump (tagline, duplicate Blog link, CLI install box, @profullstack/footer webring/tagline row) to one row: logo + copyright, Stores, Submit a code, Blog, Docs & API, About, Privacy, Terms, GitHub.
  • CSP already has style-src 'unsafe-inline', no change needed. No ads were in or against the footer.
  • Version 1.9.1.

🤖 Generated with Claude Code

- components/PitFooter.tsx: server component that fetches
  pit.world/snippets/footer.html?site=c0upons.com (revalidate 1h,
  3s timeout) and renders nothing on any failure. Last thing in <body>.
- Footer: the four-column link dump, tagline, CLI install box and the
  @profullstack/footer webring row become one row: logo + copyright,
  Stores, Submit, Blog, Docs & API, About, Privacy, Terms, GitHub.
- Bump to 1.9.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ralyodio
ralyodio merged commit 4f1c3e9 into master Oct 19, 2026
4 checks passed
export default async function PitFooter() {
const html = await loadSnippet();
if (!html) return null;
return <div dangerouslySetInnerHTML={{ __html: html }} />;
@github-actions

Copy link
Copy Markdown

ThreatCrush Security Scan

38 finding(s)

MEDIUM: 32 | LOW: 6

Severity Rule Location
MEDIUM sql-template-interpolation apps/web/app/api/bounties/[id]/claim/route.ts:18
MEDIUM sql-template-interpolation apps/web/app/api/bounties/[id]/claim/route.ts:34
MEDIUM sql-template-interpolation apps/web/app/api/bounties/[id]/claim/route.ts:43
MEDIUM sql-template-interpolation apps/web/app/api/bounties/route.ts:81
MEDIUM sql-template-interpolation apps/web/app/api/coupons/route.ts:68
MEDIUM sql-template-interpolation apps/web/app/api/coupons/route.ts:75
MEDIUM sql-template-interpolation apps/web/app/api/coupons/vote/route.ts:31
MEDIUM sql-template-interpolation apps/web/app/api/coupons/vote/route.ts:33
MEDIUM sql-template-interpolation apps/web/app/api/stores/[slug]/route.ts:9
MEDIUM sql-template-interpolation apps/web/app/api/webhooks/crawlproof/route.ts:83
MEDIUM sql-template-interpolation apps/web/app/api/webhooks/crawlproof/route.ts:90
MEDIUM js-open-redirect apps/web/app/bounties/new/page.tsx:57
MEDIUM js-unescaped-html-sink apps/web/app/coupons/[id]/page.tsx:57
MEDIUM js-unescaped-html-sink apps/web/app/layout.tsx:89
MEDIUM sql-template-interpolation apps/web/app/stores/[slug]/page.tsx:16
MEDIUM js-unescaped-html-sink apps/web/components/PitFooter.tsx:24
MEDIUM sql-template-interpolation apps/web/lib/bbs-post.ts:164
MEDIUM sql-template-interpolation apps/web/lib/flipp-sync.ts:445
MEDIUM sql-template-interpolation apps/web/lib/inbound-email.ts:573
MEDIUM sql-template-interpolation apps/web/lib/inbound-email.ts:643
MEDIUM sql-template-interpolation apps/web/lib/mcp-tools.ts:81
MEDIUM sql-template-interpolation apps/web/lib/members.ts:54
MEDIUM sql-template-interpolation apps/web/lib/nichedb-sync.ts:186
MEDIUM sql-template-interpolation apps/web/lib/nichedb-sync.ts:206
MEDIUM sql-template-interpolation apps/web/lib/reddit-sync.ts:336
MEDIUM sql-template-interpolation apps/web/lib/reddit-sync.ts:355
MEDIUM sql-template-interpolation apps/web/lib/reddit-sync.ts:361
MEDIUM sql-template-interpolation apps/web/lib/reveal-coupon.ts:115
MEDIUM sql-template-interpolation apps/web/lib/reveal-coupon.ts:170
MEDIUM sh-predictable-temp-path apps/web/public/install.sh:37
MEDIUM sh-predictable-temp-path apps/web/public/install.sh:39
MEDIUM sql-template-interpolation apps/web/scripts/migrate.mjs:192
LOW sql-template-interpolation test/bbs-post.test.mjs:129
LOW sql-template-interpolation test/bbs-post.test.mjs:143
LOW sql-template-interpolation test/bbs-post.test.mjs:164
LOW sql-template-interpolation test/inbound-email.test.mjs:139
LOW sql-template-interpolation test/reveal-sweep.test.mjs:69
LOW sql-template-interpolation test/reveal-sweep.test.mjs:112

Snippets are redacted; ThreatCrush never prints matched credential material.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants