Skip to main content

Engagement

Code First

Gamification made simple

Complete gamification infrastructure for user engagement. Define streaks (daily login, weekly activity), leaderboards (global, weekly, segmented), and achievements (standard, hidden, incremental) in your code.

Overview
Pricing
Usage
Docs
Examples
Record Streak Activitystreak.ts
typescript
import { sylphx } from '@sylphx/sdk'

const result = await sylphx.engagement.recordStreakActivity({
  userId: 'user_123',
  streakId: 'daily-login',
})

console.log('Current streak:', result.current)
Define Config (Code First)config.ts
typescript
import { createEngagementConfig, defineStreak, defineLeaderboard, defineAchievement } from '@sylphx/sdk'

export const engagementConfig = createEngagementConfig({
  streaks: [
    defineStreak({
      id: 'daily-login',
      name: 'Daily Login Streak',
      frequency: 'daily',
      gracePeriodHours: 12,
    }),
  ],
  leaderboards: [
    defineLeaderboard({
      id: 'weekly-points',
      name: 'Weekly Points',
      sortDirection: 'desc',
      resetPeriod: 'weekly',
      aggregation: 'sum',
    }),
  ],
  achievements: [
    defineAchievement({
      id: 'first-steps',
      name: 'First Steps',
      description: 'Complete your profile',
      type: 'standard',
      tier: 'bronze',
      points: 10,
    }),
  ],
})
Submit Leaderboard Scoreleaderboard.ts
typescript
// Submit score to leaderboard
await sylphx.engagement.submitScore({
  userId: 'user_123',
  leaderboardId: 'weekly-points',
  value: 100,
})

// Get leaderboard rankings
const rankings = await sylphx.engagement.getLeaderboard({
  leaderboardId: 'weekly-points',
  period: 'current',
  limit: 10,
})
Unlock Achievementachievement.ts
typescript
// Unlock achievement for user
const unlock = await sylphx.engagement.unlockAchievement({
  userId: 'user_123',
  achievementId: 'first-steps',
})

console.log('Points awarded:', unlock.achievement.points)
console.log('Total points:', unlock.totalPoints)

Looking for more examples?

View on GitHub