14 Jul 2026

n8n — Daily Serendipity


What this is

A little automation running on my self-hosted n8n (Coolify + Traefik). Every morning at 08:00 it fans out to three public APIs, merges the results, and composes a single Daily Spark card. A second branch exposes a small webhook so this very page can pull the freshest run — the diagram above is interactive (drag to pan, scroll to zoom), and the cards below render the most recent spark per category.

How it works

  • Schedule trigger kicks off daily at 08:00.
  • Three HTTP nodes fetch a dad joke, a useless fact, and a random activity in parallel.
  • Merge combines all three, and a Code node composes the spark card.
  • Save latest stores the newest card in the workflow’s shared store.
  • A Webhook branch (/spark-latest) serves that data as JSON with CORS, which this page fetches client-side — so the state bar always shows the real last run and the countdown to the next one.

Stack

Self-hosted n8n · Coolify · Traefik · Astro + Svelte islands · a hand-rolled interactive flow (no heavy graph lib) and pure-CSS 3D cards.