Add PostHog Research page at /research - #18228
Conversation
- New /research page (Editor app) spotlighting AI Research team work: research roadmap, posts tagged "Research", upcoming speaker events with empty state, and a CTA to /wip and feature previews - Add PostHog Research to the Products menu (between dividers, after Context Warehouse) and reorder PostHog Code to the top per spec - Export useEvents hook from events page for reuse - Add /research window sizing to appSettings (copies /code) - Tag five research blog posts with "Research" so /blog/tags/research generates and future tagged posts appear on the page automatically Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- Bolder, more playful copy throughout (new H1: "If we knew what we were doing, it wouldn't be called research.") - Roadmap cards lift, glow purple, and highlight on hover - Blog post cards now uniform size: fixed 16:9 image ratio with object-cover and line-clamped titles - AI Research team crest in the hero top right, linking to /teams/ai-research (queried from squeakTeam) Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- H1 is now a live PostHog experiment (research-page-h1, 50/50) with a self-aware callout showing which variant you got - RoughAnnotation highlights on hero key phrases - Roadmap cards get status stamps (in progress / up next / help wanted); the help wanted stamp links to the AI research engineer role - "Fresh from the lab": merged PRs by the research team fetched live from GitHub across public posthog org repos (excluding posthog.com), with loading and rate-limit fallback states - "Who's doing research at PostHog?": AI Research team members (from squeakTeam profiles) plus featured post authors, deduped - FAQ accordion covering training opt-outs, data selling, and hiring Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
Every card is now identical: equal grid rows via auto-rows-fr, cards fill their cell (h-full), fixed 16:9 image area (aspect-video with shrink-0), and a fixed-height three-line title block so varying title lengths no longer change card height across rows. Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
…ture - SectionHeader component: sticker + uppercase kicker above every h2 (microscope/terminal/bulb/users/run stickers) for consistent rhythm - H1 animates in word-by-word with ChoppyReveal, matching /code - "Fresh from the lab" restyled as a terminal window: traffic-light title bar, git log caption, monospace rows, blinking-cursor footer - CTA card gets the same tan texture as the hero, bookending the page - Events empty state gets the ZZZ sticker - Fix typo (disastrous); preserve all hand-edited copy Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- Rubber-stamp "PREPRINT · not peer reviewed · results may vary" in faint red, rotated, bottom-right of the hero (hidden on narrow containers, decorative only) - Master plan link restyled as an academic footnote: a superscript [1] on the hare-brained schemes claim, resolved by a monospace citation line crediting Hawkins, J. (2026) Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
Deploy preview
|
|
Vale prose linter → found 2 errors, 107 warnings, 0 suggestions in your markdown Full report → Copy the linter results into an LLM to batch-fix issues. Linter being weird? Update the rules!
|
| Line | Severity | Message | Rule |
|---|---|---|---|
| 45:39 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 53:143 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'feature flags' for the general industry concept. | PostHogBase.ProductNames |
| 55:12 | warning | Use American English. Use 'behavior' instead of 'behaviour'. | PostHogBase.AmericanEnglish |
| 57:136 | warning | Use American English. Use 'organized' instead of 'organised'. | PostHogBase.AmericanEnglish |
| 65:3 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 65:18 | warning | Use 'MCP' instead of 'mcp'. | Vale.Terms |
| 135:61 | warning | Use American English. Use 'summarize' instead of 'summarise'. | PostHogBase.AmericanEnglish |
| 137:18 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'feature flags' for the general industry concept. | PostHogBase.ProductNames |
contents/blog/karpathy-autoresearch-query-engine-bug.md — 0 errors, 20 warnings, 0 suggestions
| Line | Severity | Message | Rule |
|---|---|---|---|
| 3:8 | warning | 'Karpathy's' is a possible misspelling. | PostHogBase.Spelling |
| 3:19 | warning | 'Autoresearch' is a possible misspelling. | PostHogBase.Spelling |
| 11:53 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 27:11 | warning | 'autoresearch' is a possible misspelling. | PostHogBase.Spelling |
| 29:30 | warning | 'Andrej' is a possible misspelling. | PostHogBase.Spelling |
| 29:37 | warning | 'Karpathy' is a possible misspelling. | PostHogBase.Spelling |
| 31:1 | warning | 'Karpathy' is a possible misspelling. | PostHogBase.Spelling |
| 31:49 | warning | 'nanochat' is a possible misspelling. | PostHogBase.Spelling |
| 31:335 | warning | 'Sakana's' is a possible misspelling. | PostHogBase.Spelling |
| 31:425 | warning | 'Karpathy's' is a possible misspelling. | PostHogBase.Spelling |
| 35:15 | warning | 'autoresearch' is a possible misspelling. | PostHogBase.Spelling |
| 37:108 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 37:147 | warning | Capitalize 'Data Warehouse' for PostHog's product. Use 'data warehouse' for the general industry concept. | PostHogBase.ProductNames |
| 37:182 | warning | Capitalize 'Logs' for PostHog's product. Use 'logs' for the general industry concept. | PostHogBase.ProductNames |
| 37:411 | warning | 'Karpathy's' is a possible misspelling. | PostHogBase.Spelling |
| 41:76 | warning | 'Zechner' is a possible misspelling. | PostHogBase.Spelling |
| 43:122 | warning | 'Karpathy's' is a possible misspelling. | PostHogBase.Spelling |
| 51:148 | warning | 'anonymized' is a possible misspelling. | PostHogBase.Spelling |
| 72:26 | warning | 'autoresearch' is a possible misspelling. | PostHogBase.Spelling |
| 111:18 | warning | 'dedup' is a possible misspelling. | PostHogBase.Spelling |
contents/blog/sql-parser.md — 0 errors, 18 warnings, 0 suggestions
| Line | Severity | Message | Rule |
|---|---|---|---|
| 17:73 | warning | 'autoresearch' is a possible misspelling. | PostHogBase.Spelling |
| 27:70 | warning | 'transpile' is a possible misspelling. | PostHogBase.Spelling |
| 35:37 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 35:56 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 35:72 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 35:151 | warning | 'transpilation' is a possible misspelling. | PostHogBase.Spelling |
| 35:200 | warning | 'transpilation' is a possible misspelling. | PostHogBase.Spelling |
| 35:305 | warning | 'transpiled' is a possible misspelling. | PostHogBase.Spelling |
| 37:76 | warning | 'untrusted' is a possible misspelling. | PostHogBase.Spelling |
| 39:4 | warning | 'Generating our parser with ANTLR' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 43:134 | warning | 'declaratively' is a possible misspelling. | PostHogBase.Spelling |
| 47:48 | warning | 'lookahead' is a possible misspelling. | PostHogBase.Spelling |
| 55:151 | warning | 'lookahead' is a possible misspelling. | PostHogBase.Spelling |
| 69:40 | warning | 'transpiler' is a possible misspelling. | PostHogBase.Spelling |
| 73:93 | warning | 'codegen' is a possible misspelling. | PostHogBase.Spelling |
| 77:182 | warning | 'lookahead' is a possible misspelling. | PostHogBase.Spelling |
| 77:237 | warning | 'lookahead' is a possible misspelling. | PostHogBase.Spelling |
| 85:73 | warning | 'anonymized' is a possible misspelling. | PostHogBase.Spelling |
contents/blog/training-ai-models.md — 0 errors, 3 warnings, 0 suggestions
| Line | Severity | Message | Rule |
|---|---|---|---|
| 34:41 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 64:13 | warning | 'comms' is a possible misspelling. | PostHogBase.Spelling |
| 82:37 | warning | 'james' is a possible misspelling. | PostHogBase.Spelling |
contents/blog/what-is-a-scout.mdx — 2 errors, 58 warnings, 0 suggestions
| Line | Severity | Message | Rule |
|---|---|---|---|
| 24:237 | warning | Use American English. Use 'judgment' instead of 'judgement'. | PostHogBase.AmericanEnglish |
| 26:92 | warning | Use the Oxford comma before 'and' or 'or' in a list of three or more items. | PostHogBase.OxfordComma |
| 26:303 | warning | 'Karpathy' is a possible misspelling. | PostHogBase.Spelling |
| 28:10 | warning | 'Karpathy's' is a possible misspelling. | PostHogBase.Spelling |
| 45:18 | warning | 'actioned' is a possible misspelling. | PostHogBase.Spelling |
| 49:113 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 51:189 | warning | 'papercuts' is a possible misspelling. | PostHogBase.Spelling |
| 51:263 | warning | Use American English. Use 'judgment' instead of 'judgement'. | PostHogBase.AmericanEnglish |
| 55:92 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 57:5 | warning | 'Your pipeline can be (mostly) markdown' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 57:35 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 61:65 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 65:223 | warning | 'don'ts' is a possible misspelling. | PostHogBase.Spelling |
| 69:4 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 75:181 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 127:68 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 149:19 | warning | 'sandboxed' is a possible misspelling. | PostHogBase.Spelling |
| 159:5 | warning | 'Disqualifiers' is a possible misspelling. | PostHogBase.Spelling |
| 160:18 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 181:32 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 185:224 | warning | Use the Oxford comma before 'and' or 'or' in a list of three or more items. | PostHogBase.OxfordComma |
| 185:265 | warning | 'disqualifiers' is a possible misspelling. | PostHogBase.Spelling |
| 191:88 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 204:79 | warning | 'miscalibrated' is a possible misspelling. | PostHogBase.Spelling |
| 206:217 | warning | Capitalize 'Surveys' for PostHog's product. Use 'surveys' for the general industry concept. | PostHogBase.ProductNames |
| 240:427 | warning | 'arg' is a possible misspelling. | PostHogBase.Spelling |
| 272:324 | warning | 'serializer' is a possible misspelling. | PostHogBase.Spelling |
| 274:56 | warning | 'serializer' is a possible misspelling. | PostHogBase.Spelling |
| 286:147 | warning | 'serializer' is a possible misspelling. | PostHogBase.Spelling |
| 303:86 | warning | 'Octolens' is a possible misspelling. | PostHogBase.Spelling |
| 303:163 | warning | Capitalize 'Data Warehouse' for PostHog's product. Use 'data warehouse' for the general industry concept. | PostHogBase.ProductNames |
| 307:162 | warning | 'comms' is a possible misspelling. | PostHogBase.Spelling |
| 307:230 | warning | 'anonymized' is a possible misspelling. | PostHogBase.Spelling |
| 311:7 | warning | 'reputational' is a possible misspelling. | PostHogBase.Spelling |
| 312:273 | warning | Capitalize 'Logs' for PostHog's product. Use 'logs' for the general industry concept. | PostHogBase.ProductNames |
| 318:21 | warning | 'Creeped' is a possible misspelling. | PostHogBase.Spelling |
| 320:30 | warning | 'creeped' is a possible misspelling. | PostHogBase.Spelling |
| 320:64 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 320:64 | warning | Capitalize 'PostHog Code' for PostHog's product. Use 'posthog code' for the general industry concept. | PostHogBase.ProductNames |
| 322:241 | warning | 'emittable' is a possible misspelling. | PostHogBase.Spelling |
| 332:33 | warning | Use 'PostHog' instead of 'Posthog'. | Vale.Terms |
| 336:94 | warning | 'imo' is a possible misspelling. | PostHogBase.Spelling |
| 340:31 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 342:271 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 350:27 | warning | Capitalize 'PostHog AI' for PostHog's product. Use 'posthog ai' for the general industry concept. | PostHogBase.ProductNames |
| 350:27 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 350:35 | warning | Use 'AI' instead of 'ai'. | Vale.Terms |
| 352:123 | error | 'really' is repeated! | Vale.Repetition |
| 352:251 | warning | 'discoverability' is a possible misspelling. | PostHogBase.Spelling |
| 369:4 | warning | 'Ideas: what else to point a scout at' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 375:57 | warning | Capitalize 'Data Warehouse' for PostHog's product. Use 'data warehouse' for the general industry concept. | PostHogBase.ProductNames |
| 380:257 | warning | 'MCPs' is a possible misspelling. | PostHogBase.Spelling |
| 381:89 | warning | 'miscalibration' is a possible misspelling. | PostHogBase.Spelling |
| 403:181 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 407:4 | warning | 'AGI Buzzword bingo' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 416:153 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 416:248 | warning | 'RTFM'd' is a possible misspelling. | PostHogBase.Spelling |
| 416:733 | warning | 'unironically' is a possible misspelling. | PostHogBase.Spelling |
| 416:954 | warning | 'Karpathy' is a possible misspelling. | PostHogBase.Spelling |
| 416:1288 | warning | 'lil' is a possible misspelling. | PostHogBase.Spelling |
Bundle reportTotal JS (gzip)6.32 MiB (+8.5 KiB / +0.1%) Largest changed named chunks
Eager graph (modules shipped in each entrypoint's initial chunks)
Largest modules in the
|
| Module | Size |
|---|---|
css ./node_modules/.pnpm/css-loader@5.2.7_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!./node_modules/.pnpm/postcss-loader@4.3.0_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./src/styles/global.css |
712.6 KiB |
./src/components/Stickers/Stickers.tsx |
696.4 KiB |
./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/31a094f140f119e73085d847ae81b99b.js + 2 modules |
629.5 KiB |
./node_modules/.pnpm/@radix-ui+react-icons@1.3.2_react@18.3.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js |
481.4 KiB |
./node_modules/.pnpm/rehype-raw@7.0.0/node_modules/rehype-raw/lib/index.js + 29 modules |
395.1 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.cjs.js |
364.8 KiB |
./src/hooks/useCustomers.tsx + 54 modules |
355.1 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
354.8 KiB |
./node_modules/.pnpm/react-markdown@8.0.7_@types+react@16.14.66_react@18.3.1/node_modules/react-markdown/lib/react-markdown.js + 88 modules |
351.4 KiB |
./node_modules/.pnpm/cloudinary-core@2.14.0_lodash@4.17.21/node_modules/cloudinary-core/cloudinary-core.js |
281.9 KiB |
./src/components/ProductComparisonTable/index.tsx + 120 modules |
278.5 KiB |
./node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js + 208 modules |
247.4 KiB |
./src/components/Pricing/PricingSlider/Slider.tsx + 87 modules |
239.9 KiB |
./gatsby-browser.tsx + 41 modules |
239.8 KiB |
./src/components/SearchUI/index.tsx + 73 modules |
223.4 KiB |
Eager-graph budgets are report-only until a baseline is established. Sizes are gzip of public/**/*.js; eager size is webpack module source bytes for the modules actually shipped in the entrypoint's initial chunks (post-tree-shake).
|
I think @jamesefhawkins will give you higher quality feedback on the content here than me! Overall I see a lot to like, but maybe I'd dial back the humor by a notch? I think it detracts from the credibility of the research, especially when the blog content itself that we right is quite earnest/serious. I'd match the tone of those a little more closely. |
Tone pass to better match the earnest voice of the research blog posts: - Hero now leads with training our own foundation models and names the novel techniques (multi-axis RoPE built on additive Euler angles), with a commitment to publish: arXiv papers and submissions to major ML conferences, starting with the first pretraining run - Roadmap subtitle notes each pretraining stage will produce papers and technical reports; replay encoder item names the technique - New FAQ: "Will you publish your research?" (first paper underway) - Removed jokes that undercut credibility (ramen, hare-brained schemes, "How meta", "It's fine"); tightened wordy subtitles - Kickers normalized (Publications, The team, Events); FAQ heading now "Frequently asked questions" Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- Drop the PREPRINT stamp: the page now presents the work as serious, publishable research rather than winking at it - Hero copy commits explicitly to open sharing: open source code, findings published as we go, papers headed to arXiv and major ML conferences - New "Published research" section: papers/preprints/technical reports render from a PUBLICATIONS array with a paste-in comment template; empty state explains the first paper is in progress and links will land here (blog section kicker renamed to Blog to free "Papers") - Hero restructured to two columns (content left, team crest right, crest hidden on narrow containers) removing the dead whitespace between the page label and headline; tightened top margin Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
Publications section:
- Cite button on each paper card copies a BibTeX entry (misc + eprint
for arXiv entries, article + journal otherwise) with a toast
- Entries can be just { arxivId: '...' }: title, authors, and year
are fetched from the arXiv API client-side with graceful fallback
- Card restructured so title link and Cite button aren't nested
Hero:
- Control headline is now the single-line values statement "We do
research that is open-source, responsible, and helps you build
better software" with staggered RoughAnnotation highlights
(experiment 381494 description updated to document the change)
- Second paragraph tightened per review and now links the feature
pricing principles from the handbook
Blog section: subtitle notes we don't just share the glamorous bits
Generated-By: PostHog Code
Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- Fresh from the lab now shows only feat/epic PRs: fetch 50, filter titles client-side, show 8; terminal caption reads --grep=feat and subtitle shortened to match - Copy pass to avoid 1-2 word run-on lines: section subtitles cut to single lines (publications, people, events) or substantial second lines (roadmap, hero paragraphs, CTA, publications empty state) - Fix stray space before period after the pricing principles link Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
Three YouTube embeds (youtube-nocookie, lazy-loaded) in a "Watch a past talk" grid: Joshua Snyder and Danilo Campos at AI Engineer, and James Hawkins on The Secure Disclosure. Talks live in a PAST_TALKS array with a paste-in comment for future recordings. The empty state for upcoming talks now points to the recordings below it. Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- Talk recordings now live under a "Prefer to watch?" subheading in the Research in the open section, after the post cards; the events section returns to upcoming talks only, restoring its calmer layout - Upcoming events are deduped by id before filtering: the shared useEvents hook can double-append in dev when StrictMode re-runs effects, which showed duplicate rows Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- Publications: Grafting (2403.06015) and Time Series Clustering Using DBSCAN (2403.14798) by Nicholas Waltz, marked "Published before joining PostHog" via a new note field; footnote under the list says the first paper from current research is in progress - Talk recordings are now part of the Research in the open feed: a TalkCard matching PostCard's geometry is interleaved after every two posts (extras appended); when the feed exceeds six items it renders as a snap-scroll carousel instead of a grid Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
…edirect - Carousel gets floating prev/next chevron buttons that fade out at either end (hidden on narrow containers where touch scroll rules) - Every section now has a shareable anchor (#pipeline, #papers, #shipped, #blog, #team, #events, #faq) with scroll margin - Publications emit schema.org ScholarlyArticle structured data so the papers are indexable as scholarly work - /papers vanity redirect to /research#papers for talks and slides (pnpm test-redirects fails identically on master – it picks up monorepo CI test files from .cache – so not a regression) Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
Reweights the page for the priority audiences (researchers > customers
> investors):
- Hero now leads with the dataset and the unsolved problem ("Nobody
has trained a foundation model on data like this"), with the product
outcome demoted to the second clause; adds a momentum line (agents
create the majority of new dashboards, MCP usage doubling monthly)
sourced from the next-chapter post via the existing footnote
- Trust strip under the hero copy: EU opt-out default, anonymization,
opt out anytime, linking to the FAQ anchor
- New "Problems we haven't solved yet" section (#problems): three
short technical write-ups (multi-axis RoPE positional embeddings,
replay-to-token rendering, evaluating self-modifying agents) plus a
recruiting callout with role and team links
- Roadmap cards each gain an "In practice:" customer-outcome line
Generated-By: PostHog Code
Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- text-pretty on the page root (inherits everywhere): browsers avoid 1-2 word last lines in all copy at any window width, which manual trims can't guarantee on a resizable page - Trim lines meant to hold a single line at default width: roadmap "In practice" outcomes shortened to fit half-width cards, trust strip shortened, recruiting sentence cut so its second line is substantial Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
|
Ok, here are my comments as promised. Fair warning, I pretty much have an opinion about the entire page here but feel free to disregard things as usual. This is mostly directional feedback, but I can take time to propose copy if that is required somewhere. I of course understand that we do not have any content just yet and this will improve over time. Important note again that research is a non-linear process and therefore timelines are, too. To frame this, I think our priorities with this page are: Impress potential candidates and gain research street creds. I think this should primarily show that we are doing something cool, what it is and are unapologetic about it. It should read like: this is our researchers' corner, not this is PostHog speaking. Hedging against privacy concerns should be an anti goal in my view, I would honestly leave that out entirely from this page, it dilutes the message. It should not conflate shipping features with ML research. Shipping is highly linear and clearly defined, research is not. I think a blog style format is the easiest way to achieve this goal. Everything that follows essentially comes down to that. Straight away: "Our research is open-source, responsible, and helps you build better software" - this puts too little emphasis on "look what cool stuff we are doing" and too much emphasis on hedging against potential HN opinions. Responsible in particular is unclear I think. I would drop this entirely and replace with a mission statement: "Training user behaviour foundation models". Our research is not open-source in the posthog monorepo sense. Instead, we publish final architectures to repos and share weights and papers on training process and learnings. Likewise: "EU cloud opted out by default · anonymized before training · opt out anytime" should not appear here at all A way of thinking about this: If this goes on hacker news, it should only draw ML experts or aspirants, not privacy advocates. I would keep research and intended research outcomes separate. Research is the goal in and of itself here, so I would completely remove any mentions of PostHog fixes your products etc. and assume that people make the connection themselves. Instead put the focus on "exploring user behavior understanding models". There is a imprecise conflation of "shipping" and "researching". This page should explicitly be about the latter imo. This means that MCP, agent loops, etc. are probably the wrong content here. I agree with James that we should pattern match a bit more of a serious tone and we can add the fun via ergonomics as opposed to content (how the page looks, how to navigate, what background it gets). PRs by the research team is not possible given that it is all in a private repo. Robbie is mistakenly shown as AI research TL. The timeline is not clean. I would say:
The data prep steps etc are the components of the above goals and not "what we are researching". Help wanted makes it seem like this is not going to happen, which is also a mischaracterization as the code is already being written. I would put them all in progress and then say: "If this sounds up your alley apply". Problems we haven't solved yet, I would drop. Published research, I would replace with just "Watch this space" and then be patient, my papers are nice but have no relation at all to what we're doing and should therefore be removed to not confuse anyone. Research in the open, we can keep, it's like a nice blog feed. FAQs should drop the privacy concerns, this is our researchers' corner and they (me) just train on what they get and figure that out, I'd say let's keep it entirely research content focussed |
|
Thanks for the detailed feedback, Nico! Some of this was high-level and are pieces I already agree with or think we move on past, so I'll try to focus this on specific follow-ups.
👍 Will handle
Agree conceptually here and we'll absolutely have more blog content coming in -- I want that to be the centre piece of this section -- but I think important that this doesn't just feel like a Blog tag filter. That said, I have added support for a tag filter here so that we automatically pull in anything labelled "Research" and add authors to the page. In this way, research becomes a cross-company direction. I do need to tinker here though.
👍 will clarify
Is there any way we can show outputs of what you're working on at all, other than blogs and papers which we don't have yet?
Slight disagree here, as I don't think it reads this way - but I'll play with the suggested changes and see where we land. |
Applied on top of Eli's layout overhaul (narrow column, list roadmap, TeamMember profiles, MediaPlayer talks): - H1 replaced with the mission statement: "Training user behavior foundation models and transparently sharing the research we do"; the A/B experiment wiring and callout removed with it - Hero drops all hedging and shipping content: privacy trust strip, pricing principles, MCP/dashboard momentum stats, and the master plan citation are gone; sharing copy states what we publish (architectures to public repos, weights, papers on training and learnings) rather than claiming monorepo-style open source - Roadmap rewritten to the four research tracks (Replay Encoder, replay vision agent, predictive user behavior model, self-driving model tuning), all marked in progress; data prep/labeling/sampling named as components; hiring callout sits directly below - "Problems we haven't solved yet" and the merged-PR feed removed as shipping-flavored content (Eli's build-time PR sourcing in gatsby/ is left intact for future reuse; the page query no longer asks for it) - Team-lead badge now only shows for leads of the AI Research team, fixing Robbie appearing as research team lead - FAQ rebuilt research-only: what we publish, the first model, why an analytics company trains foundation models, how to join - SEO description updated to match the mission Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
- People section now shows only AI Research team members from the team query, plus James Hawkins (pulled from post authorship since he isn't on the team in Strapi); other post authors no longer appear - Nico sorts first and carries the team lead badge - Hero copy tightened (hand edits): "We're the first", simplified sharing commitment Generated-By: PostHog Code Task-Id: 26999385-9f19-4096-95bc-ca64922a3230
|
Pushing a new version live now. This roles in pretty much all of your feedback, Nico, with a few exceptions where I feel most strongly. I want to keep the old research papers, for example, as they help establish credibility -- the only alternative, IMO, would be holding back this page entirely until we have something new to add here. We're clear on the listing that they pre-date Posthog, so I feel it's fine as it is. Let me know if there's any other blocking feedback, otherwise I think this is looking good and that -- pending a final @smallbrownbike pass on the changes -- that we should get this live and iterate. |
What this does
Adds a new page at
/research: the AI Research team's corner of the site. Its job is to impress potential research hires and build research street cred – showing what the team is training, how, and the commitment to sharing it (papers to arXiv and ML conferences, architectures to public repos, released weights). Deliberately not a product marketing page: no shipping content, no privacy hedging, no feature funnels.Built collaboratively: initial build + content by PostHog Code with Joe, layout overhaul by @elikinsey, and copy/scope direction from Nico (AI Research).
The page
/teams/ai-research.#pipeline) – four tracks, all in progress: training a Replay Encoder model (multi-axis RoPE built on additive Euler angles; labeling/rendering/data-prep/sampling named as components), training a replay vision agent, training a predictive user behavior model, tuning a self-driving model. Hiring callout directly below, linking the AI research engineer role.#papers) – publications render from aPUBLICATIONSarray supporting plain{ arxivId }entries (metadata fetched from the arXiv API with graceful fallback). Each entry has a copy-BibTeX cite action. Currently lists two prior papers by Nicholas Waltz (marked "Published before joining PostHog") with a note that the first paper from current research is in progress. Papers emit schema.org ScholarlyArticle JSON-LD;/papersredirects to/research#papers.#blog) – posts taggedResearch(build-time page query, future tagged posts appear automatically) interleaved with conference talk recordings (open in MediaPlayer windows). Grid up to 6 items, snap-scroll carousel with arrows beyond that. Links to the auto-generated/blog/tags/research.#team) – AI Research team members only (fullTeamMemberprofile cards), Nico first with the team lead badge, plus James Hawkins (sourced from Research-tagged post authorship).#events) – upcoming speaker events from the Strapi events API (via the exporteduseEventshook), deduped, with date badges and an empty state.#faq) – research content only: what we publish, the first model, why an analytics company trains foundation models, how to join./wip+ feature previews.Supporting changes
IconBrain) between dividers after Context Warehouse; PostHog Code moved to the top: Code, Web, Slack, MCP, Context Warehouse, ─, Research, ─, Browse all tools, Search tools.Researchadded to 5 posts (sql-parser, what-is-a-scout, karpathy-autoresearch-query-engine-bug, training-ai-models, agents-closed-4063-errors), auto-generating/blog/tags/research.gatsby/sourceNodes.ts+createSchemaCustomization.ts– build-time sourcing of research team merged PRs (from @elikinsey; currently unused by the page after the shipping-content cut, kept for future reuse).src/context/App.tsx–/researchwindow sizing entries.src/pages/events.tsx– one-word change to exportuseEvents.vercel.json–/papers→/research#papers.src/components/OSTable– drops an unused MDXEditor import (perf, from @elikinsey).Removed along the way (deliberate)
An H1 A/B experiment, live GitHub PR feed, privacy/trust FAQ + hero strip, pricing principles link, MCP/dashboard momentum stats, and an "open problems" section – cut per AI Research team feedback to keep the page purely about research. Experiment
research-page-h1(381494) is still running and should be stopped, since the page no longer uses the flag.Checks
/blog/tags/researchgenerates; carousel arrows fade at either end; events dedupe and empty state; arXiv metadata fetch and BibTeX copy.newWindowstate on cross-app links,externalon external links, dark mode textures,text-prettyto prevent widow lines.pnpm test-redirectsfails identically on a clean tree (jest picks up monorepo CI test files from.cache/gatsby-source-git) – not a regression. Preview builds don't generate tag pages – check the page at its direct URL/research.Created with PostHog Code