Phone and desktop
Install News from your browser like an app. Swipe through posts on your phone, fly through them with j k o l x on your desktop – and on Android, share any page to News to follow it.
News is a calm RSS reader for your phone and your desktop. No endless scrolling, no algorithm – just your sources and what matters to you. Every new post gets one quick decision: read now, later or not interested. Your devices stay in sync, end-to-end encrypted, no account needed.
Free & open source · installs like an app · works offline
The reader
Most readers pile up unread counters until you give up. News works like a good editor: everything new lands in your inbox, and every post leaves it again – with a decision. Hello, inbox zero.
Fresh posts from all your sources, newest first. Nothing gets marked as read behind your back.
Opens the article and files it under Done. Changed your mind? Undo is one tap away. o
Your reading list – on every device and saved for offline reading, even after the post has left its feed. l
Gone, no guilt. One swipe on your phone, one key on your desktop. x
Other readers call themselves “smart” and let an AI study what you open, skip and save. News doesn’t watch you read. Posts arrive newest first and only move when you decide – nothing gets ranked, summarized or hidden behind your back. Simple rules you can see through, for a simple job: reading your feeds.
No ads, no tracking, no “recommended for you” – just your sources, in one calm place.
Install News from your browser like an app. Swipe through posts on your phone, fly through them with j k o l x on your desktop – and on Android, share any page to News to follow it.
Copy the sync key, paste it on your other device – paired. Feeds, Inbox, reading list and progress are locked up before they leave your device.
Everything lives in your browser. News starts instantly, keeps going in a tunnel and catches up once you are back online.
Follow any website – even one that has never heard of RSS. The built-in Collector finds the new posts anyway.
Coming from another reader? Import your OPML file and all your sources move in. Export is just as easy – no lock-in, ever.
No cookies, no ads, no profiles, no framework. Plain JavaScript (about 50 KB compressed) and self-hosted fonts – plus cookie-free, anonymous visitor counts.
Sync
Your devices share one secret key. You copy it over to your other devices yourself – it never reaches the server. Everything is encrypted on your device first, so the server only ever holds one sealed file it cannot open. No database, no account, no e-mail.
Under the hood · Collector
Most readers give up when a site has no RSS link. News doesn't – thanks to the Collector, a small REST endpoint on the same server. It tries the most precise strategy first, falls back step by step and always returns the same clean JSON. Use it for News, or build your own reader on top.
GET /api/collect?url=https://medium.com/@someone
rule Page URL mapped to the native feed
{
"source": {
"strategy": "rule",
"rule": "medium-user",
"feedUrl": "https://medium.com/feed/@someone"
},
"entries": [ … 10 normalized entries ],
"meta": { "count": 10, "cached": false }
}
GET /api/collect?url=https://example.com/feed.xml
direct URL is a native feed
{
"source": {
"strategy": "direct",
"type": "rss",
"feedUrl": "https://example.com/feed.xml"
},
"entries": [ … 30 normalized entries ],
"meta": { "count": 30, "cached": false }
}
GET /api/collect?url=https://example.com/blog
discovered Feed declared in the HTML
{
"source": {
"strategy": "discovered",
"type": "atom",
"feedUrl": "https://example.com/blog/atom.xml"
},
"entries": [ … 24 normalized entries ],
"meta": { "count": 24, "cached": false }
}
GET /api/collect?url=https://example.com/news
guessed Feed found at a common path
{
"source": {
"strategy": "guessed",
"type": "rss",
"feedUrl": "https://example.com/news/feed"
},
"entries": [ … 20 normalized entries ],
"meta": { "count": 20, "cached": false }
}
GET /api/collect?url=https://example.com/insights
sitemap Entries built from the sitemap
{
"source": {
"strategy": "sitemap",
"type": "sitemap",
"feedUrl": "https://example.com/sitemap.xml"
},
"entries": [ … 50 normalized entries ],
"meta": { "count": 50, "cached": false }
}
GET /api/collect?url=https://example.com/press
html-article Entries extracted from the page
{
"source": {
"strategy": "html-article",
"type": "html",
"feedUrl": null
},
"entries": [ … 12 normalized entries ],
"meta": { "count": 12, "cached": false }
}
GET /api/collect?url=…24 h shared cache per sourceSSRF-safe – private hosts blocked, every redirect re-checkedRate limited per client
Self-host · digital sovereignty
News Reader is open source under the MIT license. Run it for yourself, your team or your whole organisation – on your own infrastructure, under your own domain and brand. No vendor decides where your data lives, what it costs per seat or when the service ends.
A handful of PHP files and a static web app. No database server, no build step, no container.
Colours and fonts live in app/theme.css. Swap the icons and the app name in the manifest – done. Your users see your reader, not ours.
A web server with PHP 8.5+ and HTTPS. The included nginx config serves only the site, the app and the API – everything else stays private.
# get the code
$ git clone https://github.com/kreativ-anders/news-reader.git
# let PHP write the feed cache + sync vaults
$ sudo chown -R www-data: news-reader/var
# make it yours
$ $EDITOR news-reader/app/theme.css
# open https://news.example.com/app/ – done
Requires PHP 8.5+ with dom, libxml, mbstring (curl recommended) and a writable var/. That's it.
Feeds, reading lists and sync data live on servers you control – your data centre, your cloud region, your jurisdiction.
No user accounts, no personal profiles, no database. Sync data is end-to-end encrypted – not even your own admins can read it.
MIT license, OPML in and out, plain PHP. No per-seat fees, no forced upgrades, no roadmap you depend on.
Every line is open for your security review. Internal sources on private hosts can be enabled explicitly in one config setting.
A calm feed reader for your phone and your desktop browser. Every new post lands in your inbox and gets one decision: read now, later or not interested. It installs like an app, works offline and is free and open source.
Right from your browser – no app store, no account. In Chrome, Edge or Samsung Internet, use the “Install News” button on this page. On iPhone and iPad, open News in Safari, tap Share and choose Add to Home Screen. On a Mac, open News in Safari and choose File › Add to Dock. Installed, News gets its own icon and window and works offline.
You don’t have to – News is a web app and updates itself. Whenever you open it or switch back to it, it quietly checks for a new version. When one is ready, News tells you: tap Reload and you are up to date. Under Settings, right below the heading, you can see which version you have.
No account, no ads, no tracking and no algorithm deciding what you see. Your reading progress lives on your devices, sync is end-to-end encrypted, and you can run the whole thing on your own server.
No. There is no AI and no model learning from your reading habits – not on your device and not on the server. News follows a few simple rules: new posts land in your inbox newest first, and only your own decision moves them on. What you see depends on your sources, not on a profile of you.
Your first device creates a random secret key. Other devices join by pasting this sync key under Settings → Sync. From that key, each device derives an access token and an encryption key. The server only ever gets the token and one encrypted file – the key itself never leaves your devices. Under Settings → Paired devices you see every device and can remove one you no longer use; a device not active for over a year is pointed out with a red dot.
No. Feeds, reading list and progress are encrypted on your device (AES-256-GCM) before they are uploaded. The server stores one sealed file for your devices, named after a hash of the access token – no database, nothing readable to leak. Like any website, the web server does see your IP address when you connect.
Then nobody can open your synced data – not even us. That is the price of real end-to-end encryption. Want a backup? Export your feeds as OPML every now and then.
The part of News Reader that fetches your sources. Give it any website or feed address and it finds the new posts – from the site’s feed if there is one, otherwise from its sitemap or the page itself. If a site turns the server away, the app tries to load it straight from your device. Developers can use it directly as a small web API: GET /api/collect?url=….
News can still follow it. The Collector then reads the site’s sitemap or picks the newest posts straight from the page.
Yes – it is MIT-licensed. Colours and fonts live in one theme file, name and icons in the web app manifest. Run it for yourself, your family, your team or your readers, on your own domain.
Yes. You run it on your own infrastructure, so all data stays under your control and within your jurisdiction. There are no user accounts, no personal profiles and no database, sync data is end-to-end encrypted, and the MIT license means no per-seat fees and no dependency on a vendor. Internal sources on private hosts can be allowed explicitly.
PHP 8.5+ with dom, libxml and mbstring (curl recommended), a web server with HTTPS and a writable var/ folder. No database server, no build step, no background workers. An nginx config is included.
Yes. Almost every feed reader can export your subscriptions as an OPML file – import it in News under Feeds and you are done. News exports OPML too, so you are free to leave any time.
Open News in your browser, follow your first website and put it on your phone’s home screen – takes a minute. Or run your own News Reader, for you, your team or your whole organisation.
News Reader is free and stays free. If it is worth something to you: pay what you want.