← Back to the work

MODEL SIGNAL / MODEL COMPARISON

Model Signal

Choose a task. Compare the models. See where the numbers came from.

Open Model Signal ↗
Model Signal showing task rankings, open-weight and proprietary filters, and published score ranges.
The current comparison interface. Open full size ↗

Why I built it

I wanted a clearer way to compare models for the work I was doing. A writing score does not answer a coding question, and a ranking is hard to judge without its source. Model Signal puts the task first and keeps the evidence beside the result.

What it does

Choose a task, filter by model or provider and shortlist up to three models. The comparison keeps published values, score ranges and source links together. A separate library shows public-weight information and benchmark archives.

How the data arrives

I built a daily n8n workflow to collect and publish a saved dataset to Cloudflare KV. Visitors read that saved copy. Opening the site or reloading results does not trigger collection or a paid model call.

Input validation protects the last good publication when an update is malformed. The interface retains each source’s dates and units, so an older benchmark does not look like a newly run test.

IMPLEMENTATION

Built with.

The comparison

Astro serves the page; React and TypeScript handle filters, shortlists and comparison states. Published results come from Arena, HELM and EvalPlus, with model metadata from Hugging Face.

  • Astro
  • React
  • TypeScript
  • n8n
  • Cloudflare KV
  • Zod
n8n
Scheduled collection and publication.
Zod
Validation of incoming datasets.
Cloudflare KV
Saved publications and a bundled fallback for browsing.
Vitest / Playwright
Data checks, interaction tests and responsive layout checks.