Optimize costs related to Obsidian usage, including Sync subscription ($4/mo personal, $8/mo for 10GB), Publish hosting ($8/mo per site), and third-party plugin API costs. The main cost drivers are: Obsidian Sync storage (1-10GB depending on tier), Publish bandwidth, and external API calls from community plugins (AI assistants, translation services, image hosting).
# Check total vault size
du -sh /path/to/vault/
# Find largest files consuming sync bandwidth
find /path/to/vault/ -type f -exec du -h {} + | sort -rh | head -20
# Count files by type
find /path/to/vault/ -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -10
# .obsidian/sync-exclusions.md - Exclude from Obsidian Sync
# Large binary files that don't need cloud sync
*.pdf
*.mp4
*.zip
attachments/archives/**
node_modules/**
.git/**
# Generated content that can be recreated
.obsidian/plugins/*/data.json # Plugin caches (regenerated on launch)
.trash/** # Deleted files in vault trash
// For plugins that call external APIs (AI assistants, translation, etc.)
// Implement caching to reduce API calls
class PluginCostOptimizer {
// Cache AI responses to avoid re-querying for identical prompts
private responseCache = new Map<string, { result: string; timestamp: number }>();
private cacheTTL = 24 * 60 * 60 * 1000; // 24 hours # 1000: 1 second in ms
async getCachedOrFetch(prompt: string, apiFn: () => Promise<string>): Promise<string> {
const cached = this.responseCache.get(prompt);
if (cached && Date.now() - cached.timestamp < this.cacheTTL) return cached.result;
const result = await apiFn();
this.responseCache.set(prompt, { result, timestamp: Date.now() });
return result;
}
}
# Sync tier decision matrix
personal_4_per_month:
storage: 1GB
best_for: Text-only vaults, <5000 notes # 5000: 5 seconds in ms
tip: Exclude images from sync, use relative links to local folders
standard_8_per_month:
storage: 10GB
best_for: Vaults with images and PDFs
tip: Compress images before adding to vault (tinypng or ImageOptim)
self_hosted_free:
storage: Unlimited
options: [Obsidian Git plugin, Syncthing, iCloud Drive]
tradeoff: Manual setup, no version history UI, but $0/month
If using Obsidian Publish ($8/mo per site), minimize what you publish:
publish: true frontmatter selectively instead of publishing entire folders| Issue | Cause | Solution |
|---|---|---|
| Sync storage full | Large attachments | Exclude binary files from sync, compress images |
| Plugin API costs high | No caching in plugin | Implement response caching or switch to local models |
| Vault backup too large | Accumulated trash | Empty .trash folder, purge version history |
| Publish site slow | Large uncompressed images | Compress images, lazy-load media |
Basic usage: Apply obsidian cost tuning to a standard project setup with default configuration options.
Advanced scenario: Customize obsidian cost tuning for production environments with multiple constraints and team-specific requirements.