{"adoption": {"forks": 310, "observed_at": "2026-08-28T04:08:52.714487+00:00", "stars": 4520}, "canonical_url": "https://ross.abutalabs.com/products/bento", "card": {"archived": false, "artifact_type": "application", "description": "Bento, the office suite that fits in a file", "domain": ["developer-tools", "web-development", "self-hosted", "privacy"], "enriched": true, "function": ["ui-components", "data-visualization", "templating", "developer-tools"], "health_score": 100, "homepage": "https://bento.page", "language": "HTML", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["nyblnet/bento"], "name": "nyblnet/bento", "platform": ["browser", "cross-platform", "self-hosted"], "pushed_at": "2026-08-26T22:45:08+00:00", "repo": "nyblnet/bento", "stars": 4520, "tags": ["presentation-editor", "single-file-app", "powerpoint-alternative", "local-first", "slides", "e2ee-collaboration", "crdt", "html-app", "offline-first", "no-install", "web-server"], "topics": ["mit-license", "office", "office-365", "office-suite", "office-tools", "office365", "open-source", "powerpoint", "self-hosted", "single-page-app", "slides", "slideshare", "slideshow", "slideshow-gallery", "slideshow-maker", "slideshows"], "urls": [], "use_cases": ["create and edit slide presentations in the browser without installing office software", "present slideshows offline from a single portable file", "collaborate on presentations end-to-end encrypted without a cloud account", "send a presentation file that recipients can open and edit with nothing installed", "let AI agents programmatically edit presentation documents as JSON", "archive presentations in a future-proof readable format"], "what_it_is": "Bento is a PowerPoint alternative that ships as a single self-contained HTML file containing the viewer, presenter, and editor alongside the slide data as plain JSON. Decks can be edited, presented, and shared with no installation or account, with optional end-to-end-encrypted collaboration via a blind relay.", "when_to_avoid": ["you need deep compatibility with PowerPoint .pptx files or enterprise office integrations", "you require heavy real-time co-editing at large team scale with centralized access control", "you need advanced features of full office suites like mail merge or extensive add-in ecosystems"], "when_to_choose": ["you want a dependency-free, local-first alternative to PowerPoint or Google Slides", "you need presentations that work offline and never leave your machine", "you value open, plain-JSON document formats with no vendor lock-in", "you want to share a deck as one file that carries its own editor"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bento", "repo": "nyblnet/bento", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "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:52.714487+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.714487+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:17.983759+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dab82e831b533f9321873c67eb6443d0f763b7cf2701b0570eb3431449894020", "fetched_at": "2026-08-28T04:08:52.714487+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nyblnet/bento"}, {"content_hash": "d38613e7ceecb81d275376e8f84581e84d61a54d638a0cd4aec2963a89497aae", "fetched_at": "2026-08-29T09:06:06.728563+00:00", "kind": "homepage", "missing": false, "url": "https://bento.page"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 3, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 47, "days_push": 7, "days_rel": 18, "gap_med": 1.0, "n_releases_24m": 13}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}