What it does
ByWhom helps readers inspect the credits on an article page. Click the Chrome toolbar button to open a side panel with three separate roles: credited writer, hosting publication, and credited originating publication. Each claim has an evidence view showing the exact visible credit line or metadata value captured from the page. Missing credits stay Unknown, and differing claims stay visible as Conflicting claims.
How it works
The extension reads the current page only after the toolbar action. It checks bounded visible article credit lines and selected metadata, then processes them locally. Readers can also paste explicit credit lines when page reading is unavailable. The animated detective supports a paused animation setting and reduced motion.
How it was built
ByWhom is a Manifest V3 Chrome extension built with JavaScript, HTML, and CSS. It uses activeTab, scripting, and sidePanel permissions. The public MIT-licensed repository includes unpacked installation instructions, scope.md, prd.md, spec.md, and a dated planning history. Node.js and Playwright run the development checks.
Challenges and lessons from testing
Article credits are inconsistent: a byline can include a newsroom affiliation, an illustrator can appear near an author, and metadata can disagree with visible text. Review found two specific gaps: Reported by and Story by labels were not consistently parsed, and separate metadata sources could be joined into a single author claim. The fixes preserve each source while keeping one JSON-LD coauthor array together. Regression tests now cover those cases, and GitHub Actions runs the Node and browser tests on pushes and pull requests.
Demo and limits
The public video shows a real Chrome toolbar click and docked side panel, evidence dialogs, conflicting claims, and the paste fallback on clearly labeled fictional local article pages. ByWhom reports what the page credits; it does not independently establish identity, ownership, accuracy, or the earliest publication. Unsupported credit formats can remain Unknown.
To try it, follow the README to load the extension unpacked in an isolated Chrome profile. The repository contains all source, assets, and test instructions.

Log in or sign up for Devpost to join the conversation.