{"adoption": {"forks": 210, "observed_at": "2026-08-28T04:04:27.368156+00:00", "stars": 1345}, "canonical_url": "https://ross.abutalabs.com/products/bolo-solo", "card": {"archived": false, "artifact_type": "application", "description": "🍍Bolo菠萝博客 专为程序员设计的精致Java博客系统 | 🎸基于Solo深度定制 | ❤️完善文档轻松安装，贴心的技术支持 | 免登录评论 | 邮件/微信提醒 | 自定义图床 | 备案模式 | ✨精致主题持续更新 | 一键备份 | 防火墙 | 评论过滤 | 独立分类 | 文章与GitHub同步 | ✅安装太轻松！支持 Tomcat  Docker   宝塔面板 | 支持Windows  Linux  MacOS  Web容器 | 支持ARM处理器  X86/64处理器 | 🚚支持从Solo轻松迁移", "domain": ["web-development", "cms", "self-hosted", "developer-tools"], "enriched": true, "function": ["web-framework", "markdown", "search-engine", "backup", "documentation"], "health_score": 66, "homepage": "https://demo.stackoverflow.wiki", "language": "Java", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["bolo-blog/bolo-solo"], "name": "bolo-blog/bolo-solo", "platform": ["jvm", "windows", "self-hosted"], "pushed_at": "2025-12-05T05:53:51+00:00", "repo": "bolo-blog/bolo-solo", "stars": 1345, "tags": ["blog-system", "java-blog", "markdown-editor", "comment-system", "solo-fork", "tomcat", "wechat-notifications", "dark-mode", "docker", "linux", "macos", "web-server"], "topics": ["blog", "java", "b3log", "bolo", "solo", "tomcat", "docker", "bolo-solo"], "urls": [], "use_cases": ["self-host a personal programming blog", "java blog system with docker deployment", "blog with markdown editor and code highlighting", "backup blog posts to github automatically", "blog with email comment notifications", "migrate from solo blog", "blog with dark mode themes"], "what_it_is": "Bolo is a Java-based self-hosted blogging system for programmers, deeply customized from the Solo blog platform. It ships with polished themes, a Vditor Markdown editor, comment notifications via email/WeChat, GitHub article backup, and easy deployment via Tomcat, Docker, or BaoTa panel.", "when_to_avoid": ["you prefer Node.js, Python, or static-site generators instead of a Java web application", "you need a headless CMS or API-first blog rather than a full monolithic system", "you want a minimal, lightweight blog without community/QQ-group-oriented support", "you require multi-user or multi-tenant blogging out of the box"], "when_to_choose": ["you want a free, self-hosted Java blog with polished themes and active community support", "you need easy deployment on Tomcat, Docker, or BaoTa panel across Windows/Linux/macOS", "you want built-in comment filtering, firewall, email/WeChat notifications, and GitHub backup without plugins", "you are an existing Solo user looking for a one-click migration path"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bolo-solo", "repo": "bolo-blog/bolo-solo", "role": "main", "score": 59}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "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:04:27.368156+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.368156+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.427127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d069b1a3d00ece1f7e84c03981a9d64613e0ea95b9ae7d6cc1097f9eed7d706f", "fetched_at": "2026-08-28T04:04:27.368156+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bolo-blog/bolo-solo"}, {"content_hash": "2ea3b11166b002d5105dc04b134b72d502d6c4690c4faadbc3556af3e72340c7", "fetched_at": "2026-08-29T12:01:57.501611+00:00", "kind": "homepage", "missing": false, "url": "https://demo.stackoverflow.wiki"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 55, "longevity": 100, "rhythm": 40}, "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": 2470, "days_push": 271, "days_rel": 457, "gap_med": 3, "n_releases_24m": 4}, "score": 59, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}