@userboost/sdk
v1.1.10
Published
UserBoost JavaScript SDK for website integration
Readme
@userboost/sdk
UserBoost JavaScript SDK for web browsers and Node.js applications.
Overview
Track user onboarding journeys and identify what helps users reach their "aha moment" in your SaaS application. UserBoost provides analytics specifically designed for onboarding flow optimization.
Installation
NPM/Yarn (Recommended)
npm install @userboost/sdk
# or
yarn add @userboost/sdkCDN (Browser)
<!-- Async loader (recommended) -->
<script async src="https://cdn.userboo.st/js/latest/loader.js"></script>
<!-- Direct inclusion -->
<script src="https://cdn.userboo.st/js/latest/userboost.min.js"></script>Quick Start
Initialize
import { UserBoost } from '@userboost/sdk';
await UserBoost.init({
apiKey: 'ub_your_api_key_here',
debug: process.env.NODE_ENV === 'development',
});Track Events
// User completes onboarding step
UserBoost.event('onboarding_step_completed', {
user: { id: 'user123' },
properties: {
step: 'connect_integrations',
stepNumber: 3,
totalSteps: 5,
timeSpent: 45,
},
});
// User reaches aha moment
UserBoost.event('aha_moment', {
user: { id: 'user123' },
properties: {
trigger: 'first_successful_sync',
timeToAha: 180, // seconds since signup
onboardingCompleted: true,
},
});Identify Users
UserBoost.identify({
id: 'user123',
email: '[email protected]',
traits: {
plan: 'premium',
signupDate: '2024-01-15',
company: 'Acme Corp',
},
});Browser Usage (CDN)
When using the CDN version, UserBoost is available globally:
<script async src="https://cdn.userboo.st/js/latest/loader.js"></script>
<script>
// Initialize when ready
ub('init', { apiKey: 'ub_your_api_key_here' });
// Track events
ub('event', 'user_signed_up', {
user: { id: 'user123' },
properties: { source: 'landing_page' },
});
</script>Node.js Usage
Works seamlessly in Node.js environments:
const { UserBoost } = require('@userboost/sdk');
// Server-side tracking
app.post('/api/onboarding/complete', async (req, res) => {
await UserBoost.event('onboarding_completed', {
user: { id: req.user.id },
properties: {
completionTime: Date.now() - req.user.signupTime,
stepsCompleted: 5,
},
});
res.json({ success: true });
});API Reference
Initialization
UserBoost.init(config: UserBoostConfig): Promise<void>Config Options:
apiKey(required): Your UserBoost API keydebug(optional): Enable debug loggingflushInterval(optional): Auto-flush interval in ms (default: 10000)batchSize(optional): Events per batch (default: 20)maxRetries(optional): Max retry attempts (default: 3)
Event Tracking
UserBoost.event(name: string, data: EventData): Promise<void>User Identification
UserBoost.identify(user: UserData): Promise<void>Utility Methods
UserBoost.flush(): Promise<void> // Force send queued events
UserBoost.reset(): void // Clear user data and queue
UserBoost.debug(enabled: boolean): void // Toggle debug mode
UserBoost.getUser(): UserData | null // Get current user
UserBoost.getQueueLength(): number // Get pending events countEnvironment Support
- ✅ Modern Browsers (ES2018+)
- ✅ Node.js (v16+)
- ✅ TypeScript (Full type definitions)
- ✅ ESM & CommonJS (Universal module support)
- ✅ React/Vue/Angular (Framework agnostic)
Error Handling
try {
await UserBoost.event('user_action', eventData);
} catch (error) {
console.error('UserBoost tracking failed:', error);
// Your app continues normally
}Links
- Documentation: docs.userboo.st
- Dashboard: app.userboo.st
- Support: [email protected]
Other Platforms
- React Native:
@userboost/react-native - Flutter:
userboost_flutter
License
MIT
