Skip to content

Commit 21348e1

Browse files
KyleAMathewsclaude
andcommitted
fix: merge upstream changes and resolve conflicts
- Resolved merge conflict in db.$version.index.tsx by keeping upstream LibraryHero component - Removed accidentally committed .claude folder 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
2 parents 77fb093 + eecb250 commit 21348e1

File tree

109 files changed

+9041
-8873
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+9041
-8873
lines changed

.claude/settings.local.json

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Update TanStack Dependencies
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
# Run weekly on Sundays at 10:00 AM UTC
7+
- cron: '0 10 * * 0'
8+
9+
jobs:
10+
update-deps:
11+
name: Update TanStack Dependencies
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Git Checkout
15+
uses: actions/checkout@v4
16+
with:
17+
token: ${{ secrets.GITHUB_TOKEN }}
18+
19+
- name: Setup pnpm
20+
uses: pnpm/action-setup@v4
21+
22+
- name: Setup Node
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version-file: .nvmrc
26+
cache: pnpm
27+
28+
- name: Install Packages
29+
run: pnpm install --frozen-lockfile
30+
31+
- name: Update TanStack Dependencies
32+
run: pnpm up "@tanstack/*" --latest
33+
34+
- name: Check for Changes
35+
id: git-check
36+
run: |
37+
git status --porcelain .
38+
if [[ -z $(git status --porcelain .) ]]; then
39+
echo "No changes detected"
40+
echo "changes=false" >> $GITHUB_OUTPUT
41+
else
42+
echo "Changes detected"
43+
echo "changes=true" >> $GITHUB_OUTPUT
44+
fi
45+
46+
- name: Run Lint
47+
if: steps.git-check.outputs.changes == 'true'
48+
run: pnpm lint
49+
50+
- name: Run Build
51+
if: steps.git-check.outputs.changes == 'true'
52+
run: pnpm build
53+
54+
- name: Commit and Push Changes
55+
if: steps.git-check.outputs.changes == 'true'
56+
run: |
57+
git config --local user.email "[email protected]"
58+
git config --local user.name "GitHub Action"
59+
git add .
60+
git commit -m "chore: update @tanstack/* dependencies"
61+
git push

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ node_modules
22
package-lock.json
33
yarn.lock
44

5+
.tanstack
56
.DS_Store
67
.cache
78
.env
Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
## TanStack.com Task Tracker
2+
3+
- Updated: 2025-08-14
4+
- Scope: Marketing/brand site tasks that signal growth, leadership, and commercial readiness without deep implementation in this file.
5+
- Convention:
6+
- Status: Backlog | In Progress | Blocked | Done | Partial
7+
- Owners: GitHub handles or team names
8+
- Links: PRs, issues, routes, components
9+
10+
### How to use this file
11+
- Update status/notes as tasks progress. Keep routes/components and data sources referenced so any agent can continue seamlessly.
12+
- Prefer reusing existing components and content models referenced below.
13+
14+
---
15+
16+
## 1. Metrics & Market Leadership Signals
17+
**Goal:** Visible proof of dominance and growth.
18+
19+
### Audit snapshot
20+
- Homepage metrics: `OpenSourceStats` counters present on homepage (`src/routes/_libraries/index.tsx` uses `OpenSourceStats`). Partial.
21+
- "Trusted By": Component exists as text marquee (`src/components/TrustedByMarquee.tsx`). Not on homepage yet; currently used on some library pages (e.g. `src/routes/_libraries/table.$version.index.tsx`). Partial.
22+
- NPM stats: Extensive interactive page exists at `src/routes/stats/npm/index.tsx` with charts and comparisons. Done (separate page).
23+
- Backend metrics: `convex/stats.ts` + `@erquhart/convex-oss-stats` provides GitHub/NPM org metrics; `OpenSourceStats.tsx` consumes `api.stats.getGithubOwner`, `api.stats.getNpmOrg`. Done for aggregate; per-library not yet surfaced.
24+
25+
### Tasks
26+
- [ ] Implement “Trusted By” on homepage
27+
- Status: Backlog
28+
- Notes:
29+
- Reuse `TrustedByMarquee` but upgrade to support logos + links + tooltip proof.
30+
- Create a central data source `src/data/trustedBy.ts` (or `content/trusted-by.json`) with: `{ id, name, logoLight, logoDark, link, proofUrl, proofType }`.
31+
- Only include publicly confirmed adopters; store proof URLs (tweets, case studies, repos).
32+
- Add hover tooltips with proof text and click-through to proof.
33+
- Placement: in `src/routes/_libraries/index.tsx`, below the hero and above library grid.
34+
- Acceptance:
35+
- Renders without CLS, loops smoothly, accessible (ARIA, alt text). Logos swap dark/light.
36+
- All entries have a proof link; no unverified brands.
37+
- Links: `src/components/TrustedByMarquee.tsx`, `src/routes/_libraries/index.tsx`.
38+
- Owner:
39+
40+
- [ ] Add Real-Time Metrics Counters (per-library + org rollup)
41+
- Status: Partial (org rollup live via `OpenSourceStats`)
42+
- Notes:
43+
- Extend counters to per-library pages using existing Convex endpoints or add repo-level endpoints via `convex-oss-stats` if needed.
44+
- Display: npm weekly/monthly downloads and GitHub stars per library.
45+
- Consider compact display component `components/MetricsBadge.tsx` (new) for reuse.
46+
- Performance: hydrate safely (avoid locale formatting mismatch noted in `OpenSourceStats.tsx`).
47+
- Acceptance:
48+
- Per-library counters render on each library landing page (e.g., `query.$version.index.tsx`, etc.).
49+
- Numbers update without layout shift; links to npm and GitHub.
50+
- Links: `src/components/OpenSourceStats.tsx`, `convex/stats.ts`, library routes under `src/routes/_libraries/*.$version.index.tsx`.
51+
- Owner:
52+
53+
- [ ] Create “State of TanStack” page
54+
- Status: Backlog
55+
- Notes:
56+
- Route: `src/routes/state-of-tanstack.tsx`.
57+
- Include growth charts (npm downloads: reuse `NpmStatsChart.tsx` or embed portions of `stats/npm`), GitHub stars, contributors, dependents (available via Convex aggregation already powering `OpenSourceStats`).
58+
- Community stats: Discord members (needs server function), newsletter subscribers (manual or vendor API), X/Twitter followers (manual or API), repository contributors (Convex or GitHub GraphQL on server).
59+
- Ecosystem counts: partners (derive from `src/utils/partners.tsx`), plugins/tools (manual list or content collection).
60+
- CTA to GitHub org.
61+
- Acceptance:
62+
- Page loads instantly with cached metrics; charts are responsive and accessible.
63+
- Sources and last-updated timestamps shown.
64+
- Links: `src/components/NpmStatsChart.tsx`, `src/components/OpenSourceStats.tsx`, `src/routes/stats/npm/index.tsx`, `src/utils/partners.tsx`.
65+
- Owner:
66+
67+
### Tech/context
68+
- Data: `@erquhart/convex-oss-stats` via `convex/stats.ts` (org-level GitHub star/contributor/dependent counts, npm downloads). Consider adding per-repo endpoints if needed.
69+
- Secrets: Configure any tokens via Netlify/Convex env; never expose client-side.
70+
- Accessibility: Ensure counters/animations are readable and respect `prefers-reduced-motion`.
71+
72+
---
73+
74+
## 2. Founder & Team Story
75+
**Goal:** Frame the team as visionary and credible.
76+
77+
### Audit snapshot
78+
- Ethos page exists: `src/routes/_libraries/ethos.tsx` (narrative and positioning).
79+
- Maintainers directory page exists: `src/routes/_libraries/maintainers.tsx` with `MaintainerCard` variants and filters; bios sourced from `src/libraries/maintainers`.
80+
- No dedicated "About" route; no speaking engagements index; no curated endorsements/tweets.
81+
82+
### Tasks
83+
- [ ] Redesign/Create “About” page
84+
- Status: Backlog
85+
- Notes:
86+
- Route: `src/routes/about.tsx`.
87+
- Include founder bio (photo, key achievements, notable talks), milestones timeline, and key contributor mini-bios (reuse `MaintainerCard` in compact mode).
88+
- Timeline: create `src/data/milestones.ts` (date, title, link, type: release/adoption/partnership).
89+
- Acceptance: Page showcases founder, timeline, top contributors; links to `maintainers` page.
90+
- Links: `src/components/MaintainerCard.tsx`, `src/routes/_libraries/maintainers.tsx`.
91+
92+
- [ ] Speaking Engagements section
93+
- Status: Backlog
94+
- Notes:
95+
- Add to About or standalone `src/routes/speaking.tsx`.
96+
- Data: `src/data/talks.ts` with title, event, date, videoUrl, slidesUrl, tags.
97+
- Embed YouTube/Vimeo or slides (oEmbed).
98+
- Acceptance: Grid/list of talks with playable embeds and links.
99+
100+
- [ ] Highlight Industry Influence (quotes + tweets)
101+
- Status: Backlog
102+
- Notes:
103+
- Quotes: `src/data/endorsements.ts` with person, title, quote, avatar, link.
104+
- Tweets: a curated list using embed script by URL to avoid API complexity; if API required, add server function with token.
105+
- Component: `components/Endorsements.tsx` and `components/TweetsWall.tsx` (new).
106+
- Acceptance: Renders endorsements with attribution and embedded tweets with proper theming.
107+
108+
### Tech/context
109+
- Reuse `MaintainerCard` and existing images in `src/images/`.
110+
- Avoid fetching social embeds at build if rate-limited; hydrate on client or cache server-side.
111+
112+
---
113+
114+
115+
116+
## 4. Commercial Hooks
117+
**Goal:** Show monetizable pathways.
118+
119+
### Audit snapshot
120+
- Enterprise/Support: `src/routes/_libraries/paid-support.tsx` exists with HubSpot script and CTAs. Partial substitute for "Enterprise" page.
121+
- No dedicated Partner Program page.
122+
123+
### Tasks
124+
- [ ] “Enterprise” page
125+
- Status: Partial
126+
- Notes:
127+
- Option 1: Rename and expand `paid-support` into `enterprise` (route alias + updated copy) while keeping legacy route.
128+
- Content: packages, priority support, consulting, integration assistance; lead capture form (HubSpot already wired via `useScript`).
129+
- Acceptance: Clear tiers/benefits, contact CTA, form submission tracked.
130+
- Links: `src/routes/_libraries/paid-support.tsx`.
131+
132+
- [ ] Partner Program page
133+
- Status: Backlog
134+
- Notes:
135+
- Route: `src/routes/partners-program.tsx`.
136+
- Tiers: Integration Partner, Strategic Partner; benefits: co-marketing, spotlight, early access.
137+
- Link to Partners page.
138+
- Acceptance: Published page with clear application CTA.
139+
140+
141+
142+
---
143+
144+
## 5. Future Vision Page
145+
**Goal:** Show long-term upside.
146+
147+
### Audit snapshot
148+
- No public roadmap found; ethos narrative exists but not a vision statement page.
149+
150+
### Tasks
151+
- [ ] Public Roadmap page
152+
- Status: Backlog
153+
- Notes:
154+
- Route: `src/routes/roadmap.tsx`.
155+
- Source: GitHub Projects (read-only) or Notion API (curated). Avoid sensitive IP; create server fetch with caching.
156+
- Columns: Now, Next, Future.
157+
- Acceptance: Roadmap renders from source with manual override fallback.
158+
159+
- [ ] Vision Statement page
160+
- Status: Backlog
161+
- Notes:
162+
- Route: `src/routes/vision.tsx`.
163+
- Narrative: “The Future of Web Tooling”; diagrams showing TanStack as connective tissue.
164+
- Assets: add diagrams to `public/vision/*` or `media/`.
165+
- Acceptance: Page published with visuals and links to roadmap.
166+
167+
---
168+
169+
## 6. Media & Momentum
170+
**Goal:** Make hype and credibility easy to digest.
171+
172+
### Audit snapshot
173+
- No dedicated media kit, in-the-news, or social proof feeds found.
174+
175+
### Tasks
176+
- [ ] Press/Media Kit page
177+
- Status: Backlog
178+
- Notes:
179+
- Route: `src/routes/media-kit.tsx`.
180+
- Include logo assets (light/dark SVG/PNG), founder bio, product screenshots, downloadable one-pager PDF/zip.
181+
- Store assets under `public/brand/*` or `media/` and provide usage guidelines.
182+
- Acceptance: Page provides direct downloads and usage rules.
183+
184+
- [ ] In the News page
185+
- Status: Backlog
186+
- Notes:
187+
- Route: `src/routes/news.tsx`.
188+
- Data: `src/data/news.ts` with `{ year, outlet, title, url, logo }`.
189+
- Group by year with outlet logos.
190+
- Acceptance: List renders with working links; new items easy to add.
191+
192+
- [ ] Social Proof section
193+
- Status: Backlog
194+
- Notes:
195+
- Component: `components/SocialProof.tsx` (new) consuming curated data `src/data/social-proof.ts` (tweets, GH discussions, testimonials).
196+
- Tweets: prefer embed by URL; if API needed, add server function and cache.
197+
- Acceptance: Mixed feed renders, accessible, themable.
198+
199+
---
200+
201+
### Shared implementation notes
202+
- Routing: New pages should be added under `src/routes/*` using TanStack Start conventions; update nav/footers as needed.
203+
- Data placement: Prefer `src/data/*.ts` (typed) or `content/*.(json|yaml)` for editorial lists. Avoid hardcoding in components unless small.
204+
- Theming: Provide dark/light logo variants; `public/` is ideal for static assets.
205+
- Performance: Use suspense-friendly server fetches and cache. Respect `prefers-reduced-motion` for marquees/counters.
206+
- Accessibility: Alt text for logos, focus states for carousels, keyboard operability.
207+
- SEO: Use `utils/seo` to set titles/descriptions on new routes.
208+
- Analytics: Add outbound link tracking if available (future).
209+
210+
### Potential blockers
211+
- External API limits (GitHub GraphQL, Discord member count, X/Twitter API). Prefer server-side fetch with caching or public embed widgets.
212+
- Legal/branding approvals for “Trusted By” logos—require proof links.
213+
214+
### Quick links to relevant code
215+
- Homepage: `src/routes/_libraries/index.tsx`
216+
- Metrics: `src/components/OpenSourceStats.tsx`, `convex/stats.ts`, `src/components/NpmStatsChart.tsx`, `src/routes/stats/npm/index.tsx`
217+
- Trusted By: `src/components/TrustedByMarquee.tsx`
218+
- Team/Ethos: `src/routes/_libraries/ethos.tsx`, `src/routes/_libraries/maintainers.tsx`, `src/components/MaintainerCard.tsx`
219+
- SEO helper: `src/utils/seo`
220+
221+
### Ownership & tracking
222+
- For each task above, fill in:
223+
- Owner:
224+
- Issue/PR links:
225+
- Status:
226+
- Next step:

0 commit comments

Comments
 (0)