@geenius/analytics
v0.16.1
Published
Geenius Analytics — Privacy-first self-hosted analytics for Convex apps (React + SolidJS)
Downloads
1,150
Maintainers
Readme
@geenius/analytics
Privacy-first analytics primitives, UI components, and Convex helpers for Geenius applications across shared, React, React CSS, SolidJS, SolidJS CSS, and Convex entrypoints.
Install
pnpm add @geenius/analyticsInstall the framework peers you use in your application:
pnpm add react react-dom
pnpm add solid-js
pnpm add convexPublic Imports
Shared utilities from the root export:
import {
createTracker,
defaultAnalyticsConfig,
analyzeFunnel,
} from '@geenius/analytics'Shared utilities from the explicit shared subpath:
import {
AnalyticsEventSchema,
sanitizeAnalyticsEvent,
} from '@geenius/analytics/shared'React hooks, providers, and Tailwind-based UI:
import {
AnalyticsProvider,
StatsCard,
useAnalytics,
} from '@geenius/analytics/react'React vanilla-CSS components:
import {
AnalyticsProvider,
StatsCard,
} from '@geenius/analytics/react-css'The react-css entrypoint imports its stylesheet automatically.
SolidJS primitives, providers, and Tailwind-based UI:
import {
AnalyticsProvider,
StatsCard,
createAnalytics,
} from '@geenius/analytics/solidjs'SolidJS vanilla-CSS components:
import {
AnalyticsProvider,
StatsCard,
} from '@geenius/analytics/solidjs-css'The solidjs-css entrypoint imports its stylesheet automatically.
Convex schema, queries, and mutations:
import {
analyticsSchema,
trackEvent,
getRealtimeStats,
} from '@geenius/analytics/convex'Basic Usage
import {
AnalyticsProvider,
StatsCard,
useAnalytics,
} from '@geenius/analytics/react'
import { defaultAnalyticsConfig } from '@geenius/analytics'
function OverviewCard() {
const analytics = useAnalytics()
async function handleOpen(): Promise<void> {
await analytics.track('dashboard_opened', {
surface: 'overview',
})
}
return (
<button onClick={() => void handleOpen()}>
<StatsCard
label="Unique visitors"
value="12,480"
change="+6.4%"
trend="up"
/>
</button>
)
}
export function AnalyticsExample() {
return (
<AnalyticsProvider
config={{
...defaultAnalyticsConfig,
trackPageViews: true,
debug: false,
}}
>
<OverviewCard />
</AnalyticsProvider>
)
}Storybook Review Apps
This package includes local React and SolidJS review apps that exercise the Tailwind and vanilla-CSS variants side by side.
pnpm storybook:react
pnpm storybook:solidjsProduction verification uses:
pnpm storybook:react:build
pnpm storybook:solidjs:buildLicense
Free Software License for the free tier. See LICENSE.
