Pinned Tweet
Liquid Glass 27 for the web, as React components.
Left is native iOS 27. Right is liquidglass.
npm install @onlymoein/liquidglass
github.com/onlymoein/liquidg…
Your dashboard sends no-cache. Safe at the CDN?
Not quite. Shared caches collapse concurrent identical requests, even on no-cache. Per-user pages need private.
Broken:
Cache-Control: no-cache
Fixed:
Cache-Control: private, no-cache
+ ETag
What does your account page send?
The tempting fix is Vary: Cookie. Don't.
With analytics cookies in the mix it's effectively Vary: *, so nothing hits. Send private instead, or strip cookies at the edge on public paths.
Only part of the page is per-user? Don't make the whole thing private.
The skill splits it: a public shell that can cache, and a private island (client fetch, PPR, 'use cache: private', ESI). It also strips Set-Cookie from the shell.
My homepage budget was 60s. The first caching plan said:
app 60 + edge 60 + SWR 300 = 420s worst case
Tiers stack when each refills from a stale one below. The validator caught it. Fixed: edge 20 + SWR 10 + app 30 = 60s.
Ever added TTLs across tiers?
Why they stack: the edge serves a 60s-stale page, then the app refills from its own 60s-stale copy, then SWR keeps serving after that. Worst case is the sum, not the max.
After the fix the plan validated: 0 errors, 0 warnings.
iOS 27 Liquid Glass, now on the web.
Drag it, tune it, press every control — none of it is a video.
onlymoein.github.io/liquidgl…
npm install @onlymoein/liquidglass
master-cache-skill isn't another tool to learn. It's a plain Agent Skill, so it runs in the agent you already use.
I ran the one-line install: it copied to 17 agents (Cursor, Amp, Antigravity, Cline and 13 more). Claude Code gets it as a plugin.
Which agent do you code in?
Same skill in every agent, so the same checks back it: 36 unit tests, a linter and the plan validator, run in CI on Python 3.9 and 3.13.
The scripts use only the Python standard library. Everything except the optional live header probe runs offline.
Your LLM prompt cache can miss on every request.
It's a byte-exact prefix match. One timestamp, request ID or user name in the system prompt and every request pays full price.
master-cache-skill has your agent move it to the end of the prompt.
What's in your system prompt?
Sneakier breakers: json.dumps without sort_keys=True, per-user tool lists, and switching models mid-chat (caches are model-scoped). Semantic caching comes last on its list, only for public, non-personalized answers.
