{"adoption": {"forks": 327, "observed_at": "2026-08-28T04:09:15.779852+00:00", "stars": 5338}, "canonical_url": "https://ross.abutalabs.com/products/rethink-app", "card": {"archived": false, "artifact_type": "application", "description": "DNS over HTTPS / DNS over Tor / DNSCrypt client, WireGuard proxifier, firewall, and connection tracker for Android.", "domain": ["privacy", "security", "networking", "censorship-circumvention", "android-tools", "self-hosted"], "enriched": true, "function": ["vpn", "networking", "privacy", "proxy", "caching", "monitoring"], "health_score": 100, "homepage": "https://rethinkfirewall.com/", "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["celzero/rethink-app"], "name": "celzero/rethink-app", "platform": [], "pushed_at": "2026-08-24T17:44:52+00:00", "repo": "celzero/rethink-app", "stars": 5338, "tags": ["dns-over-https", "dnscrypt", "wireguard", "firewall", "ad-blocking", "blocklists", "split-tunneling", "connection-tracker", "kotlin", "open-source", "android", "mobile"], "topics": ["android-app", "firewall", "android-firewall", "dns-over-https", "internet-freedom", "anti-surveillance", "anti-censorship", "censorship-circumvention", "censorship-resistance", "android-application", "open-source", "privacy-enhancing-technologies", "dnscrypt", "dns", "android", "wireguard"], "urls": [], "use_cases": ["block ads and trackers system-wide on android", "encrypt dns queries to bypass isp surveillance", "circumvent internet censorship on android", "block specific apps from accessing the internet", "route apps through wireguard tunnels with split tunneling", "monitor which apps make network connections", "use dnscrypt or dns over https on android"], "what_it_is": "Rethink DNS + Firewall is an open-source Android app combining an encrypted DNS client (DoH, Oblivious DoH, DoT, DNSCrypt) with blocklists, a per-app firewall, and a WireGuard-based VPN/proxifier with split tunneling. It lets users block ads, trackers, and malware, control app internet access by rules, and route traffic through multiple tunnels.", "when_to_avoid": ["you need a firewall or DNS client on desktop platforms like Windows, macOS, or Linux", "you want a full commercial VPN service with managed servers rather than a client you configure yourself", "your device cannot run a local VPN service (e.g., managed restrictions preventing Android VPN slot usage)"], "when_to_choose": ["you want a free, open-source all-in-one DNS, firewall, and VPN tool on Android", "you need per-app firewall rules based on screen state, metered connection, or app category", "you want to combine multiple WireGuard tunnels with encrypted DNS in one app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rethink-app", "repo": "celzero/rethink-app", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.779852+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:58:50.961531+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0d29052403d7a9cfa2f6065bc19436602b4f69919892ec1bd90b03f1529d3d", "fetched_at": "2026-08-28T04:09:15.779852+00:00", "kind": "readme", "missing": false, "url": "https://github.com/celzero/rethink-app"}, {"content_hash": "5ce8fbe2ea2cd5669a9c82b7779663971261dc399b7580450efa13a2827e2e7e", "fetched_at": "2026-08-29T08:53:20.466592+00:00", "kind": "homepage", "missing": false, "url": "https://rethinkfirewall.com/"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.474039+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com"}, {"content_hash": "2717795661802d18e75ddf9e2d092a92709bfdf0caff84ab31613dd9d4649775", "fetched_at": "2026-08-29T08:53:20.469360+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rethinkdns.com/"}, {"content_hash": "1fe2dea889dcbbf7238220e54019b895282ca3d479bfb026d1979b64ef567295", "fetched_at": "2026-08-29T08:53:20.471386+00:00", "kind": "site_page", "missing": false, "url": "https://rethinkdns.com/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 96}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2277, "days_push": 9, "days_rel": 24, "gap_med": 9.5, "n_releases_24m": 5}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}