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.sh

Strategy 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 files

This 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/webdav

Obsidian 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 push

Benefits:

  • 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:

  1. Install Dropbox client
  2. Move vault to Dropbox folder
  3. Create symlink: ln -s ~/Dropbox/ResearchVault ~/ResearchVault

Benefits: Automatic, no manual commits

Best for: Large storage needs

Storage: 15GB free (shared with Gmail)

Setup:

  1. Install Google Drive desktop app
  2. Move vault to Google Drive folder
  3. Create symlink: ln -s ~/GoogleDrive/ResearchVault ~/ResearchVault

Benefits: Generous storage, familiar interface

Best for: Privacy-conscious researchers

Storage: Unlimited (peer-to-peer)

Setup:

  1. Install Syncthing on all devices
  2. Share vault folder between devices
  3. 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
EOF

Make executable:

chmod +x ~/scripts/weekly-digest.sh

Add to cron for automatic weekly digests:

# Run every Monday at 9am
0 9 * * 1 ~/scripts/weekly-digest.sh

Automated 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."
fi

Add to pre-commit hook for writing projects:

#!/bin/bash
# .git/hooks/pre-commit

~/scripts/export-citations.sh

Common 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 updated

Prevention: Enable automatic export in Better BibTeX settings:

Zotero → Preferences → Better BibTeX → Automatic Export
→ Add path: ~/Documents/library.bib
→ On Change

Pitfall 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 push

Pitfall 4: Script Permissions

Problem: "Permission denied" when running automation scripts

Solution: Make scripts executable

chmod +x ~/scripts/*.sh

Verify 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"
fi

Integration 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-quota

Performance 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 Database

Disable automatic PDF indexing for faster startup:

Settings → Search:
✗ Index PDFs

Index 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.