Quick Start
Get up and running in 10 minutes
Get Started →SDK Integration
Add tracking to your app
View SDKs →Self-Hosting
Deploy your own instance
Deploy →Quick Start
Self-Host (Recommended)
Full control over your data
Step 1: Clone the Repository
git clone https://github.com/bhed/open-productdrivers.git cd productdrivers pnpm install
Step 2: Set Up Supabase
- Create a new project on supabase.com
- Run migrations:
supabase db push - Deploy Edge Functions:
supabase functions deploy
Step 3: Configure Environment
# apps/dashboard/.env.local NEXT_PUBLIC_SUPABASE_URL=your-project-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
Step 4: Start the Dashboard
cd apps/dashboard pnpm dev
Open http://localhost:3000
SDK Integration
JavaScript / TypeScript (Web)
DownloadInstallation
# Via Command
npm install @productdrivers/sdk-js
# Alternatively Download and extract sdk-js.zip
# Add to your project: import { init, track } from './sdk-js'Basic Usage
import { init, track, identify } from '@productdrivers/sdk-js';
// Initialize (once at app startup)
init({
projectKey: 'YOUR_PROJECT_KEY',
blockPII: true, // Recommended: automatically blocks PII
debug: false,
});
// Track events
track({
event: 'JOURNEY_START',
journey: 'onboarding',
step: 'welcome',
});
track({
event: 'FEATURE_USED',
journey: 'onboarding',
feature: 'create_account',
});
track({
event: 'JOURNEY_SATISFACTION',
journey: 'onboarding',
value: 5, // 1-5 scale, auto-normalized
});
// Identify users (optional)
identify('user-123', {
plan: 'pro',
signupDate: '2025-01-01',
});Flutter (iOS / Android)
DownloadInstallation
# pubspec.yaml
dependencies:
journey_signal:
path: ./packages/sdk-flutter # Local path for nowBasic Usage
import 'package:journey_signal/journey_signal.dart';
// Initialize
await ProductDrivers.init(
'YOUR_PROJECT_KEY',
blockPII: true,
debug: false,
);
// Track events
ProductDrivers.track(
event: 'JOURNEY_START',
journey: 'onboarding',
step: 'welcome',
);
// Identify users
await ProductDrivers.identify('user-123', traits: {
'plan': 'pro',
});Kotlin (Android)
DownloadInstallation
// settings.gradle
include ':sdk-kotlin'
project(':sdk-kotlin').projectDir = file('../packages/sdk-kotlin')
// app/build.gradle
dependencies {
implementation project(':sdk-kotlin')
}Basic Usage
import com.productdrivers.ProductDrivers
// Initialize in Application class
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
ProductDrivers.init(
context = this,
projectKey = "YOUR_PROJECT_KEY",
blockPII = true,
debug = false
)
}
}
// Track events
ProductDrivers.track(
event = "JOURNEY_START",
journey = "onboarding",
step = "welcome"
)
// Identify users
ProductDrivers.identify("user-123", mapOf(
"plan" to "pro"
))Event Types
JOURNEY_START
User begins a journey (e.g., onboarding, checkout)
JOURNEY_STEP
User progresses through a step
FEATURE_USED
User interacts with a feature
JOURNEY_COMPLETE
User successfully completes a journey
JOURNEY_SATISFACTION
User rates their satisfaction (1-5, 0-10, binary, etc.)
Deployment
Dashboard (Vercel)
- Push your code to GitHub
- Import project on vercel.com
- Set environment variables (Supabase URL, keys)
- Deploy!
Edge Functions (Supabase)
# Deploy all functions supabase functions deploy # Or individually supabase functions deploy track supabase functions deploy identify supabase functions deploy gdpr-export supabase functions deploy gdpr-delete supabase functions deploy gdpr-anonymize
aggregate-stats function every hour for dashboard insightsSecurity & Privacy
Domain Restrictions (Web)
In the app, you can whitelist domains that can send events to your project. This is useful to prevent abuse and ensure that only trusted domains can send events to your project.
Mobile Security
Rate limiting, server-side proxy, app attestation
Learn MorePII Blocking
Automatically detect and block personally identifiable information
init({ blockPII: true })GDPR Tools
Export, anonymize, or delete user data via the dashboard
Important Notice
This is open-source software released under the MIT License. By using ProductDrivers, you acknowledge that:
- The software is provided "as is" without warranty of any kind
- You are responsible for your own deployment, security, and data management
- The authors and contributors are not liable for any damages or data loss
- You should thoroughly test the software in your own environment before production use
- You are responsible for ensuring compliance with applicable laws and regulations (GDPR, CCPA, etc.)
For the full license terms, please refer to the MIT License.
Additional Resources
Full Documentation
GitHub Repository
Contributing
Privacy Policy
License (MIT)
Ready to Get Started?
Deploy your own instance or try the hosted demo