Write Wall is a Chrome Extension (Manifest V3) that provides a synced text pad
backed by chrome.storage.sync, so text is shared across the signed-in Chrome
account. The UI is a single page with a textarea and byte counter, and the
extension opens that page when the action icon is clicked.
Write Wall focuses on quick, low-friction note syncing for short text snippets. It is intentionally minimal: no accounts, no cloud backend, and no setup beyond signing in to Chrome.
- Syncs text across devices signed in to the same Chrome account using
chrome.storage.sync - Shows bytes used to help stay within sync quota limits
- Migrates legacy storage key (
text) to the current key (v2) - Runs entirely in-browser, no external services
- The UI lives in
src/html/index.htmlwith logic insrc/main.ts - Text is saved to
chrome.storage.syncunder thev2key - Writes are throttled to respect Chrome sync quotas
- The byte counter uses
chrome.storage.sync.getBytesInUse
- Install dependencies:
pnpm install
- Build in watch mode:
pnpm develop
- Load
dist/as an unpacked extension inchrome://extensions
- Click the extension action icon to open the Write Wall page.
- Type or paste text into the textarea.
- The text syncs across devices signed into the same Chrome account.
- The byte counter shows current sync usage.
- Node.js 22 or 24 (
naveis recommended; see.naverc) - pnpm (use corepack, do not install via
npm)
pnpm develop: Webpack build in watch modepnpm build: Production build +app.zippackagingpnpm lint: Biome checkspnpm lint:fix: Biome auto-fixpnpm type:check: TypeScript type checkpnpm test: Vitest test suitepnpm verify-version: Ensure version parity between package and manifest
src/main.ts: UI logic and storage syncsrc/service_worker.ts: Opens the UI when the action icon is clickedpublic/manifest.json: MV3 manifest copied todist/dist/: Build output (generated)
- Update
package.jsonandpublic/manifest.jsonto the same version. - Verify with:
pnpm verify-version
- Tag the release as
vX.Y.Zand push the tag.
Tag pushes trigger the publish workflow, which builds the extension and uploads
app.zip to the Chrome Web Store (requires repository secrets to be configured).
- Bug reports and feature requests: GitHub Issues
- Contributions: see
CONTRIBUTING.md - Security reports: see
SECURITY.md
This project is licensed under the Creative Commons Attribution-ShareAlike 4.0
International Public License. See LICENSE.
See CHANGELOG.md.