Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
218 commits
Select commit Hold shift + click to select a range
4377206
feat: animated arch diagram, copy buttons, tab labels, deploy docs (#8)
blove Apr 4, 2026
158e80c
feat: gradient feature chips, copy icon, TOC fix (#9)
blove Apr 4, 2026
fae8af8
docs: improve all 18 docs pages to intro quality (#10)
blove Apr 4, 2026
032f99c
docs: improve all 18 docs pages to intro quality (#10)
blove Apr 4, 2026
421b5fc
docs: expand LangGraph Basics with 4 agent patterns + fix data flow (…
blove Apr 4, 2026
c9fc71c
docs: expand LangGraph Basics with 4 agent patterns + fix data flow (…
blove Apr 4, 2026
7dfc915
docs: comprehensive overhaul — 8 pages rewritten, 3300+ lines added (…
blove Apr 5, 2026
ea05e77
docs: comprehensive overhaul — 8 pages rewritten, 3300+ lines added (…
blove Apr 5, 2026
349578a
docs: Phase 2+3 — polish guides, fix quickstart/install, expand API p…
blove Apr 5, 2026
14e8c80
docs: Phase 2+3 — polish guides, fix quickstart/install, expand API p…
blove Apr 5, 2026
89c2ecf
feat(cockpit): complete cockpit application with 14 capability exampl…
blove Apr 5, 2026
e52e0f5
feat(cockpit): complete cockpit application with 14 capability exampl…
blove Apr 5, 2026
d6a9cd0
feat(cockpit): complete cockpit application with 14 capability exampl…
blove Apr 5, 2026
bf96501
feat(cockpit): complete cockpit application with 14 capability exampl…
blove Apr 5, 2026
e5c00b3
feat: add @cacheplane/render and @cacheplane/chat libraries
Apr 5, 2026
4f4d2a1
feat: add @cacheplane/render and @cacheplane/chat libraries
Apr 5, 2026
39922fe
feat(cockpit): add design tokens CSS, Tailwind v4 to Angular apps, fi…
blove Apr 5, 2026
cb752c8
feat(cockpit): add design tokens CSS, Tailwind v4 to Angular apps, fi…
blove Apr 5, 2026
2c7d42a
feat(chat): Apple-clean UI redesign + streaming example integration
Apr 5, 2026
2ff8f39
feat(chat): Apple-clean UI redesign + streaming example integration
Apr 5, 2026
33d9925
feat(cockpit): wire all 13 remaining Angular examples to @cacheplane/…
Apr 6, 2026
925620a
feat(cockpit): wire all 13 remaining Angular examples to @cacheplane/…
Apr 6, 2026
c620c91
feat(cockpit): production deployment - LangGraph Cloud, Angular hosti…
blove Apr 6, 2026
d27df7d
feat(cockpit): production deployment - LangGraph Cloud, Angular hosti…
blove Apr 6, 2026
c9c93f5
feat(cockpit): Tier 1 example customization — thread management + cap…
Apr 6, 2026
19867ec
feat(cockpit): Tier 1 example customization — thread management + cap…
Apr 6, 2026
ed65946
feat(cockpit): Tier 2 — memory sidebar, subagent tracking, interrupt …
Apr 6, 2026
c303ab9
feat(cockpit): Tier 2 — memory sidebar, subagent tracking, interrupt …
Apr 6, 2026
2179dff
feat(cockpit): Tier 3 — time-travel checkpoint nav + durable-executio…
Apr 6, 2026
918b4a3
feat(cockpit): Tier 3 — time-travel checkpoint nav + durable-executio…
Apr 6, 2026
9a4e20d
fix(cockpit): production review pass — 22 fixes across 14 examples
Apr 6, 2026
e4b3cad
fix(cockpit): production review pass — 22 fixes across 14 examples
Apr 6, 2026
c8fc73e
fix(cockpit): restore streaming and deployment-runtime to use ChatCom…
blove Apr 6, 2026
090fd3a
fix(cockpit): restore streaming and deployment-runtime to use ChatCom…
blove Apr 6, 2026
6b68e8a
fix(cockpit): update e2e tests for current UI (#24)
blove Apr 6, 2026
48e77d4
fix(cockpit): update e2e tests for current UI (#24)
blove Apr 6, 2026
cf14665
fix(cockpit): restore fileReplacements for dev environment in all 13 …
blove Apr 6, 2026
9ecb02b
fix(cockpit): restore fileReplacements for dev environment in all 13 …
blove Apr 6, 2026
2dd2c55
fix(cockpit): use full URLs in dev environments (SDK requires absolut…
blove Apr 6, 2026
5cb66ae
fix(cockpit): use full URLs in dev environments (SDK requires absolut…
blove Apr 6, 2026
50e391e
feat(website): add Examples link to header and footer (#25)
blove Apr 6, 2026
3e5b919
feat(website): add Examples link to header and footer (#25)
blove Apr 6, 2026
d021da7
fix(chat): fix broken style interpolation in ChatInput border-color
blove Apr 6, 2026
8087470
fix(chat): fix broken style interpolation in ChatInput border-color
blove Apr 6, 2026
c197f18
fix(ci): isolate examples deploy to prevent overwriting website (#26)
blove Apr 6, 2026
0a21866
fix(ci): isolate examples deploy to prevent overwriting website (#26)
blove Apr 6, 2026
41f8553
fix(chat): send simple {role, content} dict instead of HumanMessage o…
blove Apr 6, 2026
04572c4
fix(chat): send simple {role, content} dict instead of HumanMessage o…
blove Apr 6, 2026
7690d04
docs: add continuation context for chat library + cockpit integration
blove Apr 6, 2026
45fc6a3
docs: add continuation context for chat library + cockpit integration
blove Apr 6, 2026
d4dd70c
feat(chat): ship-readiness polish — Tailwind, auto-scroll, markdown, …
blove Apr 6, 2026
bdab7d3
feat(chat): ship-readiness polish — Tailwind, auto-scroll, markdown, …
blove Apr 6, 2026
682485d
feat(chat): ship-readiness polish — Tailwind, auto-scroll, markdown, …
blove Apr 6, 2026
ba89f13
feat(chat): ship-readiness polish — Tailwind, auto-scroll, markdown, …
blove Apr 6, 2026
867c23e
Rebrand to Angular Stream Resource (#28)
blove Apr 6, 2026
7a77d08
Rebrand to Angular Stream Resource (#28)
blove Apr 6, 2026
dd10288
Rebrand to Angular Stream Resource (#28)
blove Apr 6, 2026
2dccb0a
Rebrand to Angular Stream Resource (#28)
blove Apr 6, 2026
20247b3
feat(website): add narrative sections, pilot-to-prod page, and rebran…
blove Apr 6, 2026
cd689d1
feat(website): add narrative sections, pilot-to-prod page, and rebran…
blove Apr 6, 2026
510befe
feat(website): add narrative sections, pilot-to-prod page, and rebran…
blove Apr 6, 2026
65f13df
feat(website): add narrative sections, pilot-to-prod page, and rebran…
blove Apr 6, 2026
8d24542
fix(chat): fix runtime errors + ViewEncapsulation breaking theme (#30)
blove Apr 6, 2026
c85c301
fix(chat): fix runtime errors + ViewEncapsulation breaking theme (#30)
blove Apr 6, 2026
beee42a
feat(cockpit): complete sidebar implementations for all 14 capability…
blove Apr 6, 2026
2d3c46c
feat(cockpit): complete sidebar implementations for all 14 capability…
blove Apr 6, 2026
0e3fb00
fix(website): replace unsourced stats with verified Gartner and Stack…
blove Apr 6, 2026
1c9e7b6
fix(website): replace unsourced stats with verified Gartner and Stack…
blove Apr 6, 2026
8a83e34
fix(stream-resource): persist thread ID across messages + smooth scro…
blove Apr 6, 2026
cfba2d7
fix(stream-resource): persist thread ID across messages + smooth scro…
blove Apr 6, 2026
c7423cb
merge: resolve conflicts with main
blove Apr 6, 2026
16d37f7
merge: resolve conflicts with main
blove Apr 6, 2026
49d2c87
fix(website): replace unsourced stats with verified Gartner citations…
blove Apr 6, 2026
c7cd6ab
fix(website): replace unsourced stats with verified Gartner citations…
blove Apr 6, 2026
205f9db
fix(chat): refocus input after submit + force scroll on new messages …
blove Apr 6, 2026
86dbee9
fix(chat): refocus input after submit + force scroll on new messages …
blove Apr 6, 2026
88c748e
fix(cockpit): align all proxy configs to port 8123 (#35)
blove Apr 6, 2026
3e26b04
fix(cockpit): align all proxy configs to port 8123 (#35)
blove Apr 6, 2026
91db98a
docs: add website audit and lead generation specs
blove Apr 6, 2026
40a967b
docs: add website audit and lead generation specs
blove Apr 6, 2026
8e99805
docs: add implementation plans for lead gen and website audit
blove Apr 6, 2026
5e52aeb
docs: add implementation plans for lead gen and website audit
blove Apr 6, 2026
d0eee24
chore: install resend and react-email dependencies
blove Apr 6, 2026
b8e8ba2
chore: install resend and react-email dependencies
blove Apr 6, 2026
b19a131
feat: add shared resend module with audience helper
blove Apr 6, 2026
e53d86d
feat: add shared resend module with audience helper
blove Apr 6, 2026
07e19be
feat: add lead notification email template
blove Apr 6, 2026
fd13886
feat: add lead notification email template
blove Apr 6, 2026
bd3b71f
feat: add whitepaper download email template
blove Apr 6, 2026
7f16a19
feat: add whitepaper download email template
blove Apr 6, 2026
53000c3
feat: add newsletter welcome email template
blove Apr 6, 2026
e41dd9f
feat: add newsletter welcome email template
blove Apr 6, 2026
ad23adc
feat: wire /api/leads to Resend email + audience
blove Apr 6, 2026
c948d1a
feat: wire /api/leads to Resend email + audience
blove Apr 6, 2026
aee1641
feat: wire /api/whitepaper-signup to Resend email delivery
blove Apr 6, 2026
c33e2e1
feat: wire /api/whitepaper-signup to Resend email delivery
blove Apr 6, 2026
206b000
feat: add /api/newsletter route with Resend welcome email
blove Apr 6, 2026
4b5d310
feat: add /api/newsletter route with Resend welcome email
blove Apr 6, 2026
732f292
fix: convert email templates to plain HTML to avoid React dual-instan…
blove Apr 6, 2026
5c700cf
fix: convert email templates to plain HTML to avoid React dual-instan…
blove Apr 6, 2026
253d262
fix: lazy-init Resend client to gracefully handle missing API key
blove Apr 6, 2026
fba8c65
fix: lazy-init Resend client to gracefully handle missing API key
blove Apr 6, 2026
170fffe
fix: make ChatFeaturesSection responsive on mobile
blove Apr 6, 2026
3092ca4
fix: make ChatFeaturesSection responsive on mobile
blove Apr 6, 2026
4fb5580
fix: stack FairComparisonSection rows vertically on mobile
blove Apr 6, 2026
150ca98
fix: stack FairComparisonSection rows vertically on mobile
blove Apr 6, 2026
0489a6d
fix: increase touch targets to meet WCAG 44px minimum
blove Apr 6, 2026
1aaaec2
fix: increase touch targets to meet WCAG 44px minimum
blove Apr 6, 2026
ee94f62
fix: enforce 12px minimum font size on progress bar labels
blove Apr 6, 2026
5975f8f
fix: enforce 12px minimum font size on progress bar labels
blove Apr 6, 2026
13928b2
feat: add social proof badge strip below stats
blove Apr 6, 2026
b65d9e2
feat: add social proof badge strip below stats
blove Apr 6, 2026
80a2e9b
feat: add newsletter signup form to footer
blove Apr 6, 2026
fcfe07b
feat: add newsletter signup form to footer
blove Apr 6, 2026
1f788f9
feat: restructure white paper section with soft gate
blove Apr 6, 2026
5f62f73
feat: restructure white paper section with soft gate
blove Apr 6, 2026
0207286
feat: add OpenGraph and Twitter Card meta tags
blove Apr 6, 2026
32b2221
feat: add OpenGraph and Twitter Card meta tags
blove Apr 6, 2026
bc624a5
merge: resolve ProblemSection conflict with main (keep our stat + fon…
blove Apr 6, 2026
888701c
merge: resolve ProblemSection conflict with main (keep our stat + fon…
blove Apr 6, 2026
ea717e6
feat(website): lead gen with Resend + mobile fixes + design improveme…
blove Apr 6, 2026
d2d7299
feat(website): lead gen with Resend + mobile fixes + design improveme…
blove Apr 6, 2026
7f31ebb
fix(deploy): rewrite base href per example so assets resolve to corre…
blove Apr 6, 2026
686f6a0
fix(deploy): rewrite base href per example so assets resolve to corre…
blove Apr 6, 2026
d504b17
fix(website): fix flaky e2e test blocking production deploys (#38)
blove Apr 7, 2026
4d7631b
fix(website): fix flaky e2e test blocking production deploys (#38)
blove Apr 7, 2026
e880111
feat: rebrand from streamResource to agent() — @cacheplane/angular
blove Apr 7, 2026
8f6ec67
feat: rebrand from streamResource to agent() — @cacheplane/angular
blove Apr 7, 2026
352daff
merge: resolve conflicts with main (keep renamed versions)
blove Apr 7, 2026
5dbeb85
merge: resolve conflicts with main (keep renamed versions)
blove Apr 7, 2026
7af946a
feat: rebrand to Angular Agent Framework — agent() + @cacheplane/angu…
blove Apr 7, 2026
4469f4e
feat: rebrand to Angular Agent Framework — agent() + @cacheplane/angu…
blove Apr 7, 2026
3beba17
fix(website): correct api reference e2e test path after rebrand (#40)
blove Apr 7, 2026
e1037b5
fix(website): correct api reference e2e test path after rebrand (#40)
blove Apr 7, 2026
62a2478
chore: trigger examples redeploy with base-href fix (#41)
blove Apr 7, 2026
c1e50dd
chore: trigger examples redeploy with base-href fix (#41)
blove Apr 7, 2026
93b7dab
merge: pull latest main
blove Apr 7, 2026
7353ae7
merge: pull latest main
blove Apr 7, 2026
82412c4
fix: complete rebrand audit — nav bug, hero copy, templates, footer
blove Apr 7, 2026
e439b03
fix: complete rebrand audit — nav bug, hero copy, templates, footer
blove Apr 7, 2026
4e93b69
fix: complete rebrand audit — nav bug, hero copy, templates (#42)
blove Apr 7, 2026
8f848fe
fix: complete rebrand audit — nav bug, hero copy, templates (#42)
blove Apr 7, 2026
6bde751
fix: remove $20k from pilot program, include with app license, annual…
blove Apr 7, 2026
b96574c
fix: remove $20k from pilot program, include with app license, annual…
blove Apr 7, 2026
b8b1300
fix: resolve API docs slug mismatch after rename
blove Apr 7, 2026
0b4e127
fix: resolve API docs slug mismatch after rename
blove Apr 7, 2026
96c0b49
fix: API docs, pricing updates, rebrand audit fixes (#44)
blove Apr 7, 2026
a4a8dea
fix: API docs, pricing updates, rebrand audit fixes (#44)
blove Apr 7, 2026
66b6f7c
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
615898d
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
c24819a
fix(angular): normalize relative apiUrl to absolute for LangGraph SDK…
blove Apr 7, 2026
ab7611d
fix(angular): normalize relative apiUrl to absolute for LangGraph SDK…
blove Apr 7, 2026
7499df5
refactor: rename stream-resource lib to agent in Nx project structure
blove Apr 7, 2026
f7a90e3
refactor: rename stream-resource lib to agent in Nx project structure
blove Apr 7, 2026
0818eb6
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
aca9d65
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
5df4b89
refactor: rename stream-resource lib to agent in Nx project structure…
blove Apr 7, 2026
3cc1d57
refactor: rename stream-resource lib to agent in Nx project structure…
blove Apr 7, 2026
35cc8b7
fix(ci): trigger examples redeploy when libs change (#46)
blove Apr 7, 2026
cebc254
fix(ci): trigger examples redeploy when libs change (#46)
blove Apr 7, 2026
99192f2
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
8aec369
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
4d57744
feat: add airplane emoji favicon and logo to header/footer
blove Apr 7, 2026
58a0e11
feat: add airplane emoji favicon and logo to header/footer
blove Apr 7, 2026
a298356
fix: prevent FullStackSection connector animations from overlapping c…
blove Apr 7, 2026
db10a06
fix: prevent FullStackSection connector animations from overlapping c…
blove Apr 7, 2026
8d7d57f
fix: add remark-gfm to enable markdown table rendering in docs
blove Apr 7, 2026
24c4326
fix: add remark-gfm to enable markdown table rendering in docs
blove Apr 7, 2026
32393f5
fix: update developer seat feature text to "12-month license"
blove Apr 7, 2026
b0305da
fix: update developer seat feature text to "12-month license"
blove Apr 7, 2026
533dd42
feat: add dismissible whitepaper announcement toast
blove Apr 7, 2026
8ee2ec8
feat: add dismissible whitepaper announcement toast
blove Apr 7, 2026
9b6b349
fix: docs tables, pricing, favicon, animation, announcement toast (#47)
blove Apr 7, 2026
8ee81df
fix: docs tables, pricing, favicon, animation, announcement toast (#47)
blove Apr 7, 2026
24cc135
feat: add lead capture form to announcement toast
blove Apr 7, 2026
f3923da
feat: add lead capture form to announcement toast
blove Apr 7, 2026
1dd71db
merge: resolve AnnouncementToast conflict (keep form version)
blove Apr 7, 2026
b225874
merge: resolve AnnouncementToast conflict (keep form version)
blove Apr 7, 2026
b253a27
feat: add lead capture form to whitepaper announcement toast (#49)
blove Apr 7, 2026
5eaf9f1
feat: add lead capture form to whitepaper announcement toast (#49)
blove Apr 7, 2026
5f08b93
feat: replace social proof badges with animated logo scroll strip
blove Apr 7, 2026
7e8ded9
feat: replace social proof badges with animated logo scroll strip
blove Apr 7, 2026
c671226
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
aa1697a
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
99d6a8b
feat: animated company logo scroll strip for social proof (#50)
blove Apr 7, 2026
7af7ba8
feat: animated company logo scroll strip for social proof (#50)
blove Apr 7, 2026
a3e8c9f
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
fce1b7b
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
09a773c
feat: add Loops.so integration for drip email campaigns
blove Apr 7, 2026
d94f93f
feat: add Loops.so integration for drip email campaigns
blove Apr 7, 2026
a791806
feat: add Loops.so integration for drip email campaigns (#51)
blove Apr 7, 2026
a321a76
feat: add Loops.so integration for drip email campaigns (#51)
blove Apr 7, 2026
2f40696
feat(website): multi-library docs for agent, render, and chat (#48)
blove Apr 7, 2026
f7b15b6
feat(website): multi-library docs for agent, render, and chat (#48)
blove Apr 7, 2026
77fa37a
feat: replace Loops with self-hosted drip via Resend scheduled_at
blove Apr 7, 2026
4ba5f38
feat: replace Loops with self-hosted drip via Resend scheduled_at
blove Apr 7, 2026
ca2856c
merge: resolve whitepaper-signup conflict (keep drip version)
blove Apr 7, 2026
7bd0a37
merge: resolve whitepaper-signup conflict (keep drip version)
blove Apr 7, 2026
2496029
feat: replace Loops with self-hosted drip via Resend scheduled_at (#52)
blove Apr 7, 2026
1f11c01
feat: replace Loops with self-hosted drip via Resend scheduled_at (#52)
blove Apr 7, 2026
67836c0
feat: unified gradient-header email template design
blove Apr 7, 2026
558676f
feat: unified gradient-header email template design
blove Apr 7, 2026
413d3fa
merge: resolve drip template conflict (keep gradient-header version)
blove Apr 7, 2026
7064f3f
merge: resolve drip template conflict (keep gradient-header version)
blove Apr 7, 2026
f12db19
feat: unified gradient-header email template design (#53)
blove Apr 7, 2026
84d608d
fix(website): add remark-gfm dependency for markdown table rendering …
blove Apr 7, 2026
69c9859
Merge remote-tracking branch 'origin/main' into claude/zealous-jones
blove Apr 7, 2026
3bf6c08
Merge remote-tracking branch 'origin/claude/zealous-jones' into claud…
blove Apr 7, 2026
448f622
feat: migrate all domains from stream-resource.dev to cacheplane.ai
blove Apr 7, 2026
01a3512
feat(cockpit): complete cockpit application with 14 capability exampl…
blove Apr 5, 2026
36b1979
feat(cockpit): complete cockpit application with 14 capability exampl…
blove Apr 5, 2026
3d6b1b0
fix: redesign logo strip with larger ghost-style logos and proper spa…
blove Apr 7, 2026
ee17124
fix: redesign logo strip — larger ghost-style text logos, proper spacing
blove Apr 7, 2026
075ac82
merge: resolve lib conflicts with main
blove Apr 7, 2026
a331028
fix: resolve merge conflicts in SocialProof, increase logo visibility
blove Apr 7, 2026
c4621d4
merge: resolve SocialProof conflict (keep clean version)
blove Apr 7, 2026
f044f2f
feat: replace text logos with real SVG brand logos in scroll strip
blove Apr 8, 2026
863a155
merge: resolve SocialProof conflict (keep SVG logos version)
blove Apr 8, 2026
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
1 change: 1 addition & 0 deletions apps/website/public/logos/cisco.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/cloudflare.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/coinbase.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/databricks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/elastic.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/gitlab.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/klarna.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/lyft.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/rakuten.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/shopify.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/snowflake.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/public/logos/stripe.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 44 additions & 33 deletions apps/website/src/components/landing/SocialProof.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
import { motion } from 'framer-motion';
import { tokens } from '../../../lib/design-tokens';

const COMPANIES = [
'Klarna',
'Elastic',
'Rakuten',
'GitLab',
'Cloudflare',
'Coinbase',
'LinkedIn',
'Lyft',
'Cisco',
'Workday',
'ServiceNow',
'Monday',
const LOGOS = [
{ name: 'Klarna', src: '/logos/klarna.svg', width: 80 },
{ name: 'Elastic', src: '/logos/elastic.svg', width: 90 },
{ name: 'Rakuten', src: '/logos/rakuten.svg', width: 85 },
{ name: 'GitLab', src: '/logos/gitlab.svg', width: 32 },
{ name: 'Cloudflare', src: '/logos/cloudflare.svg', width: 34 },
{ name: 'Coinbase', src: '/logos/coinbase.svg', width: 32 },
{ name: 'Stripe', src: '/logos/stripe.svg', width: 70 },
{ name: 'Lyft', src: '/logos/lyft.svg', width: 50 },
{ name: 'Cisco', src: '/logos/cisco.svg', width: 70 },
{ name: 'Shopify', src: '/logos/shopify.svg', width: 32 },
{ name: 'Databricks', src: '/logos/databricks.svg', width: 32 },
{ name: 'Snowflake', src: '/logos/snowflake.svg', width: 32 },
];

/** Duplicate for seamless infinite scroll */
const SCROLL_ITEMS = [...COMPANIES, ...COMPANIES];
const SCROLL_ITEMS = [...LOGOS, ...LOGOS];

export function SocialProof() {
return (
Expand Down Expand Up @@ -54,17 +54,17 @@ export function SocialProof() {
WebkitBackdropFilter: `blur(${tokens.glass.blur})`,
border: `1px solid ${tokens.glass.border}`,
overflow: 'hidden',
padding: '32px 0',
padding: '28px 0',
}}>
{/* Fade edges */}
<div style={{
position: 'absolute', left: 0, top: 0, bottom: 0, width: 100, zIndex: 1,
background: 'linear-gradient(to right, rgba(248,249,252,0.9), transparent)',
background: 'linear-gradient(to right, rgba(248,249,252,0.95), transparent)',
pointerEvents: 'none',
}} />
<div style={{
position: 'absolute', right: 0, top: 0, bottom: 0, width: 100, zIndex: 1,
background: 'linear-gradient(to left, rgba(248,249,252,0.9), transparent)',
background: 'linear-gradient(to left, rgba(248,249,252,0.95), transparent)',
pointerEvents: 'none',
}} />

Expand All @@ -74,30 +74,41 @@ export function SocialProof() {
style={{
display: 'flex',
alignItems: 'center',
gap: 72,
gap: 56,
width: 'max-content',
paddingLeft: 48,
paddingRight: 48,
}}
>
{SCROLL_ITEMS.map((company, i) => (
<span
key={`${company}-${i}`}
{SCROLL_ITEMS.map((logo, i) => (
<div
key={`${logo.name}-${i}`}
style={{
fontFamily: 'var(--font-inter, Inter, system-ui, sans-serif)',
fontSize: 22,
fontWeight: 800,
color: tokens.colors.textPrimary,
opacity: 0.35,
whiteSpace: 'nowrap',
letterSpacing: '-0.02em',
userSelect: 'none',
lineHeight: 1,
padding: '4px 0',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
height: 36,
flexShrink: 0,
opacity: 0.4,
padding: '0 8px',
}}
>
{company}
</span>
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
src={logo.src}
alt={logo.name}
width={logo.width}
height={36}
style={{
objectFit: 'contain',
filter: 'grayscale(100%) brightness(0.2)',
userSelect: 'none',
pointerEvents: 'none',
}}
loading="lazy"
draggable={false}
/>
</div>
))}
</div>
</div>
Expand Down
Loading