diff --git a/apps/web/app/(marketing)/page.tsx b/apps/web/app/(marketing)/page.tsx index 3eac46e..524f203 100644 --- a/apps/web/app/(marketing)/page.tsx +++ b/apps/web/app/(marketing)/page.tsx @@ -1,6 +1,7 @@ import Link from 'next/link'; import { redirect } from 'next/navigation'; import { cookies } from 'next/headers'; +import { Footer } from '@profullstack/footer/react'; import { BrandLockup, BrandWordmark } from '../../components/brand'; export const dynamic = 'force-dynamic'; @@ -376,46 +377,23 @@ function ClosingCta() { function SiteFooter() { return ( - - {/* - * The lockup, not the bare mark. At 20px inside a muted grey row the - * mark's thin cyan strokes had nothing to hold contrast against and read - * as a faded smudge; at 32px beside full-strength text it does not. - */} -
- - - LinkedIn only through your own session, opt-in. Suppression survives deletion. - -
- -
-

© {new Date().getFullYear()} OutreachGraph

- + <> + + {/* + * The lockup, not the bare mark. At 20px inside a muted grey row the + * mark's thin cyan strokes had nothing to hold contrast against and read + * as a faded smudge; at 32px beside full-strength text it does not. + */} +
+ + + LinkedIn only through your own session, opt-in. Suppression survives deletion. + +
+
+
+
- + ); } diff --git a/apps/web/package.json b/apps/web/package.json index 9017c28..8e63fd2 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,6 +12,7 @@ "dependencies": { "@outreachgraph/contracts": "workspace:*", "@outreachgraph/domain": "workspace:*", + "@profullstack/footer": "latest", "@profullstack/x402-gateway": "^0.7.0", "next": "16.3.6", "react": "19.2.8", diff --git a/bun.lock b/bun.lock index aa08ea4..e088e7c 100644 --- a/bun.lock +++ b/bun.lock @@ -83,6 +83,7 @@ "dependencies": { "@outreachgraph/contracts": "workspace:*", "@outreachgraph/domain": "workspace:*", + "@profullstack/footer": "latest", "@profullstack/x402-gateway": "^0.7.0", "next": "16.3.6", "react": "19.2.8", @@ -404,6 +405,8 @@ "@pinojs/redact": ["@pinojs/redact@0.4.0", "", {}, "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg=="], + "@profullstack/footer": ["@profullstack/footer@0.2.0", "", { "peerDependencies": { "react": ">=18" }, "optionalPeers": ["react"], "bin": { "profullstack-footer": "bin/profullstack-footer.js" } }, "sha512-0bpxw5OEsvIdiU8tV5R3zmeAZ8X1rjnZj0vl/mrto+oxN8D6tLjImr5/Ki1ynAUXVRqpz+ejbVlXhORzzLBDkQ=="], + "@profullstack/form-guard": ["@profullstack/form-guard@0.1.1", "", {}, "sha512-RGLGfQhjq40f+JqEhSmsJnS0I5sFWjYdrYx4VYtkUqz8xvioN2yyR+6uFK0mnDAStKrYytlngg3meUsrChm/OQ=="], "@profullstack/keys": ["@profullstack/keys@0.1.0", "", {}, "sha512-Vys47LvS5ivhdZu4SYOxh9Le3DEmWhjP0+CtrU45RhXAbY0ZFG/2Dk9V1bIIUGDp8UWMJqctvUD21JrNjfh04w=="],