jeremylongshore/claude-code-plugins-plus-skills
clerk-pack
plugins/saas-packs/clerk-pack/skills/clerk-cost-tuning/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/clerk-pack/skills/clerk-cost-tuning/SKILL.md -a claude-code --skill clerk-cost-tuningInstallation paths:
.claude/skills/clerk-cost-tuning/# Clerk Cost Tuning
## Overview
Understand Clerk pricing and optimize costs for your application.
## Prerequisites
- Clerk account active
- Understanding of MAU (Monthly Active Users)
- Application usage patterns known
## Clerk Pricing Model
### Pricing Tiers (as of 2024)
| Tier | MAU Included | Price | Features |
|------|--------------|-------|----------|
| Free | 10,000 | $0 | Basic auth, 5 social providers |
| Pro | 10,000 | $25/mo | Custom domain, priority support |
| Enterprise | Custom | Custom | SSO, SLA, dedicated support |
### Per-User Pricing (after included MAU)
- Pro: ~$0.02 per MAU above 10,000
### What Counts as MAU?
- Any user who signs in during the month
- Active session = counted
- Multiple sign-ins = counted once
## Cost Optimization Strategies
### Strategy 1: Reduce Unnecessary Sessions
```typescript
// lib/session-optimization.ts
import { auth } from '@clerk/nextjs/server'
// Use session efficiently - avoid creating multiple sessions
export async function getOrCreateSession() {
const { userId, sessionId } = await auth()
// Prefer existing session over creating new ones
if (sessionId) {
return { userId, sessionId, isNew: false }
}
// Only create session when absolutely needed
return { userId, sessionId: null, isNew: true }
}
// Configure session lifetime appropriately
// Clerk Dashboard > Configure > Sessions
// Longer sessions = fewer re-authentications
```
### Strategy 2: Implement Guest Users
```typescript
// lib/guest-users.ts
// Use guest mode for non-essential features to reduce MAU
export function useGuestOrAuth() {
const { userId, isLoaded, isSignedIn } = useUser()
// Allow limited functionality without sign-in
const guestId = useMemo(() => {
if (typeof window === 'undefined') return null
let id = localStorage.getItem('guest_id')
if (!id) {
id = crypto.randomUUID()
localStorage.setItem('guest_id', id)
}
return id
}, [])
return {
userId: isSignedIn ? userId : nu