{"slug": "show-hn-cloudflarebase-open-source-firebase-alternative-on-cloudflare", "title": "Show HN: Cloudflarebase – open-source Firebase alternative on Cloudflare", "summary": "Cloudflarebase, an open-source Firebase alternative that runs entirely on a user's Cloudflare account, has been released. Each project gets its own Durable Object running Better Auth on embedded SQLite, plus a dashboard with live counters, analytics, an AI copilot, and a generated API reference. Auth is the first primitive, with database, storage, and more to follow.", "body_md": "[ Live demo](https://cloudflarebase.com/dashboard) ·\n\n[Deploy your own](#deploy-your-own)·\n\n[Contributing](/cloudflarebase/cloudflarebase/blob/main/CONTRIBUTING.md)\n\nAn open-source Firebase alternative that runs entirely on your Cloudflare account. Each project gets its own Durable Object running Better Auth on embedded SQLite, plus a dashboard with live counters, analytics, an AI copilot, and a generated API reference.\n\nAuth is the first primitive. Database, storage, and the rest will follow the same shape.\n\n```\ngit clone https://github.com/cloudflarebase/cloudflarebase.git\ncd cloudflarebase\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:5173/dashboard](http://localhost:5173/dashboard). There are no secrets to set up. Local\ndev runs in demo mode, so you get a throwaway project without signing in.\n\nTwo Workers. The agent goes first because the dashboard binds to it by name (Cloudflare's deploy button does one Worker per click).\n\nOr from a clone: `npm run deploy:all`\n\n.\n\nThen open the dashboard and create the first account. That account owns the console and sign-up closes behind it. Your install is private by default.\n\nA deployment trusts its own origin automatically, so sign-in works right\nafter deploy with nothing to configure. If you serve the console from another\ndomain or call the API from other apps, add those origins to\n`TRUSTED_ORIGINS`\n\n(the CSRF allowlist) or per project under Settings.\n\nOptional extras, all off until configured: Google/GitHub sign-in, email\ndelivery, Sentry, and analytics SQL reads (`CF_ACCOUNT_ID`\n\n+\n`CF_ANALYTICS_API_TOKEN`\n\nwith Account Analytics Read).\n\nThe console is optional. The agent is a normal npm package, and the CLI wires it into an existing Worker project:\n\n```\nnpm install -g @cloudflarebase/cli\n\ncloudflarebase init my-backend   # or `cloudflarebase add auth` in an existing project\ncd my-backend\nnpx wrangler login\ncloudflarebase deploy            # sign-in works right away\n```\n\n`add`\n\nmerges the agent's wrangler config into yours without overwriting\nanything you set, exports the Durable Object class from your entrypoint, and\nadds a type assertion so a missing binding fails at compile time with its name.\n\nThe API is Better Auth, so its client works as-is:\n\n``` js\nimport { createAuthClient } from 'better-auth/client';\n\nconst authClient = createAuthClient({\n\tbaseURL: 'https://your-dashboard.workers.dev/api/projects/my-app/auth'\n});\n\nawait authClient.signUp.email({ name, email, password });\n```\n\nBrowsers get a cookie; everything else uses the `set-auth-token`\n\nbearer token.\nAdd your app's origin under the project's Settings tab first. Each project also\nserves an OpenAPI 3.1 document at `/api/projects/<id>/openapi.json`\n\n, rendered\nin the dashboard under API Reference.\n\n```\nnpm run check   # svelte-check\nnpm run lint    # prettier + eslint\nnpm test        # Playwright against real workerd\n```\n\nReport vulnerabilities privately via [SECURITY.md](/cloudflarebase/cloudflarebase/blob/main/SECURITY.md). Keep\n`DEMO_MODE`\n\nunset anywhere real users live.\n\n[Apache-2.0](/cloudflarebase/cloudflarebase/blob/main/LICENSE). Cloudflarebase is an independent project, not\naffiliated with or endorsed by Cloudflare, Inc. See [NOTICE](/cloudflarebase/cloudflarebase/blob/main/NOTICE).", "url": "https://wpnews.pro/news/show-hn-cloudflarebase-open-source-firebase-alternative-on-cloudflare", "canonical_source": "https://github.com/cloudflarebase/cloudflarebase", "published_at": "2026-07-28 23:44:31+00:00", "updated_at": "2026-07-28 23:52:18.450152+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-infrastructure"], "entities": ["Cloudflarebase", "Cloudflare", "Better Auth", "SQLite", "Sentry", "Google", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/show-hn-cloudflarebase-open-source-firebase-alternative-on-cloudflare", "markdown": "https://wpnews.pro/news/show-hn-cloudflarebase-open-source-firebase-alternative-on-cloudflare.md", "text": "https://wpnews.pro/news/show-hn-cloudflarebase-open-source-firebase-alternative-on-cloudflare.txt", "jsonld": "https://wpnews.pro/news/show-hn-cloudflarebase-open-source-firebase-alternative-on-cloudflare.jsonld"}}