{"adoption": {"forks": 584, "observed_at": "2026-08-28T04:06:35.023035+00:00", "stars": 2293}, "canonical_url": "https://ross.abutalabs.com/products/blog-vue-springboot", "card": {"archived": false, "artifact_type": "application", "description": "基于Vue+SpringBoot构建的博客项目", "domain": ["web-development", "cms", "backend", "frontend"], "enriched": true, "function": ["web-framework", "auth", "caching", "orm", "templating"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["shimh-develop/blog-vue-springboot"], "name": "shimh-develop/blog-vue-springboot", "platform": ["jvm", "self-hosted"], "pushed_at": "2023-12-16T17:31:03+00:00", "repo": "shimh-develop/blog-vue-springboot", "stars": 2293, "tags": ["blog", "vue", "springboot", "full-stack", "shiro", "redis", "mysql", "element-ui", "web-server", "nodejs"], "topics": [], "urls": [], "use_cases": ["self-host a personal blog with Vue and SpringBoot", "learn how to build a full-stack blog with Vue and SpringBoot", "deploy a blog with article categories, tags, and comments", "study token-based authentication with Shiro and Redis sessions", "run a blog with a separated frontend and REST API backend"], "what_it_is": "A full-stack blog system built with Vue on the frontend and SpringBoot on the backend, featuring articles, categories, tags, archives, comments, and user authentication. It includes an SSR branch and ships with SQL schemas for MySQL plus Redis-backed session storage.", "when_to_avoid": ["you need a maintained project with a license and active updates", "you want a headless CMS or a modern framework like Next.js or Nuxt", "you need features like comment pagination, likes, or third-party login, which are unimplemented"], "when_to_choose": ["you want a ready-made Vue + SpringBoot blog to self-host or study", "you need a Java backend learning project covering auth, caching, and CRUD APIs", "you prefer a classic SPA blog with an optional SSR branch"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/blog-vue-springboot", "repo": "shimh-develop/blog-vue-springboot", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "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:06:35.023035+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:35.023035+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:40:39.175641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69d3fd0ea1e5f60a493f998021a6c8c79eaa2326e1004e74ec5d127e7336c6eb", "fetched_at": "2026-08-28T04:06:35.023035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shimh-develop/blog-vue-springboot"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3164, "days_push": 991, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}