## Breadcrumbs

Breadcrumbs are a lightweight way to add context to user activity in a session.

### Basic Breadcrumb Usage

Here's how you add a breadcrumb to the session:

```typescript
import { session } from '@embrace-io/web-sdk';

session.addBreadcrumb('something happened');
```

### Character Limit

Breadcrumb messages must be 256 characters or less.

### Best Practices

#### What to Log as Breadcrumbs

**Good candidates for breadcrumbs:**

- User interactions
- Important application state changes
- Business logic milestones

**Avoid logging as breadcrumbs:**

- Sensitive user data (passwords, personal information)
- High-frequency events (scroll events, timer ticks)
- Large data payloads

#### Breadcrumb Naming Conventions

Use clear, consistent naming for your breadcrumbs:

```typescript
import { session } from '@embrace-io/web-sdk';

// Good: Clear and descriptive

session.addBreadcrumb('User started checkout process');

session.addBreadcrumb('Payment validation failed');

session.addBreadcrumb('Order confirmation displayed');

// Avoid: Vague or inconsistent

session.addBreadcrumb('Something happened');

session.addBreadcrumb('Error');
```

#### Performance Considerations

Breadcrumbs are designed to be lightweight, but consider:

- **Frequency**: Don't add breadcrumbs in tight loops or high-frequency callbacks
- **Content**: Keep messages concise and properties minimal
- **Timing**: Add breadcrumbs at meaningful moments, not every minor state change

### Next Steps

- Learn about [Custom Logging](/content/docs/web/manual-instrumentation/custom-logging/index.html) for more detailed logging
- Explore [Custom Traces](/content/docs/web/manual-instrumentation/custom-traces/index.html) for performance monitoring.
