Skip to content

Commit fd4794e

Browse files
authored
finish up tanstack start rc upgrade (#508)
1 parent 85631b1 commit fd4794e

16 files changed

Lines changed: 3347 additions & 427 deletions

agents/tasks/tanstack-com-task-list.md

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,27 @@
88
- Links: PRs, issues, routes, components
99

1010
### How to use this file
11+
1112
- Update status/notes as tasks progress. Keep routes/components and data sources referenced so any agent can continue seamlessly.
1213
- Prefer reusing existing components and content models referenced below.
1314

1415
---
1516

1617
## 1. Metrics & Market Leadership Signals
18+
1719
**Goal:** Visible proof of dominance and growth.
1820

1921
### Audit snapshot
22+
2023
- Homepage metrics: `OpenSourceStats` counters present on homepage (`src/routes/_libraries/index.tsx` uses `OpenSourceStats`). Partial.
2124
- "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.
2225
- NPM stats: Extensive interactive page exists at `src/routes/stats/npm/index.tsx` with charts and comparisons. Done (separate page).
2326
- 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.
2427

2528
### Tasks
29+
2630
- [ ] Implement “Trusted By” on homepage
31+
2732
- Status: Backlog
2833
- Notes:
2934
- Reuse `TrustedByMarquee` but upgrade to support logos + links + tooltip proof.
@@ -35,9 +40,10 @@
3540
- Renders without CLS, loops smoothly, accessible (ARIA, alt text). Logos swap dark/light.
3641
- All entries have a proof link; no unverified brands.
3742
- Links: `src/components/TrustedByMarquee.tsx`, `src/routes/_libraries/index.tsx`.
38-
- Owner:
43+
- Owner:
3944

4045
- [ ] Add Real-Time Metrics Counters (per-library + org rollup)
46+
4147
- Status: Partial (org rollup live via `OpenSourceStats`)
4248
- Notes:
4349
- Extend counters to per-library pages using existing Convex endpoints or add repo-level endpoints via `convex-oss-stats` if needed.
@@ -55,32 +61,37 @@
5561
- Notes:
5662
- Route: `src/routes/state-of-tanstack.tsx`.
5763
- 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.
64+
- 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).
65+
- Ecosystem counts: partners (derive from `src/utils/partners.tsx`), plugins/tools (manual list or content collection).
66+
- CTA to GitHub org.
6167
- Acceptance:
6268
- Page loads instantly with cached metrics; charts are responsive and accessible.
6369
- Sources and last-updated timestamps shown.
6470
- Links: `src/components/NpmStatsChart.tsx`, `src/components/OpenSourceStats.tsx`, `src/routes/stats/npm/index.tsx`, `src/utils/partners.tsx`.
6571
- Owner:
6672

6773
### Tech/context
74+
6875
- 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.
6976
- Secrets: Configure any tokens via Netlify/Convex env; never expose client-side.
7077
- Accessibility: Ensure counters/animations are readable and respect `prefers-reduced-motion`.
7178

7279
---
7380

7481
## 2. Founder & Team Story
82+
7583
**Goal:** Frame the team as visionary and credible.
7684

7785
### Audit snapshot
86+
7887
- Ethos page exists: `src/routes/_libraries/ethos.tsx` (narrative and positioning).
7988
- Maintainers directory page exists: `src/routes/_libraries/maintainers.tsx` with `MaintainerCard` variants and filters; bios sourced from `src/libraries/maintainers`.
8089
- No dedicated "About" route; no speaking engagements index; no curated endorsements/tweets.
8190

8291
### Tasks
92+
8393
- [ ] Redesign/Create “About” page
94+
8495
- Status: Backlog
8596
- Notes:
8697
- Route: `src/routes/about.tsx`.
@@ -90,6 +101,7 @@
90101
- Links: `src/components/MaintainerCard.tsx`, `src/routes/_libraries/maintainers.tsx`.
91102

92103
- [ ] Speaking Engagements section
104+
93105
- Status: Backlog
94106
- Notes:
95107
- Add to About or standalone `src/routes/speaking.tsx`.
@@ -106,22 +118,25 @@
106118
- Acceptance: Renders endorsements with attribution and embedded tweets with proper theming.
107119

108120
### Tech/context
121+
109122
- Reuse `MaintainerCard` and existing images in `src/images/`.
110123
- Avoid fetching social embeds at build if rate-limited; hydrate on client or cache server-side.
111124

112125
---
113126

114-
115-
116127
## 4. Commercial Hooks
128+
117129
**Goal:** Show monetizable pathways.
118130

119131
### Audit snapshot
132+
120133
- Enterprise/Support: `src/routes/_libraries/paid-support.tsx` exists with HubSpot script and CTAs. Partial substitute for "Enterprise" page.
121134
- No dedicated Partner Program page.
122135

123136
### Tasks
137+
124138
- [ ] “Enterprise” page
139+
125140
- Status: Partial
126141
- Notes:
127142
- Option 1: Rename and expand `paid-support` into `enterprise` (route alias + updated copy) while keeping legacy route.
@@ -137,18 +152,20 @@
137152
- Link to Partners page.
138153
- Acceptance: Published page with clear application CTA.
139154

140-
141-
142155
---
143156

144157
## 5. Future Vision Page
158+
145159
**Goal:** Show long-term upside.
146160

147161
### Audit snapshot
162+
148163
- No public roadmap found; ethos narrative exists but not a vision statement page.
149164

150165
### Tasks
166+
151167
- [ ] Public Roadmap page
168+
152169
- Status: Backlog
153170
- Notes:
154171
- Route: `src/routes/roadmap.tsx`.
@@ -167,13 +184,17 @@
167184
---
168185

169186
## 6. Media & Momentum
187+
170188
**Goal:** Make hype and credibility easy to digest.
171189

172190
### Audit snapshot
191+
173192
- No dedicated media kit, in-the-news, or social proof feeds found.
174193

175194
### Tasks
195+
176196
- [ ] Press/Media Kit page
197+
177198
- Status: Backlog
178199
- Notes:
179200
- Route: `src/routes/media-kit.tsx`.
@@ -182,6 +203,7 @@
182203
- Acceptance: Page provides direct downloads and usage rules.
183204

184205
- [ ] In the News page
206+
185207
- Status: Backlog
186208
- Notes:
187209
- Route: `src/routes/news.tsx`.
@@ -199,6 +221,7 @@
199221
---
200222

201223
### Shared implementation notes
224+
202225
- Routing: New pages should be added under `src/routes/*` using TanStack Start conventions; update nav/footers as needed.
203226
- Data placement: Prefer `src/data/*.ts` (typed) or `content/*.(json|yaml)` for editorial lists. Avoid hardcoding in components unless small.
204227
- Theming: Provide dark/light logo variants; `public/` is ideal for static assets.
@@ -208,19 +231,22 @@
208231
- Analytics: Add outbound link tracking if available (future).
209232

210233
### Potential blockers
234+
211235
- External API limits (GitHub GraphQL, Discord member count, X/Twitter API). Prefer server-side fetch with caching or public embed widgets.
212236
- Legal/branding approvals for “Trusted By” logos—require proof links.
213237

214238
### Quick links to relevant code
239+
215240
- Homepage: `src/routes/_libraries/index.tsx`
216241
- Metrics: `src/components/OpenSourceStats.tsx`, `convex/stats.ts`, `src/components/NpmStatsChart.tsx`, `src/routes/stats/npm/index.tsx`
217242
- Trusted By: `src/components/TrustedByMarquee.tsx`
218243
- Team/Ethos: `src/routes/_libraries/ethos.tsx`, `src/routes/_libraries/maintainers.tsx`, `src/components/MaintainerCard.tsx`
219244
- SEO helper: `src/utils/seo`
220245

221246
### Ownership & tracking
247+
222248
- For each task above, fill in:
223249
- Owner:
224250
- Issue/PR links:
225251
- Status:
226-
- Next step:
252+
- Next step:

convex/auth.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ export default {
22
providers: [
33
{
44
domain: process.env.CONVEX_SITE_URL,
5-
applicationID: "convex",
5+
applicationID: 'convex',
66
},
77
],
8-
};
8+
}

netlify.toml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
[context.production]
2-
command = "npx convex deploy --cmd 'pnpm run build'"
2+
command = "npx convex deploy --cmd 'pnpm run build'"
33
[context.deploy-preview]
4-
command = "npx convex deploy --cmd 'pnpm run build' --preview-run 'stats:sync'"
4+
command = "npx convex deploy --cmd 'pnpm run build'"
5+
[build]
6+
command = "vite build"
7+
publish = "dist/client"

package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"@erquhart/convex-oss-stats": "^0.8.1",
2626
"@floating-ui/react": "^0.27.8",
2727
"@headlessui/react": "1.7.18",
28+
"@netlify/vite-plugin-tanstack-start": "^1.0.2",
2829
"@number-flow/react": "^0.4.1",
2930
"@observablehq/plot": "^0.6.17",
3031
"@octokit/graphql": "^7.0.2",
@@ -40,10 +41,10 @@
4041
"@tailwindcss/vite": "^4.1.11",
4142
"@tanstack/react-pacer": "^0.16.3",
4243
"@tanstack/react-query": "^5.90.2",
43-
"@tanstack/react-router": "1.132.0",
44-
"@tanstack/react-router-devtools": "1.132.0",
44+
"@tanstack/react-router": "1.132.47",
45+
"@tanstack/react-router-devtools": "1.132.51",
4546
"@tanstack/react-router-with-query": "1.130.17",
46-
"@tanstack/react-start": "1.132.0",
47+
"@tanstack/react-start": "1.132.51",
4748
"@tanstack/react-table": "^8.21.3",
4849
"@types/d3": "^7.4.3",
4950
"@typescript-eslint/parser": "^7.2.0",
@@ -102,7 +103,7 @@
102103
"prettier": "^2.8.8",
103104
"tailwindcss": "^4.1.11",
104105
"typescript": "^5.6.3",
105-
"vite": "^6.3.5"
106+
"vite": "^7.0.0"
106107
},
107108
"engines": {
108109
"node": ">=18.0.0"

0 commit comments

Comments
 (0)