A read-it-later Chrome extension for saving pages and managing reading status.
- Repository: https://github.com/itaober/folio
- Releases: https://github.com/itaober/folio/releases
- Latest Release: https://github.com/itaober/folio/releases/latest
Center split comparison: left = Warm, right = Monochrome.
- Unread-first workflow
- Save pages from popup or context menu
- Status flow:
Unread->Reading->Done - Tag filtering and management
- Inline editing (
title,note,tags) - Search and sorting in options page
- Local backup sync (browser -> local directory)
- English and Simplified Chinese UI
- Download the latest
folio-extension-vX.Y.Z.zipfrom Releases. - Unzip it.
- Open
chrome://extensions. - Enable Developer mode.
- Click Load unpacked and select the folder containing
manifest.json.
pnpm install
pnpm buildThen load dist via Load unpacked.
- Node.js 20+
- pnpm 10+
pnpm install
pnpm dev
pnpm typecheck
pnpm buildWorkflow: .github/workflows/manual-release.yml
Run it from GitHub Actions (Run workflow). It validates the version, updates manifests, builds and packages the extension, generates checksum, pushes tag, and creates a GitHub Release.
Inputs:
version(required): numeric version such as0.2.0draft: create draft releaseprerelease: mark prereleaserelease_notes: optional; empty means auto-generated notes
src/
background/ # service worker logic
popup/ # popup UI
options/ # dashboard/options UI
core/ # store, selectors, repository, sync logic
shared/ # shared styles, i18n, ui components
public/
icons/ # extension icons (png + svg variants)
- React + TypeScript
- Vite + CRXJS plugin
- Tailwind CSS v4
- i18next
- Installing from GitHub Release with Load unpacked requires Chrome Developer mode.
- The extension uses a fixed manifest key to keep extension ID stable across updates.
- Keep the same extension entry and use Reload to preserve
chrome.storage.localdata.


