{"adoption": {"forks": 146, "observed_at": "2026-08-28T04:08:17.672142+00:00", "stars": 3751}, "canonical_url": "https://ross.abutalabs.com/products/bknd", "card": {"archived": false, "artifact_type": "framework", "description": "Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.", "domain": ["web-development", "backend", "apis", "self-hosted", "developer-tools", "cms"], "enriched": true, "function": ["auth", "database", "web-framework", "api-framework", "http-server", "file-upload", "workflow-automation", "mcp", "sdk", "self-hosted"], "health_score": 83, "homepage": "https://bknd.io", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "experimental", "member_repos": ["bknd-io/bknd"], "name": "bknd-io/bknd", "platform": ["bun", "cloud", "self-hosted", "cross-platform", "serverless"], "pushed_at": "2026-04-06T12:59:28+00:00", "repo": "bknd-io/bknd", "stars": 3751, "tags": ["firebase-alternative", "supabase-alternative", "baas", "backend-as-a-service", "embeddable", "web-standards", "sqlite", "postgres", "admin-dashboard", "rest-api", "edge-runtime", "nodejs", "deno", "docker", "web-server", "typescript"], "topics": [], "urls": [], "use_cases": ["replace firebase or supabase with a self-hosted backend", "embed a backend directly into my next.js or astro app", "quickly prototype an app with database, auth, and file uploads", "build a headless CMS as a wordpress alternative", "host an MCP server for AI agent state persistence", "build a multi-tenant SaaS backend with row-level security", "spin up a type-safe REST API without vendor lock-in"], "what_it_is": "bknd is a lightweight, batteries-included backend-as-a-service (Firebase/Supabase alternative) providing data management, authentication, media storage, and workflows with an admin dashboard, REST API, and TypeScript SDK. Built on Web Standards, it embeds into frontend frameworks (Next.js, Astro, React Router) or runs standalone across many runtimes including Node, Bun, Deno, Cloudflare Workers, and AWS Lambda.", "when_to_avoid": ["you need a battle-tested backend for production, since bknd hasn't reached v1.0 and doesn't guarantee backward compatibility", "you require advanced Firebase-specific features like realtime sync or push notifications", "you need a managed service with SLAs rather than self-hosted infrastructure"], "when_to_choose": ["you want a lightweight all-in-one backend that deploys anywhere JavaScript runs", "you need to embed backend functionality inside an existing SSR framework app", "you want to avoid vendor lock-in and bring your own SQLite or Postgres database", "you're prototyping an MVP and need data, auth, media, and workflows out of the box"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bknd", "repo": "bknd-io/bknd", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "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:17.672142+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:17.672142+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:28:59.426733+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87be316a1578887f3f9cc068f4ff1bd4f00d0d517799501cb7523a78af7fbb6d", "fetched_at": "2026-08-28T04:08:17.672142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bknd-io/bknd"}, {"content_hash": "611903c8917b993a5279fc3a074ae3a770d2bd1ef9ac98d6da08a8386b519466", "fetched_at": "2026-08-29T09:23:29.569780+00:00", "kind": "homepage", "missing": false, "url": "https://bknd.io"}, {"content_hash": "5a62aaaec1d19bb474afe883472eb79ea8a95d8d9916df8b9a470856e7fd622c", "fetched_at": "2026-08-29T09:23:29.579350+00:00", "kind": "site_page", "missing": false, "url": "https://docs.bknd.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 76, "longevity": 46, "rhythm": 65}, "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": 655, "days_push": 149, "days_rel": 236, "gap_med": 8.5, "n_releases_24m": 37}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}