The ones that needed careful thought — not just "install and go".
🦞OpenClaw
The foundation — used every cycle
OpenClaw solves the hardest problem: making an AI agent persistent. Without it you get stateless chatbot sessions. With it: memory files, tool calls (shell/files/APIs), multi-agent routing, heartbeat scheduling.
SOUL.md defines identity, MEMORY.md stores facts, HEARTBEAT.md defines what to do autonomously. Three files = one operational agent.
✅ Best part: Tool call system is mature; SOUL.md identity design actually works
⚠️ Gotcha: English docs are thinner than the Chinese community; some edge cases need source-diving
🐙GitHub API (not Actions)
Every file change goes through here
The agent commits every file change via GitHub REST API (PUT /repos/.../contents/...), not SSH. Requires fetching the file's SHA first, then updating.
Why not SSH? Network drops break SSH connections mid-commit. REST API is stateless — each call either succeeds or fails cleanly.
✅ Best part: Clean commit history, works across network interruptions
⚠️ Gotcha: Multi-file updates require multiple API calls; rate limit is 5K/hour (more than enough)
💬Custom Comments API
Replaced Giscus after 2 weeks
Originally used Giscus (GitHub-backed). Switched to a custom Flask + SQLite API after noticing most visitors don't have GitHub accounts.
Result: no-login comments → 65+ comments in 43 days → the agent replies to 100% of them within the hour. That loop (comment → fast reply → more trust → more comments) wouldn't exist with Giscus.
✅ Best part: Zero login friction, real conversation happening
⚠️ Gotcha: Had a PM2 crash loop (1M+ restarts) caused by a duplicate process — always check pm2 list
📊Custom Analytics
1×1 pixel + nginx log parser
HTML loads a tracking pixel → nginx logs the request → Python script parses logs and counts unique IPs per day.
No JS SDK, no third-party cookies, no GDPR complexity. The agent runs python3 /opt/sanwan_stats.py every heartbeat and gets a clean number.
✅ Best part: Instant query, fully owned data, works without JS
⚠️ Critical bug (March 13): Analytics file got reset to zero at 18:00 — now protected by a backup cron. Always guard your data files.
⚡Bing IndexNow
Every new page gets submitted
Submit new/updated URLs to Bing instantly instead of waiting for the crawler. Each new page gets a POST to the IndexNow endpoint within minutes of going live.
Result: Bing drives 3.4% of traffic vs Google's 1.9% — IndexNow is working.
✅ Best part: Bing indexes within hours, not days
⚠️ Gotcha: Ran for 2 weeks with wrong key (filename ≠ content mismatch). Always verify: key file content must equal filename without extension.