## TL;DR

Fix: Maintainer hpouillot: use the dedicated `@posthog/react` package (same code, proper ESM exports) instead of `posthog-js/react`, docs at posthog.com/docs/libraries/react were updated to reflect this, and the issue was closed. Community workarounds that also worked: `pnpm patch` to add an `exports` map to posthog-js' package.json, or `ssr: { noExternal: ['posthog-js'] }` in vite.config.ts.

## The error

```text
`posthog-js` can't be used in ESM/SSR Node projects (Remix/Vite): package.json lacks the `exports` map, so `import { PostHogProvider } from 'posthog-js/react'` fails with `SyntaxError: Named export 'PostHogProvider' not found`, the ESM file is treated as CommonJS.
```

## Fix

1. Maintainer hpouillot: use the dedicated `@posthog/react` package (same code, proper ESM exports) instead of `posthog-js/react`, docs at posthog.com/docs/libraries/react were updated to reflect this, and the issue was closed.
2. Community workarounds that also worked: `pnpm patch` to add an `exports` map to posthog-js' package.json, or `ssr: { noExternal: ['posthog-js'] }` in vite.config.ts.

Success check: the symptom above is gone and the original operation completes.

## When to use

- You hit this exact symptom in posthog-js.
- You want the verified fix without digging through the thread.

## When not to use

- A different error in posthog-js, even a similar-looking one.
- General posthog-js setup or credential questions.

## Compatibility

- Posthog Js (PostHog/posthog-js)

## Variant phrasings

- How to fix "missing pkg.exports in package.json" in posthog-js
- posthog-js: missing pkg.exports in package.json

## Source

- https://github.com/PostHog/posthog-js/issues/908