Optimization & Tips: Maximize Your Stack
Free tier maximization strategies, automation ideas, and common pitfall solutions
Free Tier Maximization Strategies
Gemini API (25 requests/day)
Strategy 1: Batch processing overnight
Schedule AI processing during off-hours to maximize daily quota:
# Process all new papers at 2am
0 2 * * * ~/scripts/batch-summarize-zotero.shStrategy 2: Prioritize by importance
Reserve API calls for complex papers requiring deep analysis:
- Use Gemini for complex papers (reviews, methodological studies)
- Skim simpler papers manually
- Process urgent papers first, queue others for batch processing
Strategy 3: Get student access
Academic programs offer enhanced quotas:
- GitHub Student Pack = unlimited until June 2026
- Academic Program = enhanced limits (apply at ai.google.dev/academic)
- University partnerships may provide additional credits
Zotero Storage (300MB free)
Strategy 1: Local storage + cloud sync
Keep PDFs locally and sync metadata only:
# In Zotero Settings
Settings → Sync → ✗ Sync attachment filesThis keeps references synced while PDFs stay local, bypassing storage limits.
Strategy 2: WebDAV alternatives
Free WebDAV providers for Zotero storage:
- Koofr: 10GB free
- InfiniCloud: 20GB free with .edu email
- pCloud: 10GB free (upgradeable)
Strategy 3: University OneDrive
Many universities offer unlimited OneDrive storage. Use WebDAV bridge for Zotero sync:
# Configure WebDAV in Zotero
Settings → Sync → File Syncing → WebDAV
URL: https://your-university.sharepoint.com/webdavObsidian Sync (Not Required)
Official Obsidian Sync is $8/month, but multiple free alternatives exist:
Best for: Version control and academic workflows
cd ~/ResearchVault
git init
git add .
git commit -m "Initial research vault"
gh repo create research-vault --private
git pushBenefits:
- Unlimited private repos
- Full version history
- Cross-platform sync
- Backup included
Setup: Install GitHub CLI and authenticate
Best for: Simple automatic sync
Storage: 2GB free
Setup:
- Install Dropbox client
- Move vault to Dropbox folder
- Create symlink:
ln -s ~/Dropbox/ResearchVault ~/ResearchVault
Benefits: Automatic, no manual commits
Best for: Large storage needs
Storage: 15GB free (shared with Gmail)
Setup:
- Install Google Drive desktop app
- Move vault to Google Drive folder
- Create symlink:
ln -s ~/GoogleDrive/ResearchVault ~/ResearchVault
Benefits: Generous storage, familiar interface
Best for: Privacy-conscious researchers
Storage: Unlimited (peer-to-peer)
Setup:
- Install Syncthing on all devices
- Share vault folder between devices
- No cloud servers involved
Benefits: Open-source, unlimited, private, no third-party servers
Recommended: Git for version control. Research vaults benefit from version history. Track changes to notes, restore previous versions, and maintain academic integrity with timestamped commits.
Automation Ideas
Daily Research Dashboard
Create Templates/daily-note.md in Obsidian:
---
date: {{date:YYYY-MM-DD}}
---
# Research Log: {{date:MMMM DD, YYYY}}
## Papers Read Today
```dataview
LIST
FROM "Literature Notes"
WHERE created = date({{date:YYYY-MM-DD}})AI Summaries Generated
[Auto-count from batch script log]
Ideas & Insights
Tomorrow's Priorities
- [ ]
**Usage**: Press `Ctrl+T` (or `Cmd+T`) daily to create tracking log from template.
### Weekly Literature Digest
Create `~/scripts/weekly-digest.sh`:
```bash
#!/bin/bash
CURRENT_WEEK=$(date +%Y-W%U)
gemini << EOF > ~/Obsidian/Digests/$CURRENT_WEEK-digest.md
Create a weekly research digest from these papers:
$(find ~/Obsidian/Literature\ Notes -mtime -7 -name "*.md" -exec cat {} \;)
Format:
# Week of $(date +%B\ %d,\ %Y)
## Key Themes This Week
## Important Findings
## Papers to Prioritize (top 3)
## Connections to My Research
EOFMake executable:
chmod +x ~/scripts/weekly-digest.shAdd to cron for automatic weekly digests:
# Run every Monday at 9am
0 9 * * 1 ~/scripts/weekly-digest.shAutomated Citation Export
Keep BibTeX library always current:
# ~/scripts/export-citations.sh
#!/bin/bash
# Export from Zotero via Better BibTeX
# Assumes Better BibTeX auto-export is configured
# Verify export is recent (less than 24 hours old)
if [ $(find ~/Documents/library.bib -mtime -1) ]; then
echo "Citations up to date"
else
echo "WARNING: library.bib is stale. Re-export from Zotero."
fiAdd to pre-commit hook for writing projects:
#!/bin/bash
# .git/hooks/pre-commit
~/scripts/export-citations.shCommon Pitfalls (and Solutions)
Pitfall 1: Over-reliance on AI
Problem: Using AI summaries without reading original papers leads to misinterpretation and citation errors. AI models may miss methodological nuances, misrepresent findings, or hallucinate details not present in the source.
Solution: Use AI for acceleration, not replacement. Always verify key claims against original text. Read methodology sections yourself as AI often misses nuance. Mark all AI-generated content for manual review before citing in publications.
Pitfall 2: Citation Errors
Problem: Pandoc generates incorrect citations or missing references
Solution: Verify Better BibTeX export is current
# Check when library.bib was last updated
ls -l ~/Documents/library.bib
# If stale, re-export from Zotero
# In Zotero: Right-click library → Export Collection
# Format: Better BibTeX
# ✓ Keep updatedPrevention: Enable automatic export in Better BibTeX settings:
Zotero → Preferences → Better BibTeX → Automatic Export
→ Add path: ~/Documents/library.bib
→ On ChangePitfall 3: Sync Conflicts
Problem: Obsidian vault conflicts across devices cause data loss and duplicated notes. Common when using multiple sync methods simultaneously or editing on multiple devices without proper pull/push workflow.
Solution: Choose ONE sync method (Git OR Dropbox, not both). Always pull before editing with git pull. Use .gitignore for workspace files to prevent conflicts on device-specific settings.
Recommended .gitignore for Obsidian vaults:
.obsidian/workspace
.obsidian/workspace.json
.obsidian/cache
.trash/Git workflow for multi-device editing:
# Before editing
git pull
# After editing
git add .
git commit -m "Add notes on [topic]"
git pushPitfall 4: Script Permissions
Problem: "Permission denied" when running automation scripts
Solution: Make scripts executable
chmod +x ~/scripts/*.shVerify permissions:
ls -l ~/scripts/
# Should show: -rwxr-xr-x (executable flag set)Pitfall 5: API Rate Limiting
Problem: Exceeding Gemini API daily quotas during intensive research sessions
Solution: Implement request tracking and quota management
# ~/scripts/check-quota.sh
#!/bin/bash
QUOTA_FILE=~/.gemini-quota
TODAY=$(date +%Y-%m-%d)
# Initialize quota file if doesn't exist
if [ ! -f $QUOTA_FILE ] || [ "$(head -n1 $QUOTA_FILE)" != "$TODAY" ]; then
echo "$TODAY" > $QUOTA_FILE
echo "0" >> $QUOTA_FILE
fi
# Read current count
COUNT=$(sed -n '2p' $QUOTA_FILE)
if [ $COUNT -ge 25 ]; then
echo "ERROR: Daily quota exceeded ($COUNT/25)"
exit 1
else
echo "Quota remaining: $((25 - COUNT))/25"
fiIntegration with batch script:
# Check quota before processing
if ! ~/scripts/check-quota.sh; then
echo "Skipping batch processing - quota exhausted"
exit 0
fi
# Increment counter after successful request
COUNT=$(sed -n '2p' ~/.gemini-quota)
echo "$(head -n1 ~/.gemini-quota)" > ~/.gemini-quota
echo "$((COUNT + 1))" >> ~/.gemini-quotaPerformance Tips
Obsidian Performance
For large vaults (1000+ notes):
Disable resource-intensive features:
Settings → Files & Links:
✗ Automatically update internal links
✗ Detect all file extensions
Settings → Core Plugins:
✗ Backlinks (if not used)
✗ Outgoing links (if not used)Use .obsidian/app.json for advanced settings:
{
"alwaysUpdateLinks": false,
"strictLineBreaks": true,
"foldHeading": true,
"foldIndent": true
}Zotero Performance
For large libraries (5000+ items):
Enable database optimization:
# In Zotero
Tools → Preferences → Advanced → Files and Folders
→ Database Maintenance → Optimize DatabaseDisable automatic PDF indexing for faster startup:
Settings → Search:
✗ Index PDFsIndex selectively using right-click → "Reindex Item" on important papers only.
Next Steps
With optimization strategies in place, the toolkit is production-ready. Recommended next actions:
Test automation scripts
Run weekly digest and batch processing scripts manually to verify functionality before scheduling.
Set up monitoring
Create dashboard to track API usage, storage consumption, and sync status.
Document your workflow
Create personal runbook in Obsidian documenting custom modifications and troubleshooting steps.
Continue to: 08-advanced-techniques.mdx for power user features and integrations.