Skip to content

Website: Overhaul PostHog Code page#18671

Open
cleo-pleurodon wants to merge 13 commits into
masterfrom
posthog-code/reposition-code-page
Open

Website: Overhaul PostHog Code page#18671
cleo-pleurodon wants to merge 13 commits into
masterfrom
posthog-code/reposition-code-page

Conversation

@cleo-pleurodon

@cleo-pleurodon cleo-pleurodon commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Changes

New design and positioning for PostHog Code Desktop.

Preview https://61e397d2.posthog-preview.pages.dev/desktop

Add screenshots or screen recordings for visual / UI-focused changes.

CleanShot 2026-07-20 at 16 38 31 CleanShot 2026-07-20 at 16 38 21 CleanShot 2026-07-20 at 16 39 01 CleanShot 2026-07-20 at 16 39 11 CleanShot 2026-07-20 at 16 39 33 CleanShot 2026-07-20 at 16 39 48 CleanShot 2026-07-20 at 16 39 55

Checklist

  • I've read the docs and/or content style guides.
  • Words are spelled using American English
  • Use relative URLs for internal links
  • I've checked the pages added or changed in the Vercel preview build
  • If I moved a page, I added a redirect in vercel.json

…tion-code-page

# Conflicts:
#	src/hooks/useProduct.ts
#	src/pages/code.tsx
Resolve code.tsx conflict in favor of the rewritten page; master's
changes were cosmetic polish to superseded sections. The SSR-safe
#download handler is already present in the rewrite.

(--no-verify: pre-commit hook flags a pre-existing react/display-name
error in src/components/Home/Test/index.tsx, a master file unrelated
to this branch. All files authored on this branch pass eslint.)

Generated-By: PostHog Code
Task-Id: 430f586a-7eb6-447b-bef4-be98aff5dd6f
@cleo-pleurodon cleo-pleurodon self-assigned this Jul 17, 2026
@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Vale prose linter → found 44 errors, 1344 warnings, 27 suggestions in your markdown

Full report → · Copy the Job Summary code block into an LLM to batch-fix issues.

Note: Too many findings to show inline. See the Job Summary linked above.

File Errors Warnings Suggestions
contents/blog/best-ai-observability-tools.mdx 0 66 0
contents/blog/best-analytics-stack-for-vibe-coded-apps.mdx 1 68 0
contents/blog/best-braintrust-alternatives.mdx 0 160 1
contents/blog/best-helicone-alternatives.mdx 0 162 0
contents/blog/best-langfuse-alternatives.mdx 0 129 0
contents/blog/best-langsmith-alternatives.mdx 0 137 0
contents/blog/best-mcp-servers-for-startups.mdx 0 50 1
contents/blog/best-statsig-alternatives.mdx 9 157 1
contents/blog/customer-success-at-posthog.md 0 21 9
contents/blog/embedded-analytics-provisioning-api.md 0 13 0
contents/blog/everything-is-build-mode.md 0 3 0
contents/blog/future-of-support-is-human.md 0 4 0
contents/blog/karpathy-autoresearch-query-engine-bug.md 0 20 0
contents/blog/posthog-vs-langfuse.mdx 2 50 2
contents/blog/posthogs-next-chapter.md 0 9 7
contents/blog/self-driving-product.mdx 0 6 0
contents/blog/training-ai-models.md 0 3 0
contents/blog/what-if-your-product-built-itself.mdx 0 10 0
contents/blog/what-is-a-scout.mdx 2 58 0
contents/docs/error-tracking/fix-with-ai-prompts.mdx 2 1 0
contents/docs/health-checks/authorized-urls.mdx 0 1 0
contents/docs/health-checks/index.mdx 0 2 0
contents/docs/health-checks/ingestion-warnings.mdx 0 1 0
contents/docs/health-checks/materialized-view-failures.mdx 0 1 0
contents/docs/health-checks/no-live-events.mdx 0 1 0
contents/docs/health-checks/no-reverse-proxy.mdx 0 1 0
contents/docs/health-checks/pageleave-events.mdx 0 1 0
contents/docs/health-checks/partial-reverse-proxy.mdx 0 1 0
contents/docs/health-checks/scroll-depth.mdx 0 1 0
contents/docs/health-checks/sdk-health.mdx 0 4 0
contents/docs/health-checks/web-vitals.mdx 0 1 0
contents/docs/model-context-protocol/index.mdx 0 3 0
contents/docs/posthog-code/ai-generated-content.mdx 0 1 0
contents/docs/posthog-code/cloud-runs.mdx 0 3 0
contents/docs/posthog-code/code-review.mdx 0 3 0
contents/docs/posthog-code/command-center.mdx 0 1 0
contents/docs/posthog-code/environments.mdx 0 6 0
contents/docs/posthog-code/git-github-integration.mdx 0 3 0
contents/docs/posthog-code/index.mdx 0 3 0
contents/docs/posthog-code/open-source.mdx 0 2 0
contents/docs/posthog-code/posthog-integration.mdx 0 9 0
contents/docs/posthog-code/pricing.mdx 2 0 0
contents/docs/posthog-code/settings.mdx 0 4 0
contents/docs/posthog-code/skills.mdx 6 8 0
contents/docs/posthog-code/tasks.mdx 0 5 0
contents/docs/posthog-code/use-any-model-and-harness.mdx 0 1 0
contents/docs/posthog-code/worktrees.mdx 0 12 0
contents/docs/replay-vision/creating-scanners.mdx 2 3 5
contents/docs/self-driving/inbox/index.mdx 0 1 0
contents/docs/self-driving/index.mdx 0 6 0
contents/docs/self-driving/scout-examples.mdx 0 17 0
contents/docs/slack/index.mdx 0 5 0
contents/faq.mdx 0 31 0
contents/handbook/story.md 4 37 1
contents/newsletter/context-engineering.md 0 11 0
contents/newsletter/how-to-demo.md 2 8 0
contents/newsletter/loops.md 0 15 0
src/components/Code/README.md 0 1 0
src/components/SlotMachineText/README.md 6 2 0
src/components/WaitlistForm/README.md 6 1 0

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Deploy preview

Status Details Updated (UTC)
🟢 Ready View preview Jul 20, 2026 08:53PM

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Bundle report

Total JS (gzip)

6.72 MiB (+3.8 KiB / +0.1%)

Largest changed named chunks
Chunk Gzip Δ vs master
app.js 2106.2 KiB +3.7 KiB / +0.2%

Eager graph (modules shipped in each entrypoint's initial chunks)

Entrypoint Eager size Budget Modules
app 16.07 MiB (+27.1 KiB / +0.2%) report-only 1967
Largest modules in the app closure
Module Size
./src/data/mcp-tools.json 858.5 KiB
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 741.0 KiB
./src/components/Stickers/Stickers.tsx 696.4 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.6 KiB
./src/components/SearchUI/index.tsx + 87 modules 271.9 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 + 43 modules 225.0 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).

Generated-By: PostHog Code
Task-Id: 44ac34e7-b822-4bd0-a405-258660879184
Left dated content (like blogs) as is with PostHog Code references, but otherwise renamed everything (docs, handbook etc...)
@smallbrownbike this might not be the best solution?
@cleo-pleurodon
cleo-pleurodon marked this pull request as ready for review July 20, 2026 20:37
@cleo-pleurodon
cleo-pleurodon requested a review from k11kirky July 20, 2026 20:40

@adboio adboio left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is so sickkkkkkkk

will keep poking around with it, just adding the other gpt models in a comment here quick !

Comment thread src/pages/desktop.tsx
Comment on lines +1781 to +1784
<div className="flex flex-wrap gap-2">
<ModelChip>GPT-5.5</ModelChip>
<ModelChip>GPT-5.4</ModelChip>
</div>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<div className="flex flex-wrap gap-2">
<ModelChip>GPT-5.5</ModelChip>
<ModelChip>GPT-5.4</ModelChip>
</div>
<div className="flex flex-wrap gap-2">
<ModelChip>GPT-5.6 Sol</ModelChip>
<ModelChip>GPT-5.6 Terra</ModelChip>
<ModelChip>GPT-5.6 Luna</ModelChip>
<ModelChip>GPT-5.5</ModelChip>
<ModelChip>GPT-5.4</ModelChip>
</div>

Comment thread src/pages/desktop.tsx
}
extra={<IconGroupColumns groups={canvasExampleGroups} />}
>
Ask for a report, a dashboard, or random internal tool, get exactly what you want in a{' '}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

random internal tool

i might be wrong but i don't think we're quite at "internal tool" level with the canvases yet, maybe we can reword this to be closer to just reports/dashboards?

Comment thread src/pages/desktop.tsx
>
inbox
</Link>{' '}
you look forward to opening. Product signals go in, PRs come out.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[super nit picky, feel free to ignore] i think putting this caption below the screenshot might feel more balanced with the rest of the card

@charlescook-ph charlescook-ph left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cleo-pleurodon as is marketing tradition, I have purely focused on the constructive stuff and not left the (very) long list of comments about things I like here!

Mainly stuff where I think you could go a level more specific/less-buzzwordy for our ICP. But broadly this is great. I haven't checked on mobile btw, assuming you have on preview for any layout funkiness?

Comment thread src/pages/desktop.tsx
padding={2}
delay={300}
>
agentic workspace

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"agentic workspace" feels corporate buzzwordy - is there something that would better resonate with a YC founder here? ('the era of self driving' was also a bit grandiose, so not suggesting we go back to that either though)

"workspace" also puts us in the class of Notion and Slack

Comment thread src/pages/desktop.tsx

<CloudinaryImage
src="https://res.cloudinary.com/dmukukwp6/image/upload/plague_doctor_beach_11580558c0.png"
alt="A plague doctor relaxing on a beach"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love plague doctor but they seem a bit randomly crowbarred in here - I'd remove given you have the banana and lemon hogs below (which work better in the context of a receipt)

Comment thread src/pages/desktop.tsx
</ChoppyReveal>
</p>

{/* Table stakes + receipt: the standard starter pack every AI tool ships (also the "old way") */}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the agent mart concept, but logically it doesn't make sense to be in the 'old way' section, should be in the 'PostHog way'?

Comment thread src/pages/desktop.tsx
</li>
))}
</ul>
<p className="m-0 mt-3 text-sm italic text-secondary">Instead...</p>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can delete this, would simplify and it's pretty clear the next section is the 'instead'

Comment thread src/pages/desktop.tsx

<p className="text-base leading-loose mb-5">
<ChoppyReveal wordDelay={25} initialDelay={p2Done ? 0 : 999999} onComplete={() => onComplete?.()}>
<strong>TL;DR:</strong> Other AI tools edit your code.{' '}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the original language was better here - what is the difference between editing code and editing your product, when the product is code? (This would imply to me... design tools?)

Comment thread src/pages/desktop.tsx
<div className="rounded-md border border-purple bg-purple/10 p-6 shadow-xl @xl:p-8">
<div className="mb-3 flex items-center gap-2">
<StickerRobot className="size-8 -rotate-3" />
<h2 className="m-0 text-2xl font-bold">Dang, PostHog's got skills</h2>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not totally sure what this section means, it feels kinda empty? It reads as 'skills are helpful' but what specifically does Desktop do for you here?

Comment thread src/pages/desktop.tsx
<h2 className="m-0 text-2xl font-bold">Dang, PostHog's got skills</h2>
</div>
<p className="m-0 text-secondary">
A <code className="border-purple bg-purple/20">SKILL.md</code> makes wiring up PostHog stupid easy,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'turns company knowledge into a playbook everyone can run with.' - sounds buzzwordy!

Comment thread src/pages/desktop.tsx
domain?: string
}

const mcpServers: MCPServer[] = [

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I'd put popular ones first, rather than alphabetical, otherwise you have Slack/Stripe/Supabase barely visible

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants