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.tsxRegistered in src/experiments/registry.ts and loaded on demand by loader.tsx.
Also in APIs