Skip to content(if available)orjump to list(if available)

Show HN: Bknd – Firebase alternative that embeds into any React stack

Show HN: Bknd – Firebase alternative that embeds into any React stack

23 comments

·March 25, 2025

I built bknd because I was tired of stitching together auth, file storage, and database APIs every time I started a new project. Existing solutions were either too hard to extend, too basic, or required a separate deployment.

bknd runs directly inside your frontend app — no separate backend required. It works with Next.js, Remix, Astro, React Router. It also runs standalone on Cloudflare Workers, AWS Lambda, Bun, or Node.

It supports Postgres, LibSQL (Turso), D1, SQLite and has adapter-based storage. You get instant APIs, multi-strategy auth, media handling and a built-in Admin UI.

Curious what you’d build with it, feedback welcome!

jfengel

How do authentication and authorization work? Like Firebase?

(I haven't used a system like that. I'm intrigued by the idea of a backend that's just a database but it weirds me out not to have to write a layer that says who can read what. Exposing the database that nakedly feels super dangerous.)

dswbx

Similar to Firebase it's multi-strategy based. You can use a combo of email/password or OAuth/OIDC (internally using https://github.com/panva/oauth4webapi) – currently there are 2 pre-configured (Google, Github), but it's easy to extend, so requests are welcome.

On the Authorization side, you can create roles and attach permissions to it. Those roles then get attached to users.

Claims are transported via JWT, you can configure its lifetime, secret and hashing. Currently it's stateless, meaning the token is not checked in a session store. But if there is demand, I'd prioritize adding this. I'm mainly exactly looking for feedback to prioritize next additions.

Hope this helps.

lelanthran

> (I haven't used a system like that. I'm intrigued by the idea of a backend that's just a database but it weirds me out not to have to write a layer that says who can read what. Exposing the database that nakedly feels super dangerous.)

In my (closed) product that exposes the database to the frontend, the "exposure" part has, effectively, row-level access control.[1]

[1] Also role-based using groups. I additionally mark the read-only queries as read-only and these are executed on a read-only replica.

3np

Sources here if you ae curious: https://github.com/bknd-io/bknd/tree/main/app/src/auth

Core auth feature progress is tracked here: https://github.com/bknd-io/bknd/issues/6

joshuanapoli

Broken (missing) auth is pretty common with Firebase/Supabase. It's a developer mistake that could happen in any kind of back-end, but I think that traditional back-end frameworks usually have better conventions that make the mistake less likely.

Kiro

Yeah, I've never understood this. I can't think of any operation where I wouldn't want some backend logic in between. Firebase rules don't cut it.

dswbx

Since you can embed bknd into any stack, and you can hook into system events, there are plenty of options to customize authorization according to your needs.

CalRobert

It does.. I know postgrest is like this though

e12e

What does this mean?:

> bknd runs directly inside your frontend app — no separate backend required.

> It supports Postgres

How is the postgres credentials kept secret from the client?

abusaidm

I think the project is saying, in cases where you are deploying the Frontend with server side serving, then you can include this. Given projects like NextJS have a server side serving for react server-side-rendering and for APIs this project uses the server side to add additional services as mentioned in the post.

goosejuice

Yeah, the messaging isn't very clear.

dswbx

Yes, I agree, but it's really hard to find the right words. How would you describe it better?

That bknd is "embeddable" doesn't mean it has to. Backends such as Supabase or Firebase run on separate deployments. Especially for Supabase, if you want to self-host it, you run multiple services including your frontend. I tried to express that if you host your app on Vercel, CF, etc. – your backend (excluding database) can be deployed together with it.

Of course you can deploy it separately, e.g. fully on Cloudflare using Workers, D1 and R2.

dswbx

bknd would be the "backend part" of your application, managing the schema, exposing REST APIs to access it, secure it, handling media uploads.

The database (postgres, libsql, d1, etc.) is hosted as usual. Fullstack frameworks like Next.js, Remix, Astro, etc. would run bknd on the server side exclusively.

But I see the issue. I should've written "inside your fullstack app" – my bad!

compootr

> Edge-Optimized

I frequently use pocketbase because I love its extensibility and simplicity. Is this product like pocketbase but you can edge-deploy it? (i.e more infinitely scalable?)

dswbx

Yes, e.g. you can fully host it on Cloudflare using Workers, D1 and R2. There is an example in the repo and CLI starter to get started quickly (`npx bknd create -i cloudflare`)

compootr

cool. may try it out later!

aptj

Can it be used without React? Why make it React-dependent/focused? How's it better than going with synch engines, like eg. Zero? Didn't look at code, sorry, on the go now.

dswbx

Yes it can, a lot of people just choose a React fullstack framework, and it integrates specifically well inside those – so it's just a focus. But it can also be deployed using Docker, Bun, Node or Cloudflare Workers. There's an integrated SDK for TypeScript, but since it's all just REST APIs, it'll work with any stack.

Not familiar with Zero, but it looks interesting, will check it out.

campak

Bknd is great. Thank you for creating this, Dennis!

dswbx

Thanks a lot Cam! :)

mediumsmart

Why so complicated? A torch should suffice for a basic fire.

rizky05

[dead]