Research Data API code review — Deduplicated CSV serializer and 5 shared flattener functions, fixed cursor pagination bug on 3 endpoints (compounds, topics, journals), parallelized all Vercel Blob uploads via Promise.all, added rate limiter memory cleanup, fixed toJsonExport non-array handling, replaced new Blob().size with Buffer.byteLength. (12 files, net −35 lines)
Research Data API — REST API at /api/v1/ with 11 endpoints: papers, trials, compounds, topics, persons, journals, network, evidence-matrix, and downloads. Clerk JWT auth, per-user rate limiting (100 req/min free / 500 Pro), CORS, cursor-based pagination with compound/topic/date filters. Free/Pro data split. CSV format on all endpoints with R/SPSS conventions. Daily cron exports CSV + JSON + Parquet to Vercel Blob. Developer docs at /developers with code examples for curl, Python, and R. (26 new files)
Research Network — Interactive co-authorship graph at /network powered by Sigma.js + ForceAtlas2 layout. Hover highlighting, click-to-detail side panel, search-to-zoom, compound/topic filter pills, cluster-by coloring. Paywall gated: free users see top 50 nodes, Pro gets full graph and advanced filters. Ego network graphs on researcher profiles with Top Collaborators sidebar. PostHog tracking, ARIA labels, mobile-responsive. (10 new files)
Research Collections — Compound x Topic pages at /research/[compound]/[topic] with paginated paper and trial lists, empty-state fallback, and Explore further links. Index at /research lists all combinations grouped by compound. Pro curated combos in account dashboard. Sitemap entries for all compound x topic pairs. OG images per combo. (4 new files)
Person page enhancements & OG images — Removed avatar images from researcher profiles; added Compounds and Topics pill sections in sidebar (auto-derived via GROQ inverse lookups). Added dynamic OG images across 18 route segments: persons, compounds, topics, events, stakeholders, countries, blog, books, courses, courses/category, implementation, journals, measures, news, posts, recap, top-10, and videos.