openjutsu
One-click character swap for videos: an open-source, local Higgsfield Genjutsu alternative built on ComfyUI and MiniMax H3, with FLUX.3 Klein relighting.
The web in one inbox. No algorithm, no ads, no tracking. Free in your browser, encrypted sync included. Unlimited feeds and power tools on the $9/year Supporter plan. Open source.
MediaGitHub @forcingfxOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Privacy-first RSS reader — local-first, encrypted, self-hostable
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A privacy-first RSS reader that runs entirely in your browser. No accounts, no tracking, no analytics — your reading habits stay yours.
Hosted — open my.feedzero.app. Nothing to install.
Run your own — one Docker command:
docker run -p 3000:3000 -v feedzero:/data ghcr.io/forcingfx/feedzero:latest
Open http://localhost:3000. Data persists in the feedzero volume; the image is on GitHub Packages.
Run it on a server with your own domain and automatic HTTPS — see Self-hosting (a Compose stack with Caddy, three commands).
Either self-host path unlocks every Personal feature for free.
FeedZero minimizes server-side data exposure:
| Component | What the server sees |
|---|---|
| Feed fetching | Feed URLs (required for CORS proxy) |
| Cloud sync | Encrypted blob + vault ID (cannot decrypt without your passphrase) |
| Everything else | Nothing — parsing, storage, and rendering happen in-browser |
No telemetry. No analytics. No crash reporting. No third-party tracking.
For the full threat model, cryptographic details, and honest limitations, see docs/architecture.md.
The CORS proxy is a trust point. It must see feed URLs to fetch them. If you don't trust the hosted version, run your own — the entire stack is one binary.
Paste any URL into the "Add feed" input:
https://example.com/feed.xml| Key | Action |
|---|---|
j / k | Next / previous item |
Enter | Open selected item |
Escape | Go back |
Your passphrase never leaves your browser. The server stores only encrypted blobs.
npm install # install dependencies
npm run dev # dev server at http://localhost:3000
npm test # Unit/integration tests (Vitest)
npm run test:watch # Watch mode
npm run test:coverage # Coverage report (90% threshold)
npm run test:e2e # E2E tests (Playwright)
npx tsc --noEmit # Type check
src/
├── core/ # Framework-agnostic business logic
│ ├── feeds/ # Feed fetching, parsing, refresh
│ ├── parser/ # RSS/Atom/JSON Feed parsing
│ ├── storage/ # IndexedDB + encryption
│ ├── sync/ # E2E encrypted cloud sync
│ └── extractor/ # Full-text extraction
├── stores/ # Zustand state management
├── components/ # React UI components
└── pages/ # Route components
See docs/architecture.md for detailed architecture documentation.
FeedZero is built as a sustainable business, not a venture-funded runway. The category around us has gotten brutal — Pocket shut down November 2025, Omnivore November 2024, Tiny Tiny RSS's original maintainer retired the project the same month, Artifact closed January 2024. Each of those services took user data with them.
The structural commitments that keep FeedZero around:
If you're migrating from a product that just shut down, you're welcome here. We'll still be here when the next one does.
Found a vulnerability? See SECURITY.md for reporting guidelines.
See CONTRIBUTING.md for development workflow and guidelines.
AGPL-3.0-or-later. See LICENSE for the full text.
If you run a modified version of FeedZero as a public-facing service, section 13 of the AGPL requires you to offer your users access to the source of that modified version. The default deployment satisfies this out of the box because the source is already public — for any fork, host the diff somewhere your users can reach.