Skip to content

Best Practices

Always Call destroy()

typescript
// In your cleanup code
sessions.destroy();

Use autoSave

typescript
const sessions = new NDKSessionManager(ndk, {
    autoSave: true,
    saveDebounceMs: 500
});

Handle No Active Session

typescript
if (!sessions.activeUser) {
    // Show login UI
}

Subscribe to Changes

typescript
const unsubscribe = sessions.subscribe((state) => {
    // Update UI when sessions change
});

Security

typescript
// ⚠️ NEVER commit .ndk-sessions.json to git!
// Add to .gitignore:
// .ndk-sessions.json

// Use environment variables for sensitive keys
const nsec = process.env.NOSTR_NSEC;