Open-source project
nonbili/Nora avatar
nonbili/Nora

Nora: A WebView-Based SNS Browser That Blocks Ads and Isolates Accounts

SNS browser. Facebook, Instagram, Reddit, Threads, X and more in a single app. No ads.

1,088 stars36 forksTypeScriptAGPL-3.0

At a glance

What is it?
Nora wraps Facebook, Instagram, Reddit, Threads, X and more in a single ad-free browser for Android, iOS and desktop. It works by injecting ad-blocking code into WebViews, but its reliance on wrapped websites brings real limitations.
Who is it for?
Adopt Nora if you want a single, ad-free surface for multiple social networks and value per-account cookie isolation, especially on mobile. Avoid it if you need native-feeling clients, offline access, or full platform features that WebViews cannot deliver.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Nora Solves and Who It Serves

Nora addresses a specific annoyance: social networks are ad-heavy and each one demands its own app. The project bundles Facebook, Instagram, Reddit, Threads, X, Bluesky, LinkedIn, TikTok, Tumblr, and VK into one browser. It injects code to block ads, so you get a cleaner reading experience without paying for premium tiers. The target user is someone who wants to check multiple timelines without installing ten separate apps or tolerating promoted posts. It also helps people who want a consistent interface across platforms, since the same WebView approach works on Android, iOS, and desktop. The desktop variant, Nora-Desktop, adds a deck view for multiple timelines, which suggests the project is aimed at heavy social media users, not casual browsers.

The WebView Mechanism and Its Trade-offs

Nora does not build native clients for each network. The README states it wraps SNS websites in an Android WebView and injects code to block ads. That is a simple, low-maintenance architecture: the actual rendering is done by the site's own HTML, and Nora only adds a layer of filtering and UI. The trade-off is immediate. You inherit every limitation of the mobile web versions of these services. Features like push notifications, offline reading, or native share sheets may not work. The sites can also change their markup, which can break Nora's injections. The project's reliance on this mechanism means it is only as stable as the websites it wraps. For a user, this is acceptable if you mostly read and scroll, but it is the wrong tool if you need deep integration with platform-specific features.

Getting It Running: Commands and Distribution

The README gives a short development flow. You need Bun as the package manager. The commands are: bun link, bun install, bun dev, and bun run android. That sequence suggests a typical Bun-based TypeScript project, where bun link sets up local dependencies, bun install fetches packages, bun dev starts a development server or compiler, and bun run android launches the Android build. For end users, the project is distributed through the App Store, Google Play, F-Droid, or as an APK from GitHub releases. The latest release at the time of writing is v0.8.9, dated 2026-08-29. There is no configuration file mentioned in the README, so customization happens through the app's UI, such as the CSS injection feature. If you are a developer, you will need to have Android SDK and Bun installed, but the exact prerequisites are not documented in the provided material.

Feature Set: From Blocklists to Video Downloads

Nora's feature list is concrete and useful. It blocks ads using EasyList and EasyPrivacy, which are well-known filter lists. It supports multiple accounts with separate cookie storage, so you can log into two Instagram accounts without them interfering. It can download images and videos from Facebook, Instagram, TikTok, and X. It also lets you select text, zoom, remove tracking query parameters from URLs, and apply custom CSS. These features are all implemented through WebView injection, which means they work across all supported sites as long as the injection logic matches the site's structure. The video download feature is notable because it is a common pain point on mobile browsers. However, the README does not specify whether downloads work on iOS or only on Android, nor does it explain the file format or resolution. That ambiguity is a gap you should test before relying on it.

Limitations and Failure Modes

The most obvious limitation is that Nora is a browser, not a native client. Social networks often restrict features in mobile web views, and some may even block access entirely if they detect a WebView user agent. The README does not mention any workaround for that. Another failure mode is the blocklist itself. EasyList and EasyPrivacy are aggressive; they can break page layouts or hide legitimate elements. If a site's CSS depends on ad-related containers, the page may render incorrectly. The custom CSS feature can fix some of that, but it requires manual work. Also, the project does not mention any synchronization of cookies or settings across devices. Your accounts and blocklist are local to each install. Finally, the desktop version is a separate repository, so the mobile and desktop experiences may diverge in features and maintenance. The README says Nora-Desktop has a deck view, but it does not say whether all mobile features exist there.

The Alternative: Native Clients or a General Browser

The direct alternative is to use each network's official app or a general-purpose browser with ad-blocking extensions. Native clients offer better performance, background sync, and full feature access, but they bring ads and require multiple installs. A general browser like Firefox or Chrome with uBlock Origin gives you ad-blocking across all sites, but it does not isolate cookies per social account, and it does not offer one-tap video downloads. Nora's differentiator is the per-account cookie storage and the tailored injection for specific sites. If you already use a browser with a good ad-blocker and do not need multi-account isolation, Nora adds little. If you want a dedicated social browser, Nora is a lighter option than running a full browser with extensions, but you lose the flexibility of a general browser.

Maintenance, Licensing, and Upgrade Cost

Nora is licensed under AGPL-3.0, which is a strong copyleft license. If you modify and distribute the app, you must release your source code under the same license. That is a significant consideration for any organization that wants to embed Nora into a commercial product. The project is actively maintained, with three releases in August 2026 (v0.8.7, v0.8.8, v0.8.9), so the update cadence is roughly weekly. That implies ongoing work to keep pace with site changes, which is necessary for a WebView wrapper. The upgrade cost for a user is low: updates come through app stores or APK downloads. For a developer, the cost is in tracking the injection code and blocklist updates. There is no migration guide or changelog in the provided material, so upgrading from an older version may require reading release notes on GitHub. The project also uses Weblate for translations, which suggests a community-driven localization effort that will need periodic updates.

Editorial conclusion

Adopt Nora if you want a single, ad-free surface for multiple social networks and value per-account cookie isolation, especially on mobile. Avoid it if you need native-feeling clients, offline access, or full platform features that WebViews cannot deliver. Before adopting, verify that the sites you use are not blocked by the built-in blocklist, test video downloads on your target platforms, and review the AGPL-3.0 obligations if you plan to distribute a modified build.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes