@tekibo/feedpulse-sdk
v0.6.1
Published
Embeddable analytics and feedback SDK for FeedPulse
Readme
@tekibo/feedpulse-sdk
FeedPulse analytics and feedback SDK for Nuxt and React.
Setup
1) Create a proxy route in your own app
- Nuxt: copy
templates/nuxt-proxy.tstoserver/api/fp-proxy.post.ts - Next.js App Router: copy
templates/nextjs-proxy.tstoapp/api/fp-proxy/route.ts
2) Set server-only environment variables
FEEDPULSE_API_KEY=fp_live_your_key
FEEDPULSE_WORKER_URL=https://feedpulse-workers.tekibohelp.workers.dev/ingestNever use NUXT_PUBLIC_ or NEXT_PUBLIC_ for the FeedPulse API key.
3) Use SDK without exposing key in client
<script setup lang="ts">
import { FeedPulseProvider, FeedPulseWidget } from "@tekibo/feedpulse-sdk/nuxt";
</script>
<template>
<FeedPulseProvider :debug="true">
<NuxtPage />
<FeedPulseWidget position="bottom-right" />
</FeedPulseProvider>
</template>import { FeedPulseProvider, FeedPulseWidget } from "@tekibo/feedpulse-sdk/react";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<FeedPulseProvider debug>
{children}
<FeedPulseWidget position="bottom-right" />
</FeedPulseProvider>
);
}How it works
- Browser sends events to
/api/fp-proxyby default - Your server route injects
FEEDPULSE_API_KEY - Server forwards to FeedPulse worker ingest endpoint
- API key never appears in browser source or client payload
Provider props
proxyEndpoint?: stringdefault/api/fp-proxydebug?: booleanconsentRequired?: booleandefaulttrue
Tracker config
type FeedPulseConfig = {
proxyEndpoint?: string;
batchInterval?: number;
debug?: boolean;
};What is tracked
clickhoverscroll_into_viewfeedbackconsent
Templates included in package
templates/nuxt-proxy.tstemplates/nextjs-proxy.ts
