·4 min read#ideas#personas
Office Hours Are a Queue. Personas Are a CDN.
Every mentor is a single-threaded origin server. There is exactly one of you, you process one conversation at a time, and every request that can't fit in your calendar gets dropped or queued for weeks. We solved this exact problem for web content in 1998. We called it a CDN.
The queue math is brutal
Say you're a founder people actually want advice from. You run office hours: four 30-minute slots a week. That's roughly 100 conversations a year, assuming you never travel, never ship, never get sick. Demand is easily 10x that. So you do what every overloaded origin does: you rate-limit. Warm intros only. "Happy to chat in three weeks." The queue grows, latency climbs, and the people who most need the answer (the ones without the warm intro) time out silently.
Worse, look at what actually flows through the queue. Sit through a year of mentor calls and tag the questions. "How do I price my B2B SaaS in LatAm?" "Should I raise now or wait for the metric?" "How did you structure your first sales hire?" The distribution is heavily repeated. Something like 90% of questions are ones you've answered before, often dozens of times, often in writing. You are re-rendering the same page on every request.
No engineer would tolerate this. Repeated reads with stable answers is the textbook case for a cache.
Edge-cache the mentor
A persona plugin is a cache of a person's judgment, deployed to the edge, where the edge is someone else's terminal.
Concretely, on installs.me: a creator connects their sources (published writing, Google Drive docs, call transcripts, calendar context) and the system synthesizes a Claude Code plugin. The plugin's core surface is skills. Each skill is a SKILL.md with YAML frontmatter (name, description) plus an optional references/ directory holding the dense material: frameworks, past decisions, worked examples in the person's own words. Claude loads a skill on demand when the question matches, so the persona doesn't bloat every context window. It's lazy loading for a human's operating history.
The plugin ships through a marketplace, which is just a marketplace.json served over a URL. One detail that bites people building these by hand: plugin sources fetched over a URL must be git-backed (git-subdir). Relative HTTP paths in marketplace.json fail silently, no error, no plugin. installs.me handles this, but if you're rolling your own, that's the gotcha. Verified on Claude Code CLI 2.1.x.
Installation is two commands, which matters because the whole point of a CDN is that consuming from it is cheaper than hitting origin:
/plugin marketplace add https://installs.me/lautaro
/plugin install lautaro@lautaro-installs
Now the founder in Guadalajara at 11pm asks "how would Lautaro think about my first US enterprise deal" and gets an answer grounded in the actual Sirena playbook, in seconds, without consuming a single minute of origin time.
The mapping holds up under load
| CDN concept | Mentorship equivalent |
|---|---|
| Origin server | The mentor, live, synchronous |
| Edge node | The persona plugin in someone's Claude Code |
| Cache hit | A question the mentor has already answered somewhere |
| Cache miss | A genuinely novel question, escalate to a live call |
| TTL | Advice staleness, "raise now" advice from 2021 has expired |
| Cache invalidation | Re-syncing the plugin from new writing and new calls |
The last two rows are where naive versions of this idea die. Advice has a TTL. A pricing framework from a zero-interest-rate world serves stale data with a straight face. The fix is the same as in infrastructure: invalidation on write. When the creator publishes a new essay or their transcripts start reflecting a changed opinion, the persona re-syncs and the skill's references/ update. A persona built from a one-time export is a cache with no purge mechanism, and everyone who's operated a CDN knows exactly how that story ends.
What origin time becomes
Here's the part people miss: caching doesn't devalue the origin. It makes origin requests more valuable, because only interesting traffic gets through.
When the repeated 90% is served at the edge, the live conversation changes character. Nobody spends the first twenty minutes on context that the plugin already carries. The founder shows up having already asked the persona, having already gotten the standard answer, and the call starts at "here's why the standard answer doesn't fit my case." That's a cache miss. That's the conversation the mentor actually wanted to have, the one where their live attention produces something the cache couldn't.
This is stale-while-revalidate for humans. The persona serves the best cached answer immediately, and the hard cases revalidate against origin. The mentor's four weekly slots stop being a lottery and start being an escalation path.
The uncomfortable implication
If your advice is fully cacheable, you were already a static site. The mentors who lose in this model are the ones whose entire value was availability, being the warm body in the calendar slot repeating a framework someone could have read. The mentors who win are the ones with a real corpus (decisions made, deals done, essays written) and enough novel judgment left over that origin traffic still matters.
Office hours will keep existing. Nobody tore down origin servers when Akamai showed up. But treating a human's accumulated judgment as something that can only be consumed synchronously, one calendar slot at a time, is a choice, and it's now the wrong one. The 90% belongs at the edge. Save the queue for the questions that deserve it.
Install a person
installs.me turns your files, calendar and calls into a Claude Code plugin that thinks like you. Anyone installs it with two commands:
/plugin marketplace add https://installs.me/lautaro
/plugin install lautaro@lautaro-installs