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.
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`)
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!
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.
I think the language probably assumes some knowledge specific to that ecosystem, particularly the more recent trend of server rendering react.
To someone that works with more traditional server rendering frameworks like Rails and Phoenix, embedded to me implies storage will be clientside.
I'm guessing it might makesense to a frontend developer but people like me might be scratching our heads for awhile.
I'm assuming this is an alternative to using nextjs (or whatever flavor) with an orm. There's a lot of word salad in the why? that kind of suggests that. Maybe you can simply compare alternatives?
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.
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.
Not familiar with Zero, but it looks interesting, will check it out.