Skip to content

Commit a50b817

Browse files
committed
Remove Vercel Analytics and setup Posthog and Cloudflare Analytics
1 parent 8b8dfd9 commit a50b817

5 files changed

Lines changed: 67 additions & 7 deletions

File tree

packages/layerchart/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
"@changesets/cli": "^2.26.2",
6767
"@mdi/js": "^7.3.67",
6868
"@types/d3-time": "^3.0.2",
69-
"@vercel/analytics": "^1.1.1",
7069
"d3-array": "^3.2.4",
7170
"d3-delaunay": "^6.0.4",
7271
"d3-dsv": "^3.0.1",
@@ -85,6 +84,7 @@
8584
"date-fns": "^2.30.0",
8685
"layercake": "^8.0.2",
8786
"lodash-es": "^4.17.21",
87+
"posthog-js": "^1.95.1",
8888
"shapefile": "^0.6.6",
8989
"svelte-ux": "^0.56.0",
9090
"topojson-client": "^3.1.0"

packages/layerchart/src/app.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,13 @@
88
</head>
99
<body>
1010
<div>%sveltekit.body%</div>
11+
12+
<!-- Cloudflare Web Analytics -->
13+
<script
14+
defer
15+
src="https://static.cloudflareinsights.com/beacon.min.js"
16+
data-cf-beacon='{"token": "aff39463882545fd8cca0adba6afa86e"}'
17+
></script>
18+
<!-- End Cloudflare Web Analytics -->
1119
</body>
1220
</html>

packages/layerchart/src/routes/+layout.svelte

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
<script lang="ts">
2-
import { inject } from '@vercel/analytics';
2+
import { onMount } from 'svelte';
3+
import posthog from 'posthog-js';
4+
35
import { mdiArrowTopRight, mdiGithub, mdiTwitter } from '@mdi/js';
46
import 'prism-themes/themes/prism-vsc-dark-plus.css';
57
import { AppBar, AppLayout, Button, QuickSearch, Tooltip, settings, sortFunc } from 'svelte-ux';
68
79
import { dev } from '$app/environment';
810
import { afterNavigate, goto } from '$app/navigation';
11+
import { page } from '$app/stores';
912
1013
import NavMenu from './_NavMenu.svelte';
1114
12-
inject({ mode: dev ? 'development' : 'production' });
13-
1415
settings({
1516
theme: {
1617
// AppBar: 'bg-accent-500 text-white shadow-md',
@@ -37,6 +38,32 @@
3738
};
3839
})
3940
.sort(sortFunc((d) => groups.indexOf(d.group)));
41+
42+
let currentPath = '';
43+
onMount(() => {
44+
// Posthog analytics
45+
if (!dev) {
46+
const unsubscribePage = page.subscribe(($page) => {
47+
if (currentPath && currentPath !== $page.url.pathname) {
48+
// Page navigated away
49+
posthog.capture('$pageleave');
50+
}
51+
console.log('entering');
52+
// Page entered
53+
currentPath = $page.url.pathname;
54+
posthog.capture('$pageview');
55+
});
56+
const handleBeforeUnload = () => {
57+
// Hard reloads or browser exit
58+
posthog.capture('$pageleave');
59+
};
60+
window.addEventListener('beforeunload', handleBeforeUnload);
61+
return () => {
62+
unsubscribePage();
63+
window.removeEventListener('beforeunload', handleBeforeUnload);
64+
};
65+
}
66+
});
4067
</script>
4168

4269
<AppLayout>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,17 @@
1+
import posthog from 'posthog-js';
2+
3+
import { browser, dev } from '$app/environment';
4+
15
// Disable server-side rendering until AppLayout shift is fixed (issue #22)
26
export const ssr = false;
7+
8+
export const load = async () => {
9+
// Setup Posthog
10+
if (browser && !dev) {
11+
posthog.init('phc_EjObiSURIW3vFLwJYNXQ1DumcnVPI28mO5nbTRVPjs0', {
12+
api_host: 'https://app.posthog.com',
13+
capture_pageview: false,
14+
capture_pageleave: false,
15+
});
16+
}
17+
};

pnpm-lock.yaml

Lines changed: 13 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)