{"adoption": {"forks": 1451, "observed_at": "2026-08-28T04:09:00.537134+00:00", "stars": 4821}, "canonical_url": "https://ross.abutalabs.com/products/tale", "card": {"archived": true, "artifact_type": "application", "description": "🦄 Best beautiful java blog, worth a try", "domain": ["web-development", "cms", "self-hosted", "developer-tools"], "enriched": true, "function": ["web-framework", "templating", "markdown", "self-hosted"], "health_score": 10, "homepage": "https://tale.biezhi.me", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["otale/tale"], "name": "otale/tale", "platform": ["jvm", "cross-platform", "self-hosted"], "pushed_at": "2024-04-13T15:45:04+00:00", "repo": "otale/tale", "stars": 4821, "tags": ["blog", "blogging-platform", "blade", "sqlite", "java8", "personal-website"], "topics": ["blade", "tale", "blog", "java-blog", "java8", "sqlite3"], "urls": [], "use_cases": ["self-host a personal blog", "publish markdown articles without a database server", "run a lightweight java blog without tomcat", "start a blog with sqlite embedded storage", "customize blog themes and plugins", "back up blog database and attachments"], "what_it_is": "Tale is a lightweight, self-hosted blogging platform written in Java on the Blade MVC framework, using an embedded SQLite database so it needs no external database or Tomcat. It supports Markdown publishing, multiple themes, plugins, attachments, and database backups.", "when_to_avoid": ["you need a headless or API-first CMS", "you require multi-user or enterprise content management features", "you want a platform with frequent updates and large community activity"], "when_to_choose": ["you want a simple, beautiful self-hosted blog with zero external database dependencies", "you prefer Java and easy deployment as a standalone jar", "you need Markdown publishing with theme and plugin support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tale", "repo": "otale/tale", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "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:00.537134+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.537134+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:18:32.242319+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c597d4755cf1c8062538dac024f0b85c9f16072c28b22769d4d306387f6f749c", "fetched_at": "2026-08-28T04:09:00.537134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/otale/tale"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3477, "days_push": 872, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}