[HN Gopher] Show HN: Bknd - Firebase alternative that embeds int...
___________________________________________________________________
Show HN: Bknd - Firebase alternative that embeds into any React
stack
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!
Author : dswbx
Score : 43 points
Date : 2025-03-25 14:34 UTC (4 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| e12e wrote:
| 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 wrote:
| 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 wrote:
| Yeah, the messaging isn't very clear.
| dswbx wrote:
| 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 wrote:
| 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!
| jfengel wrote:
| 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.)
| 3np wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| It does.. I know postgrest is like this though
| dswbx wrote:
| 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.
| compootr wrote:
| > 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 wrote:
| 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`)
___________________________________________________________________
(page generated 2025-03-29 23:01 UTC)