Bionic Page by svx

A reading instrument for the web

Turn any web page into a bionic reading page.

The extension rewrites the readable text of the page you are on so the leading part of each word carries more weight, giving the eye a fixed anchor per word. Configurable visual anchoring — not a speed-reading claim; peer-reviewed results on bionic emphasis are mixed.

  • No network
  • No account
  • Fully reversible
  • 172 tests

Live specimen · painted by the extension’s own algorithm

Reading is a sequence of small jumps. The eye lands on a word, takes in enough to recognise it, then moves on. A fixation point at the start of a word gives that landing a predictable place.

When the leading letters carry more weight, the rest of the word is easier to infer, and the line keeps its rhythm. The paragraph stops being a wall of identical shapes and becomes a row of anchored ones.

This specimen is not a picture of the effect. It is the effect — the same compiled transform the extension ships, run over these words as the page loaded, and repainted whenever you move the intensity above.

0 words 0 characters emphasized mode · half nothing is sent anywhere

Chrome 116+ · Firefox 140+ · Microsoft Edge · Opera · Arc

Manifest V3 · Zero network · Shadow DOM · SPA & infinite scroll · MIT licensed · 172 tests across 14 files

01Live demo

Run the algorithm, right here

This is the extension’s own transform, compiled into the page. Everything runs offline in your browser — edit the source, switch the mode, move the intensity.

Bionic

0 words 0 characters emphasized mode · half nothing is sent anywhere

02Before / after

The same paragraph, switched on

Drag the divider — or focus it and use the arrow keys — to sweep between the two versions.

The eye lands on a word, takes in enough to recognise it, then moves on to the next one in the line. Give every word a firm opening letter and the whole line quietens down.

03Five reading modes

Each mode anchors a different part of the word

The effect is individual, which is why there is more than one. Every sample below is rendered live by the same algorithm the extension ships.

M1 Classic

Fixation anchors the eye at the start of each word.

Bold a leading share of each word; intensity controls how much.

M2 Half

Fixation anchors the eye at the start of each word.

Bold the first half of each word, the familiar default.

M3 Vowel anchor

Fixation anchors the eye at the start of each word.

Bold up to the first vowel group; suited to many languages.

M4 Low distraction

Fixation anchors the eye at the start of each word.

Bold the prefix and fade the remainder of the word.

M5 Custom rule

Fixation anchors the eye at the start of each word.

Per-length character counts plus a fraction for longer words.

04How it works

One reversible pass, three moves

No servers, no accounts, no permanent changes. The extension reads your page locally and puts every word back exactly as it found it.

Scan

Walks the visible text nodes of the page, skipping scripts, inputs, code, and anything marked off-limits.

Anchor

For every word, the chosen mode bolds its leading letters — a predictable fixation point your eye can land on.

Restore

Toggle off and the original text nodes come back byte-for-byte. A test literally diffs the DOM before and after.

05Controls

Three ways to switch it, one rulebook per site

A shortcut for your hands, a popup for setup, a floating control for the page — and per-site rules so long-form sites get anchoring while everything else stays untouched.

Command it

One keystroke toggles the current page. Everything else is a click away.

Ctrl+ Shift+ Y
  • Shortcut — toggle the page under your cursor, no mouse needed.
  • Popup — pick a mode, set intensity, open the options page.
  • Floating control — a quiet pill on the page for instant tweaks.

Per-site rules

On for the sites you read, off everywhere else. Try the switches — they work.

en.wikipedia.org half · 0.50
developer.mozilla.org classic · 0.40
news.ycombinator.com vowel
github.com off

06Safety

Safe by construction

The rewrite is a local pass over text nodes, gated so it cannot touch the parts of a page that must not change.

What it never touches

  • script, style, code, and pre
  • Form fields, contenteditable, and math
  • SVG, navigation, buttons, and toolbar or menu roles
  • Anything marked data-bionic="off" or aria-hidden="true"

It also skips URLs, email addresses, and long unbroken runs.

What it does handle

  • Single-page apps and infinite scroll, through a MutationObserver
  • Text a framework replaces inside an existing paragraph
  • Text inside open shadow roots (web components)

Turning it off restores the original text nodes exactly; a test compares innerHTML before and after.

07Measured, not estimated

Numbers from the repository

Everything here is counted or measured in the project itself — a check fails the build if the site stops agreeing with the suite.

  • 0tests across 14 files
  • 0e2e checks in real Chrome
  • 0words per second, peak benchmark
  • 0reading modes
  • 0network requests, enforced by test

08Privacy

No network. No analytics. No accounts.

Bionic Page makes no network requests and has no analytics, accounts, or telemetry. Your settings are the only thing stored, and they stay in the browser’s own storage. The rewrite runs entirely on your machine; the <all_urls> host permission exists so page text can be read locally, and nothing is ever uploaded. Removing the extension removes the settings.

09Install

Build it from source

Store listings are pending publication. Both targets build from one source tree.

terminal — bionic-page
$git clone https://github.com/srivtx/bionic-page
$cd bionic-page && bun install
$bun run build
#Chrome/Edge: chrome://extensions → Developer mode → Load unpacked → dist/chrome
#Firefox: about:debugging → This Firefox → Load Temporary Add-on → dist/firefox/manifest.json

Toggle the page you are on with Ctrl/Cmd + Shift + Y, the popup, or the floating control. Requires Chrome 116 or newer, or Firefox 140 or newer.

10FAQ

Honest answers

The honest answer: the research is mixed. Some studies report small gains for some readers; others find no effect. That is exactly why Bionic Page is framed as configurable visual anchoring — a comfortable, predictable fixation point — rather than a speed-reading promise. Try it, tune the intensity, keep it only if it feels better.

No. The extension makes zero network requests and includes no analytics or telemetry. The <all_urls> permission lets it read page text locally so the transform can run; nothing is uploaded, logged, or shared. Your settings live in browser storage and vanish when you uninstall.

It is built for them. A MutationObserver picks up content added by single-page apps and infinite scroll, a sentinel handles text swapped inside existing paragraphs, and open shadow roots are traversed so web components work too. Interactive elements, forms, and code are explicitly skipped.

Three ways: the Ctrl/Cmd + Shift + Y shortcut, the extension popup, or the floating control on the page itself. Per-site rules let you keep it on for long-form reading and off everywhere else. Disabling restores the page’s original text exactly.

No. Bionic Page is an independent, MIT-licensed open-source project by svx. It implements the well-known “bold the leading letters” idea with its own algorithm, five modes, and a safety-first rewrite that leaves pages untouched when switched off.