{"adoption": {"forks": 706, "observed_at": "2026-08-28T04:07:18.466116+00:00", "stars": 2762}, "canonical_url": "https://ross.abutalabs.com/products/yaof", "card": {"archived": false, "artifact_type": "infra-config", "description": "OpenWrt for Nanopi R2C/R2S/R4S/X86", "domain": ["self-hosted", "networking", "security", "privacy", "censorship-circumvention", "embedded-systems", "operating-systems", "hardware"], "enriched": true, "function": ["self-hosted", "proxy", "networking", "security", "monitoring", "configuration-management", "deployment", "developer-tools"], "health_score": 99, "homepage": null, "language": "Shell", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["QiuSimons/YAOF"], "name": "QiuSimons/YAOF", "platform": ["embedded", "self-hosted", "cli"], "pushed_at": "2026-08-19T06:10:51+00:00", "repo": "QiuSimons/YAOF", "stars": 2762, "tags": ["openwrt", "nanopi-r2s", "nanopi-r4s", "nanopi-r2c", "firmware-build", "router-firmware", "openclash", "passwall", "ssrp", "mihomo", "mosdns", "bbrv3", "shadowsocks", "x86-router", "opkg", "luci-plugins", "armv8", "rockchip", "prebuilt-images", "devops", "linux", "docker"], "topics": ["openwrt", "r2s", "clash", "shadowsocks", "r4s", "nano-pi", "x86", "r2c"], "urls": [], "use_cases": ["flash a NanoPi R2S or R4S with a ready-made OpenWrt router image", "turn a NanoPi R2C or x86 mini PC into a home router", "run Clash, PassWall, or Shadowsocks proxy clients on an OpenWrt router", "set up DNS-based ad blocking and DNS splitting with MosDNS", "get a preconfigured OpenWrt build with BBRv3, SQM, and network optimization enabled", "download prebuilt OpenWrt firmware images instead of compiling from source", "use a soft router with ZeroTier, FRP, DDNS, and Wake-on-LAN preinstalled"], "what_it_is": "YAOF is a community OpenWrt firmware distribution with prebuilt release images for NanoPi R2C/R2S/R4S and generic x86 hardware, built from upstream OpenWrt with performance tuning and a curated set of LuCI plugins. It bundles proxy and VPN tooling (OpenClash, PassWall, SSRP, Mihomo), DNS routing via MosDNS, and common router utilities like SQM, DDNS, UPnP, ZeroTier, and FRP out of the box.", "when_to_avoid": ["you need Docker support on the router - recent builds dropped it, so stay on the 23.05 branch or another distro", "you need official, vendor-supported OpenWrt with a strict upstream feature set rather than a community fork with extra plugins", "your target device is not NanoPi R2C/R2S/R4S or x86 - there are no images for other boards", "you require commercial use - the project explicitly forbids it", "you want to audit or customize every package yourself; a vanilla OpenWrt build may be cleaner"], "when_to_choose": ["you own a NanoPi R2C/R2S/R4S or want an x86 OpenWrt image and don't want to build OpenWrt yourself", "you want proxy, VPN, and DNS-routing plugins preinstalled and preconfigured on your router", "you want a tuned build with BBRv3, LRNG, hardware AES acceleration for Shadowsocks, and overclocked cores out of the box", "you prefer release images with built-in sysupgrade support and a working physical reset button"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/yaof", "repo": "QiuSimons/YAOF", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "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:07:18.466116+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.466116+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:18:41.758119+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8cd38b28ca4a55cdc44c767af1d8e9de96573d513270a570bc583cbdbf382078", "fetched_at": "2026-08-28T04:07:18.466116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/QiuSimons/YAOF"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 92}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2256, "days_push": 14, "days_rel": 54, "gap_med": 15.5, "n_releases_24m": 19}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}