Skip to content
Interactive demoAPIsCore

External API through a server proxy

Live weather from Open-Meteo, fetched server-side so the third party never sees your visitors.

Built withRoute HandlersOpen-MeteoCache

Before you try it

What it needs

Nothing to configure. It runs the same everywhere.

Mode right now

ReadyThe provider is configured here; nobody has watched the real path succeed on this deployment yet.

A safe failure to try

Look up a city that does not exist: the proxy answers with a readable error, and the browser never saw the upstream key.

Look up a city

Live conditions from Open-Meteo, a free service that needs no API key. Results are cached server-side for 15 minutes.

Try one

Result

The shape below is ours, not Open-Meteo’s. Reshaping upstream responses at the proxy means changing provider later never reaches this component.

Search for a city to fetch live conditions.

What this demonstrates

  • Proxying an upstream API hides keys, origins, and visitor IPs
  • Every async call has four visible states: idle, loading, error, success
  • Timeouts and AbortController so a slow upstream cannot hang the UI
  • Response caching to stay inside a free tier's rate limits

Where the code lives

src/experiments/external-api/demo.tsx

Registered in src/experiments/registry.ts and loaded on demand by loader.tsx.