{"adoption": {"forks": 1451, "observed_at": "2026-08-28T04:09:34.773691+00:00", "stars": 6072}, "canonical_url": "https://ross.abutalabs.com/products/austin", "card": {"archived": false, "artifact_type": "service", "description": "消息推送平台🔥 推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。", "domain": ["messaging-platforms", "backend", "developer-tools"], "enriched": true, "function": ["message-queue", "email", "webhook", "workflow-automation", "monitoring", "api-framework"], "health_score": 72, "homepage": "http://106.75.176.183:3001", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ZhongFuCheng3y/austin"], "name": "ZhongFuCheng3y/austin", "platform": ["jvm", "self-hosted"], "pushed_at": "2026-06-10T03:20:29+00:00", "repo": "ZhongFuCheng3y/austin", "stars": 6072, "tags": ["notification-platform", "message-push", "sms", "wechat", "dingtalk", "spring-boot", "unified-messaging", "automation", "docker", "web-server"], "topics": [], "urls": [], "use_cases": ["send sms and email notifications from my application", "unified message push platform for wechat and dingtalk", "self-hosted notification service with multiple channels", "send marketing or alert messages to users at scale", "route notifications to different messaging channels via one api", "java message push system with message queue support"], "what_it_is": "Austin is a unified message push platform written in Java (Spring Boot) that sends notifications across channels such as email, SMS, WeChat service accounts, WeChat mini programs, WeCom, and DingTalk. It provides a self-hosted service with channel routing, templates, and observability built on Kafka/RabbitMQ/RocketMQ, Redis, and Prometheus/Grafana.", "when_to_avoid": ["you only need a single channel like plain email and a lightweight library would suffice", "you are not on the JVM and don't want to operate a Java service with Kafka, Redis, and MySQL dependencies", "you need turnkey SaaS delivery with managed deliverability and compliance"], "when_to_choose": ["you need one unified API to deliver messages across email, SMS, and Chinese messaging platforms like WeCom, WeChat, and DingTalk", "you want a self-hosted alternative to SaaS push services with channel management and templates", "you run a Java/Spring Boot stack and want an extensible notification middleware"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/austin", "repo": "ZhongFuCheng3y/austin", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "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:34.773691+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.773691+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:48:33.866095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f521ade35604b2c22beee358ff49eabc37934d4f670b5691cf106d18beadc27e", "fetched_at": "2026-08-28T04:09:34.773691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZhongFuCheng3y/austin"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1761, "days_push": 84, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}