Anima Cost Tuning
Pricing Context
Anima uses partner-based pricing (not self-service). API access is currently granted to partners with custom agreements. Costs are typically per-generation or per-seat.
Cost Optimization Strategies
| Strategy | Savings | Implementation | |----------|---------|---------------| | Generation cache | 60-80% | Cache results; only regenerate on design change | | Incremental generation | 40-60% | Detect changed components; skip unchanged | | Batch scheduling | 20-30% | Generate during off-peak; avoid real-time | | Output reuse | 30-50% | Generate once, customize programmatically |
Instructions
Step 1: Usage Tracker
// src/cost/usage-tracker.ts
interface GenerationRecord {
timestamp: string;
fileKey: string;
nodeId: string;
cached: boolean;
durationMs: number;
}
class AnimaUsageTracker {
private records: GenerationRecord[] = [];
record(entry: GenerationRecord): void { this.records.push(entry); }
getReport(): { total: number; cached: number; savings: string } {
const total = this.records.length;
const cached = this.records.filter(r => r.cached).length;
return {
total,
cached,
savings: total > 0 ? `${((cached / total) * 100).toFixed(0)}% saved by caching` : 'No data',
};
}
}
Step 2: Smart Generation Policy
// Only generate when:
// 1. Figma file version changed (check via Figma API)
// 2. Cache is expired (>1 hour for active dev, >24h for CI)
// 3. Settings changed (new framework/styling)
// 4. Force flag passed (manual override)
async function shouldGenerate(
fileKey: string,
nodeId: string,
cache: any,
): Promise<boolean> {
// Check cache first
const cached = cache.get(fileKey, nodeId);
if (cached && Date.now() - new Date(cached.generatedAt).getTime() < 3600000) {
console.log('Using cached generation (< 1 hour old)');
return false;
}
return true;
}
Output
- Usage tracking with cache hit rate reporting
- Smart generation policy reducing unnecessary API calls
- Cost savings through caching and incremental updates
Resources
Next Steps
For architecture design, see anima-reference-architecture.