{"adoption": {"forks": 291, "observed_at": "2026-08-28T04:08:41.909581+00:00", "stars": 4319}, "canonical_url": "https://ross.abutalabs.com/products/briefer", "card": {"archived": false, "artifact_type": "application", "description": "Dashboards and notebooks in a single place. Create powerful and flexible dashboards using code, or build beautiful Notion-like notebooks and share them with your team.", "domain": ["data-visualization", "analytics", "data-science", "self-hosted"], "enriched": true, "function": ["data-visualization", "analytics", "etl", "scheduling", "charts"], "health_score": 41, "homepage": "https://briefer.cloud", "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["briefercloud/briefer"], "name": "briefercloud/briefer", "platform": ["self-hosted", "python"], "pushed_at": "2025-08-07T13:20:05+00:00", "repo": "briefercloud/briefer", "stars": 4319, "tags": ["notebook", "dashboards", "business-intelligence", "sql", "jupyter", "collaboration", "multiplayer", "data-apps", "ai-code-generation", "docker", "web-server", "nodejs"], "topics": ["analytics", "bi", "bigquery", "briefer", "business-intelligence", "businessintelligence", "dashboard", "data-analysis", "data-visualization", "jupyter", "notebook", "postgres", "postgresql", "reporting", "visualization"], "urls": [], "use_cases": ["build dashboards from postgres data", "create sql and python notebooks for data analysis", "share interactive reports with my team", "schedule notebooks to refresh dashboards periodically", "generate sql queries with ai from my database schema", "build data apps with dropdowns and date pickers", "self-hosted alternative to notion for data notebooks"], "what_it_is": "Briefer is a self-hostable web application combining Notion-like notebooks and dashboards for data analysis, supporting Markdown, Python, SQL, and native visualizations. It offers multiplayer editing, scheduled runs, interactive data apps, and AI-assisted code generation connected to databases like PostgreSQL and BigQuery.", "when_to_avoid": ["you need a lightweight embedded charting library", "you require a permissive license (AGPL-3.0)", "you need deep programmatic extensibility beyond notebooks", "you want a fully managed BI suite with enterprise support"], "when_to_choose": ["you want notebooks and dashboards in one collaborative tool", "your team mixes technical and non-technical users", "you need scheduled, self-hosted reporting on postgres or bigquery", "you want AI-assisted query and code generation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/briefer", "repo": "briefercloud/briefer", "role": "main", "score": 38}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "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:08:41.909581+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.909581+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:44.137386+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3d62a296352931ff3d5e68a6c39905851e9ccade3bebc418f138899968dcbe", "fetched_at": "2026-08-28T04:08:41.909581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briefercloud/briefer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 35, "longevity": 51, "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": 723, "days_push": 391, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 38, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}