mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-16 04:27:21 +00:00
- Updated documentation to include new modes for configuring bknd (UI-only, Code-only, Hybrid). - Introduced `syncSecrets` plugin example in the extending plugins documentation. - Added `react-icons` dependency to package.json and package-lock.json. - Enhanced various documentation pages with icons and improved content structure.
179 lines
5.3 KiB
Plaintext
179 lines
5.3 KiB
Plaintext
---
|
|
title: Introduction
|
|
icon: Album
|
|
tags: ["documentation"]
|
|
---
|
|
|
|
import { Icon } from "@iconify/react";
|
|
import { examples } from "@/app/_components/StackBlitz";
|
|
import { SquareMousePointer, Code, Blend } from 'lucide-react';
|
|
|
|
|
|
Glad you're here! **bknd** is a lightweight, infrastructure agnostic and feature-rich backend that runs in any JavaScript environment.
|
|
|
|
- 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)
|
|
|
|
## Preview
|
|
|
|
Here is a preview of **bknd** in StackBlitz:
|
|
|
|
<Card className="p-0 pb-1">
|
|
<StackBlitz path="github/bknd-io/bknd-demo" initialPath="/" />
|
|
<Accordions className="m-1">
|
|
<Accordion title="What's going on?">
|
|
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).
|
|
|
|
</Accordion>
|
|
</Accordions>
|
|
</Card>
|
|
|
|
## Quickstart
|
|
|
|
Enter the following command to spin up an instance:
|
|
|
|
<Tabs groupId='package-manager' persist items={[ 'npm','bun' ]}>
|
|
|
|
```bash tab="npm"
|
|
npx bknd run
|
|
```
|
|
|
|
```bash tab="bun"
|
|
bunx bknd run
|
|
```
|
|
|
|
</Tabs>
|
|
|
|
To learn more about the CLI, check out the [Using the CLI](/usage/cli) guide.
|
|
|
|
## Start with a Framework/Runtime
|
|
|
|
Start by using the integration guide for these popular frameworks/runtimes. There will be more in the future, so stay tuned!
|
|
|
|
<Cards>
|
|
<Card icon={<Icon icon="tabler:brand-nextjs" className="text-fd-primary !size-6" />} title="NextJS" href="/integration/nextjs" />
|
|
|
|
<Card
|
|
icon={
|
|
<Icon icon="simple-icons:reactrouter" className="text-fd-primary !size-6" />
|
|
}
|
|
title="React Router"
|
|
href="/integration/react-router"
|
|
/>
|
|
|
|
<Card
|
|
icon={<Icon icon="simple-icons:astro" className="text-fd-primary !size-6" />}
|
|
title="Astro"
|
|
href="/integration/astro"
|
|
/>
|
|
|
|
<Card
|
|
icon={<Icon icon="tabler:brand-nodejs" className="text-fd-primary !size-6" />}
|
|
title="NodeJS"
|
|
href="/integration/node"
|
|
/>
|
|
|
|
<Card
|
|
icon={
|
|
<Icon
|
|
icon="devicon-plain:cloudflareworkers"
|
|
className="text-fd-primary !size-6"
|
|
/>
|
|
}
|
|
title="Cloudflare"
|
|
href="/integration/cloudflare"
|
|
/>
|
|
|
|
<Card
|
|
icon={<Icon icon="simple-icons:bun" className="text-fd-primary !size-6" />}
|
|
title="Bun"
|
|
href="/integration/bun"
|
|
/>
|
|
|
|
<Card
|
|
icon={<Icon icon="tabler:lambda" className="text-fd-primary !size-6" />}
|
|
title="AWS Lambda"
|
|
href="/integration/aws"
|
|
/>
|
|
|
|
<Card
|
|
icon={<Icon icon="simple-icons:vitest" className="text-fd-primary !size-6" />}
|
|
title="Vite"
|
|
href="/integration/vite"
|
|
/>
|
|
|
|
<Card
|
|
icon={
|
|
<Icon
|
|
icon="streamline-logos:docker-logo-solid"
|
|
className="text-fd-primary !size-6"
|
|
/>
|
|
}
|
|
title="Docker"
|
|
href="/integration/docker"
|
|
/>
|
|
|
|
<Card title="Yours missing?" href="https://github.com/bknd-io/bknd/issues/new">
|
|
Create a new issue to request a guide for your runtime or framework.
|
|
</Card>
|
|
</Cards>
|
|
|
|
## Use your favorite SQL Database
|
|
|
|
The following databases are currently supported. Request a new integration if your favorite is missing.
|
|
|
|
<Cards>
|
|
<Card icon={<Icon icon="simple-icons:sqlite" className="text-fd-primary !size-6" />} title="SQLite" href="/usage/database#database" />
|
|
|
|
<Card
|
|
icon={<Icon icon="simple-icons:turso" className="text-fd-primary !size-6" />}
|
|
title="Turso/LibSQL"
|
|
href="/usage/database#sqlite-using-libsql-on-turso"
|
|
/>
|
|
|
|
<Card
|
|
icon={
|
|
<Icon icon="lineicons:postgresql" className="text-fd-primary !size-6" />
|
|
}
|
|
title="PostgreSQL"
|
|
href="/usage/database#postgresql"
|
|
/>
|
|
|
|
<Card
|
|
icon={
|
|
<Icon
|
|
icon="streamline-plump:database"
|
|
className="text-fd-primary !size-6"
|
|
/>
|
|
}
|
|
title="Cloudflare D1"
|
|
href="/usage/database#cloudflare-d1"
|
|
/>
|
|
|
|
<Card title="Yours missing?" href="https://github.com/bknd-io/bknd/issues/new">
|
|
Create a new issue to request a new database integration.
|
|
</Card>
|
|
</Cards>
|
|
|
|
## Choose a mode
|
|
|
|
**bknd** supports multiple modes to suit your needs.
|
|
|
|
<Cards className="grid-cols-3">
|
|
<Card title="UI-only" href="/usage/introduction#ui-only-mode" icon={<SquareMousePointer className="text-fd-primary !size-6" />}>
|
|
Configure your backend and manage your data visually with the built-in Admin UI.
|
|
</Card>
|
|
<Card title="Code-only" href="/usage/introduction#code-only-mode" icon={<Code className="text-fd-primary !size-6" />}>
|
|
Configure your backend programmatically with a Drizzle-like API, manage your data with the Admin UI.
|
|
</Card>
|
|
<Card title="Hybrid" href="/usage/introduction#hybrid-mode" icon={<Blend className="text-fd-primary !size-6" />}>
|
|
Configure your backend visually while in development, use a read-only configuration in production.
|
|
</Card>
|
|
</Cards> |