kevinwuwon/columnary

A calm, horizontally scrolling column reader for Chrome.

0

stars

34

commits

TypeScript

primary language

Aug 17, 2026

updated

README

Columnary

Columnary is a personal Chrome extension that turns long articles into a calm, full-height sequence of horizontally scrolling columns.

Development

npm install
npm run build

Then:

  1. Open chrome://extensions.
  2. Enable Developer mode.
  3. Choose Load unpacked.
  4. Select .output/chrome-mv3.
  5. Pin Columnary if you want its action to remain visible.

Click the Columnary action on an article to open or close the reader. Re-run npm run build and reload Columnary from chrome://extensions after changing the source. npm run dev is also available for WXT's development workflow.

  • Scroll horizontally with a trackpad or Shift+wheel.
  • Press F (or use the subtle top-right button) to toggle browser fullscreen.
  • Use the top-right close button, or press Escape (twice after fullscreen), to close Columnary.
  • Open Settings beside fullscreen to adjust text size, weight, line height, and typeface. These preferences sync with your browser profile.
  • Click the bookmark button, then click a space in the article to place a bookmark. Drag the blue rule to move it, or click the rule to remove it. The bookmark syncs and opens at the left side when you read the article again.

Verification

npm run check
npm run test:e2e
npm run zip

Install the Playwright Chromium browser once with npx playwright install chromium before you run the end-to-end test.

The extraction regression fixtures live in tests/fixtures/; see tests/fixtures/README.md to add a representative webpage case.

The unpacked Chrome extension is built to .output/chrome-mv3. The Chrome Web Store package is written to .output/.

Privacy

Extraction and rendering happen entirely in the active tab. Columnary has no developer-operated server, analytics, account, or persistent access to browsing data. Reading preferences and user-created article bookmarks are stored with Chrome's synchronized extension storage and may be synchronized by Chrome when Chrome Sync is enabled.

See PRIVACY.md for the full privacy disclosure and STORE_LISTING.md for release copy and the publishing checklist.

Contributors

KevinWuWon

34 commits

kevinwuwon/columnary

A calm, horizontally scrolling column reader for Chrome.

0

stars

34

commits

TypeScript

primary language

Aug 17, 2026

updated

README

Columnary

Columnary is a personal Chrome extension that turns long articles into a calm, full-height sequence of horizontally scrolling columns.

Development

npm install
npm run build

Then:

  1. Open chrome://extensions.
  2. Enable Developer mode.
  3. Choose Load unpacked.
  4. Select .output/chrome-mv3.
  5. Pin Columnary if you want its action to remain visible.

Click the Columnary action on an article to open or close the reader. Re-run npm run build and reload Columnary from chrome://extensions after changing the source. npm run dev is also available for WXT's development workflow.

  • Scroll horizontally with a trackpad or Shift+wheel.
  • Press F (or use the subtle top-right button) to toggle browser fullscreen.
  • Use the top-right close button, or press Escape (twice after fullscreen), to close Columnary.
  • Open Settings beside fullscreen to adjust text size, weight, line height, and typeface. These preferences sync with your browser profile.
  • Click the bookmark button, then click a space in the article to place a bookmark. Drag the blue rule to move it, or click the rule to remove it. The bookmark syncs and opens at the left side when you read the article again.

Verification

npm run check
npm run test:e2e
npm run zip

Install the Playwright Chromium browser once with npx playwright install chromium before you run the end-to-end test.

The extraction regression fixtures live in tests/fixtures/; see tests/fixtures/README.md to add a representative webpage case.

The unpacked Chrome extension is built to .output/chrome-mv3. The Chrome Web Store package is written to .output/.

Privacy

Extraction and rendering happen entirely in the active tab. Columnary has no developer-operated server, analytics, account, or persistent access to browsing data. Reading preferences and user-created article bookmarks are stored with Chrome's synchronized extension storage and may be synchronized by Chrome when Chrome Sync is enabled.

See PRIVACY.md for the full privacy disclosure and STORE_LISTING.md for release copy and the publishing checklist.

Contributors

KevinWuWon

34 commits

Languages

TypeScript

94.7%

HTML

5.3%