WebGraphQL lets you request “fetch this page and pull out these fields” through a GraphQL API. Mesh v1 means: a small, invite-only network of known operators running the same stack to share the load and build a shared cache. You can run one-off extractions or bounded crawls, without every person re-scraping the same pages. Higher-risk jobs can be put behind allowlists and human approval.
@fresh only when you want to hit the site again.
A gateway hosts the GraphQL API and serves cached results. When you add @fresh, the gateway announces a signed
job offer to the mesh. A worker runs the job (simple HTTP by default; optional browser adapter for JS-heavy sites), then
publishes signed results back to the gateway, which caches them for later queries.
Runs the GraphQL API and cache. Decides what domains/jobs are allowed.
Runs the executors that fetch pages and extract fields. Can opt into browser support.
Runs an optional verifier process that helps check/confirm results before the gateway accepts them.
Sends GraphQL queries. Benefits from shared caching and safer execution controls.
Use --network-id so your mesh gossip doesn’t mix with anyone else’s.
Use --allowed-peer on gateway/worker/validator so everyone can ignore non-members.
Use --require-offer-approval so risky @fresh jobs require a manual approve/deny step.
POST/submit/cross-origin/browser are off unless explicitly enabled by both job policy and operator policy.
Example: price/availability pages, documentation pages, public directories, changelogs. You get a stable API and a shared cache instead of running custom scraping code in your app.
Split duties: one person runs the gateway API, others run workers/validators. Add approvals for risky jobs. Great for small teams that want to share infra and a cache.