Feed Builder

§67 — a builder generated from the capabilities this application registered.

Everything below runs the real @bitfeed/core engine in your browser — no server, no network, no relays. Switching the candidate type swaps the dataset and the application's app.* providers. The engine, the recipe shape, and every portable provider stay identical.

Recipe builder

The controls are generated from the registry, so a game store's builder would expose completely different providers without the builder knowing anything about games.

Sources

Lane shares are relative and normalized, so these need not sum to 100. Mixing is separate from scoring on purpose: a feed that wants 45/30/25 should get it, not hope a global score lands there.

Scoring

Weights are relative too. bitfeed.* providers are portable; app.* ones belong to this application.

Constraints & placement

Viewer preferences

These live in the context, never in the recipe — a recipe is publishable and forkable, and publishing a feed must not publish what you like. Check the exported JSON: they are not in it.

Composed feed

Expand “Why this?” on any item: contributions sum exactly to the score shown, so the explanation is true rather than decorative.

Scores are not in descending order here, and that is correct. With lane mixing on, each lane is ranked internally and then interleaved to hit the shares you set — so a 0.66 from Interests can sit above a 0.79 from Following. Turn off every lane but one to see pure score ranking.

Watch the politics post: it is tagged bitcoin too, and bitcoin's +0.9 outweighs politics' −0.5, so it still appears. That is soft disinterest doing its job — a ranking input, not a mute. Drop a preference to −1 and it becomes a hard exclusion nothing can rescue.

Recipe

Serializable, hashable, signable, forkable. The hash covers the recipe exactly as authored, so it matches what a publisher signed.

Receipt

Enough to audit, debug, and reproduce a run.

Registered capabilities

What this application can offer a recipe. The builder above is generated from exactly this.