# Use Fathom with Remix

Used: 

If you want to use Fathom for your analytics and use Remix to build your app, you can configure it to work quite quickly.

Install Fathom Client:

```sh
npm install fathom-client
```

Then in your `app/root` file, import it together with `useLocation` from React Router.

```tsx
import * as Fathom from "fathom-client";
import { useLocation } from "react-router-dom";
```

Finally, in an effect run `Fathom.load` and also `Fathom.trackPageview();` after a location change.

```tsx
let fathomLoaded = useRef(false);
let location = useLocation();

useEffect(
 function setupFathom() {
 if (!fathomLoaded.current) {
 Fathom.load("<YOUR_SITE_ID>", { includedDomains: ["<YOUR_DOMAIN>"] });
 fathomLoaded.current = true;
 } else {
 Fathom.trackPageview();
 }
 },
 [location]
);
```

With this, the first time the effect runs, it will load Fathom and set in the fathomLoaded ref the value `true`. From that moment, whenever the location object changes, it will call `Fathom.trackPageview` to track the pageview.

And that's it! This also works in any React Router application; to be honest, you don't even need Remix here.

