From 16b1cde8ea4e734e5c38456c3a6506bbe233bd6d Mon Sep 17 00:00:00 2001 From: cameronapak Date: Sun, 25 Jan 2026 13:58:43 -0600 Subject: [PATCH 1/4] Docs: Add beta warning callout to start page --- docs/content/docs/(documentation)/start.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/content/docs/(documentation)/start.mdx b/docs/content/docs/(documentation)/start.mdx index 86ca8ce..7496236 100644 --- a/docs/content/docs/(documentation)/start.mdx +++ b/docs/content/docs/(documentation)/start.mdx @@ -8,6 +8,10 @@ import { Icon } from "@iconify/react"; import { examples } from "@/app/_components/StackBlitz"; import { SquareMousePointer, Code, Blend } from 'lucide-react'; + + We're making great progress towards v1, but don't recommend production use yet. + Follow along for updates on [GitHub Releases](https://github.com/bknd-io/bknd/releases) and in our [Discord community](https://discord.gg/952SFk8Tb8) + Glad you're here! **bknd** is a lightweight, infrastructure agnostic and feature-rich backend that runs in any JavaScript environment. @@ -188,4 +192,4 @@ The following databases are currently supported. Request a new integration if yo }> Configure your backend visually while in development, use a read-only configuration in production. - \ No newline at end of file + From 348ac7f8b0ea43244b06756665000a87570a77a0 Mon Sep 17 00:00:00 2001 From: cameronapak Date: Sun, 25 Jan 2026 15:20:20 -0600 Subject: [PATCH 2/4] Docs: Refactor start page for clarity and flow --- docs/content/docs/(documentation)/start.mdx | 99 ++++++++++++--------- 1 file changed, 57 insertions(+), 42 deletions(-) diff --git a/docs/content/docs/(documentation)/start.mdx b/docs/content/docs/(documentation)/start.mdx index 7496236..e79ed14 100644 --- a/docs/content/docs/(documentation)/start.mdx +++ b/docs/content/docs/(documentation)/start.mdx @@ -13,35 +13,19 @@ import { SquareMousePointer, Code, Blend } from 'lucide-react'; Follow along for updates on [GitHub Releases](https://github.com/bknd-io/bknd/releases) and in our [Discord community](https://discord.gg/952SFk8Tb8) -Glad you're here! **bknd** is a lightweight, infrastructure agnostic and feature-rich backend that runs in any JavaScript environment. +Welcome! bknd is the instant backend for your frontend with full REST API's, admin dashboard, auth and user management, file upload management, [type-safe SDK](/usage/sdk), [React hooks](/usage/react), and plugins to extend the bknd _(like our resend plugin for sending emails)_. bknd can be hosted with your server-side rendered (SSR) web app or hosted as a standalone app. -- Instant backend with full REST API -- Built on Web Standards for maximum compatibility -- Multiple ready-made [integrations](/integration/introduction) (standalone, runtime, framework) -- Official [API SDK](/usage/sdk) and [React SDK](/usage/react) with type-safety -- [React elements](/usage/elements) for auto-configured authentication and media components -- Built-in [MCP server](/usage/mcp/overview) for controlling your backend -- Multiple run [modes](/usage/introduction#modes) (ui-only, code-only, hybrid) +bknd is incredibly lightweight and built upon Web Standards, so that you can bring bknd anywhere JavaScript runs. -## Preview +Bring your [favorite frontend](./#start-with-a-frameworkruntime) and [favorite SQL database](./#use-your-favorite-sql-database), and we'll bring the bknd. -Here is a preview of **bknd** in StackBlitz: +## Quickstart: bknd server and admin dashboard demo - - - - - The example shown is starting a [node server](/integration/node) using an [in-memory database](/usage/database#sqlite-in-memory). To ensure there are a few entities defined, it is using an [initial structure](/usage/database#initial-structure) using the prototype methods. Furthermore it uses the [seed option](/usage/database#seeding-the-database) to seed some data in the structure created. + +Don't worry about messing anything up in this stage since you're learning the ropes of bknd. If you want to start over, please delete the generated `data.db` database file and follow this tutorial again. + - To ensure there are users defined on first boot, it hooks into the `App.Events.AppFirstBoot` event to create them (documentation pending). - - - - - -## Quickstart - -Enter the following command to spin up an instance: +Enter the following command to spin up a bknd instance via the [bknd CLI](/usage/cli): @@ -55,7 +39,54 @@ bunx bknd run -To learn more about the CLI, check out the [Using the CLI](/usage/cli) guide. +This will create a local `data.db` SQLite database file in the folder you ran the command and start the bknd web server at http://localhost:1337. + +Right now the admin dashboard is not locked down (AKA "guarded"), which means anyone who can access your dashboard will be able to update the configuration and change data in your entities. To prevent unauthorized use, let's put a guard on your bknd instance. + +We will create a user and an admin role. We will then apply the admin role to the user. Then, we can lock down the admin dashboard by enabling the guard, securing access to your bknd app. Let's begin. + +1. Visit http://localhost:1337/auth/settings. Toggle "Authentication Enabled" to enable auth. Select "Update" to save. +2. Visit http://localhost:1337/data/entity/users. Create a user by selecting "New User" and entering an email and password. +3. Visit http://localhost:1337/auth/roles. Create an admin role by selecting "Create new". Name it "Admin" and select "Create". Then, scroll to the bottom of the page and enable "Implicit allow missing permissions?". Select "Update" to save. +4. Visit http://localhost:1337/data/entity/users. Select on your newly created user, select the "Admin" role, and select "Update". +5. It's time to guard your admin dashboard. Visit http://localhost:1337/settings/auth. Select "Edit". Scroll to "Guard" and enable it. Then, select "Save". _(This should log you out!)_ +6. Now, log in to your secured admin dashboard at http://localhost:1337/auth/login. + +You did it! 🥳 You've successfully started the bknd server and admin dashboard, created an admin user, and protected your bknd app by enabling the guard. + +What you've just experienced is called UI-only mode, where the bknd data and configuration is managed via the admin dashboard UI. Some may prefer the UI-only mode, while others may prefer the code-only mode. + +### bknd modes + +bknd supports multiple modes to suit your needs. + + + }> + Configure your backend and manage your data visually with the built-in Admin UI. + + }> + Configure your backend programmatically with a Drizzle-like API, manage your data with the Admin UI. + + }> + Configure your backend visually while in development, use a read-only configuration in production. + + + +### Demo bknd in the browser + +Here is a preview of bknd in StackBlitz: + + + + + + The example shown is starting a [node server](/integration/node) using an [in-memory database](/usage/database#sqlite-in-memory). To ensure there are a few entities defined, it is using an [initial structure](/usage/database#initial-structure) using the prototype methods. Furthermore it uses the [seed option](/usage/database#seeding-the-database) to seed some data in the structure created. + + To ensure there are users defined on first boot, it hooks into the `App.Events.AppFirstBoot` event to create them (documentation pending). + + + + ## Start with a Framework/Runtime @@ -120,7 +151,7 @@ Start by using the integration guide for these popular frameworks/runtimes. Ther /> } + icon={} title="Vite" href="/integration/vite" /> @@ -177,19 +208,3 @@ The following databases are currently supported. Request a new integration if yo Create a new issue to request a new database integration. - -## Choose a mode - -**bknd** supports multiple modes to suit your needs. - - - }> - Configure your backend and manage your data visually with the built-in Admin UI. - - }> - Configure your backend programmatically with a Drizzle-like API, manage your data with the Admin UI. - - }> - Configure your backend visually while in development, use a read-only configuration in production. - - From 833bfa50490a9a29d6f71fb66c7ab7fb0c81a837 Mon Sep 17 00:00:00 2001 From: Cameron Pak Date: Fri, 30 Jan 2026 03:28:12 -0600 Subject: [PATCH 3/4] Docs: Enhance the pun https://github.com/bknd-io/bknd/pull/343#discussion_r2743055999 --- docs/content/docs/(documentation)/start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/docs/(documentation)/start.mdx b/docs/content/docs/(documentation)/start.mdx index e79ed14..5d49deb 100644 --- a/docs/content/docs/(documentation)/start.mdx +++ b/docs/content/docs/(documentation)/start.mdx @@ -17,7 +17,7 @@ Welcome! bknd is the instant backend for your frontend with full REST API's, adm bknd is incredibly lightweight and built upon Web Standards, so that you can bring bknd anywhere JavaScript runs. -Bring your [favorite frontend](./#start-with-a-frameworkruntime) and [favorite SQL database](./#use-your-favorite-sql-database), and we'll bring the bknd. +Bring your [favorite frontend](./#start-with-a-frameworkruntime) and [favorite SQL database](./#use-your-favorite-sql-database), and we'll bring the ~~backend~~ bknd. ## Quickstart: bknd server and admin dashboard demo From 53f8609e9db9d3629844a9bec5cf4e35e813f217 Mon Sep 17 00:00:00 2001 From: Cameron Pak Date: Fri, 30 Jan 2026 03:39:53 -0600 Subject: [PATCH 4/4] Docs: updating copy to reflect bknd's open opt-in philosophy --- docs/content/docs/(documentation)/start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/docs/(documentation)/start.mdx b/docs/content/docs/(documentation)/start.mdx index 5d49deb..2b8e855 100644 --- a/docs/content/docs/(documentation)/start.mdx +++ b/docs/content/docs/(documentation)/start.mdx @@ -41,7 +41,7 @@ bunx bknd run This will create a local `data.db` SQLite database file in the folder you ran the command and start the bknd web server at http://localhost:1337. -Right now the admin dashboard is not locked down (AKA "guarded"), which means anyone who can access your dashboard will be able to update the configuration and change data in your entities. To prevent unauthorized use, let's put a guard on your bknd instance. +By default, access to the admin dashboard is open and not guarded. This is intentional because bknd uses an opt-in philosophy model to allow for quick prototyping and intentional configuration. To restrict access and prevent unauthorized use, let's enable authentication and guard the dashboard. We will create a user and an admin role. We will then apply the admin role to the user. Then, we can lock down the admin dashboard by enabling the guard, securing access to your bknd app. Let's begin.