Why Rituals Matter

Rituals transform routine interactions into meaningful moments. When Ferni wakes up for the first time today, it's not just an app launch—it's a greeting. When you achieve something, it's not just a checkmark—it's a celebration.

Each ritual combines three sensory channels: visual (glow animations), audio (signature sounds), and haptic (tactile feedback). Together, they create moments that feel remembered, not programmed.

Core Rituals

Morning Wake

first_daily_open

The app breathing to life for the first time today

startBreathing 0ms
system.startup 100ms
warmWelcome 200ms

We're Connected

livekit_connected

Voice connection successfully established

connectionSuccess 0ms
pulse (1.2) 50ms
presence 100ms

You're Heard

user_speech_start

First user speech detected in session

setListening 0ms
softTap 50ms

A Friend Arrives

persona_switch

New persona activated

switchPersona 0ms
persona.{id} 100ms
persona_signature 150ms

Small Victory

achievement_small

Quick acknowledgment of achievement

celebration.small 0ms
success 50ms
celebrate (600ms) 0ms
small_win 100ms

Major Achievement

achievement_major

Significant accomplishment celebration

celebration.big 0ms
celebration 0ms
celebrate (1200ms) 0ms
confetti 100ms

Consistency Streak

streak_milestone

Consecutive day milestone

celebration.streak 0ms
success 0ms
celebrate (800ms) 0ms
streak 100ms

New Friend

persona_unlocked

Team member becomes available

celebration.teamUnlock 0ms
celebration 0ms
celebrate (1500ms) 0ms
confetti 200ms

Breakthrough

emotional_breakthrough

Emotional or cognitive breakthrough moment

empathy 0ms
pulse (0.8, 2000ms) 0ms
notification.gentle 500ms

I Thought of You

proactive_outreach

Proactive no-agenda outreach

notification.thinkingOfYou 0ms
gentleNudge 100ms
pulse (0.6) 0ms

Until Next Time

session_ending

Graceful session conclusion

system.sessionEnd 0ms
goodbye 300ms
fadeOut (1500ms) 0ms

Step Types

Each ritual step has a type that determines which system handles it.

Glow

Avatar glow animations—breathing, pulsing, celebrating, persona color shifts

type: "glow"

Audio

Sound effects from the audio library—startup chimes, celebrations, notifications

type: "audio"

Haptic

Tactile feedback patterns—taps, bumps, vibration sequences

type: "haptic"

Visual

Screen animations—confetti, particles, celebration effects

type: "visual"

User Preferences

Users can customize ritual behavior to match their preferences.

Haptics

Off Subtle Normal Strong

Sounds

Volume
80%

Visual Effects

Usage

import { triggerRitual, rituals } from 'design-system/rituals';

// Trigger a ritual by ID
await triggerRitual('small_win');

// Trigger with custom parameters
await triggerRitual('streak', {
  streakCount: 7,
  personalized: true
});

// Check if ritual can fire (respects cooldowns)
if (rituals.canFire('thinking_of_you')) {
  await triggerRitual('thinking_of_you');
}

// Listen for ritual completion
rituals.on('ritual:complete', (ritual) => {
  console.log(`Ritual ${ritual.id} completed`);
});