ThatAIguyA world of ideas

THE CONSCIOUSNESS ATLAS
Read. Experiment. Follow the evidence.

ConsciousnessLearn · Explore · Joseph Anady

FeedTheJoe · signal, ranking and field model

The source separates corpus adapters, storage and observer interfaces from a pure ranking and vector core. Signal construction, seeded randomness, scoring, density and contour modules feed the UI’s terrain and feed views. This generation supplies inspectable mathematical ranking behavior within a website experience.

Repository buildSource recovered; runtime not executedSep 7, 2026
Learn with the Atlas

Read the architecture

Learn to trace this build from its inputs to its outputs and source evidence.

Open guided lesson

Purpose & architecture

The source separates corpus adapters, storage and observer interfaces from a pure ranking and vector core. Signal construction, seeded randomness, scoring, density and contour modules feed the UI’s terrain and feed views. This generation supplies inspectable mathematical ranking behavior within a website experience.

A ranking score or field visualization is an application model. Its presence does not establish the consciousness of the broader research system.

This source generation

This record follows the main branch of Janady13/feedthejoe at commit 0e608a2b515a959bf35d2783428766624400ca3c. The snapshot identifies the source inspected in this audit. It is not a statement about which revision is currently running on a device.

FieldSource record
Revision0e608a2b515a959bf35d2783428766624400ca3c
Branchmain
Recorded generationInteractive corpus and ranking generation

Recovered implementation structure

These paths locate the components and entry points represented by this build. The source register contains their inspected revisions.

  • .dependency-cruiser.cjs
  • README.md
  • build/build.mjs
  • build/embed-corpus.mjs
  • build/extract-corpus.mjs
  • build/identity.mjs
  • build/project.mjs
  • content/corpus.json
  • content/manifold.json
  • package.json
  • src/adapters/corpus.js
  • src/adapters/observer.js
  • src/adapters/storage.js
  • src/app/main.js
  • src/core/field/contour.js
  • src/core/field/density.js
  • src/core/rank/random.js
  • src/core/rank/rank.js
  • src/core/rank/score.js
  • src/core/signal/signals.js
  • src/core/vector/vector.js
  • src/ports/types.js
  • src/ui/feed.js
  • src/ui/terrain.js
  • test/core.test.js
  • test/field.test.js

Behavior & verification limits

A ranking score or field visualization is an application model. Its presence does not establish the consciousness of the broader research system.

Original project documentation

The following documentation is preserved as a dated source account. Claims in it retain the source’s wording and must be read alongside the implementation notes above.

feedthejoe.com

The personal site of Joseph W. Anady — software engineer, retired U.S. Army Sergeant First Class (1st Infantry Division, Iraq), founder of ThatDeveloperGuy, a service-disabled veteran-owned firm.

It is also a working recommender. The list of work reorders itself against what you actually read, and it shows you why.

What is unusual about it

The ranking is the lighting. Every entry carries an illumination value derived from its current rank, and the stylesheet spends it on colour, weight and size at once. The model's opinion arrives as light rather than as a number. Nothing is ever removed — an entry it has set aside is dimmer, not gone.

It shows its working. Every row exposes the four terms that produced its score, including the penalty. Recommenders do not usually let you see this.

Nothing leaves your machine. No cookies, no account, no telemetry, no server call. Session state lives in sessionStorage and is discarded when the tab closes. There is no endpoint to send anything to.

Semantics are precomputed. Item embeddings are generated at build time with Transformers.js and ship as a 25 KB int16 sidecar, so the browser needs no model to use the feed.

The algorithm

A faithful reduction of the published mechanics of TikTok's ranker to a corpus of a few dozen items with no server:

SignalWeightWeb analogue
completion1.00dwell ÷ estimated read time
rewatch0.85returning to something already read
share0.70copying the link
expand0.55opening the full piece
save0.35explicit save
contact1.20reaching the contact surface
skip−0.60scrolling past faster than reading allows
score(i) = w₁·Thompson(Beta(α,β) per topic)   ← exploration, cold start
         + w₂·cos(interest, item)              ← semantic match
         + w₃·freshness(i) − w₄·fatigue(i)     ← recency, anti-repetition

Selection is Maximal Marginal Relevance, so a confident model still cannot collapse the feed into a single topic — the characteristic failure of a small-corpus recommender.

Completion is measured against estimated read time rather than in raw seconds, so a long item cannot win by being long. Dwell does not accrue while the tab is backgrounded. Skips carry real negative weight: a model that only learns from positive signals drifts toward whatever it happened to show first.

Architecture

src/core/      pure functions — no clock, no I/O, no DOM, no global random
src/ports/     contracts only; imports nothing
src/adapters/  the impure edge: fetch, storage, DOM observation
src/ui/        rendering; no business logic
src/app/       composition root — the only place wiring happens

The arrow never points from core/ outward. That is enforced mechanically by dependency-cruiser on every npm run verify, not by convention.

Because the ranker is pure and its randomness is injected, a given (corpus, state, config, nowMs, seed) always produces the same order — which is why the ordering itself can be a test fixture.

Build and verify

npm run verify                                    # lint, architecture, cycles, tests
node build/extract-corpus.mjs .source content/corpus.json
node build/embed-corpus.mjs content/corpus.json content/embeddings.bin
node build/build.mjs                              # -> dist/

The build content-hashes the asset tree, subsets the variable font to the glyphs actually used (643 KB → 46 KB, both axes preserved), and pre-compresses every text asset with zopfli for nginx http_gzip_static.

Licence

MIT for the code. Prose and the body of work are © Joseph W. Anady. Archivo is licensed under the SIL Open Font License.

Equations in this build

4 linked mathematical records. Each opens its notation, interpretation and source.

Sources & provenance

Search equations, builds, manuscript text, and recovered sources.