---
title: Introduction
---

import { cloudflare, nextjs, rr, astro, bun, node, docker, vite, aws, d1, libsql, sqlite, postgres, turso } from "/snippets/integration-icons.mdx"
import { Stackblitz, examples } from "/snippets/stackblitz.mdx"

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 run modes (standalone, runtime, framework)
- Official API and React SDK with type-safety
- React elements for auto-configured authentication and media components

## Preview
Here is a preview of **bknd** in StackBlitz:
<Stackblitz {...examples.adminRich} />

<Accordion title="What's going on?" icon="lightbulb">
   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>

## Quickstart
Enter the following command to spin up an instance:
<CodeGroup>
   ```bash npm
   npx bknd run
   ```

   ```bash bun
   bunx bknd run
   ```
</CodeGroup>

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!

<CardGroup cols={2}>
  <Card
    title="Next.js"
    icon={<div className="text-primary-light">{nextjs}</div>}
    href="/integration/nextjs"
  />
  <Card
    title="React Router"
    icon={<div className="text-primary-light">{rr}</div>}
    href="/integration/react-router"
  />
   <Card
      title="Astro"
      icon={<div className="text-primary-light">{astro}</div>}
      href="/integration/astro"
   />
   <Card
      title="Node"
      icon={<div className="text-primary-light">{node}</div>}
      href="/integration/node"
   />
   <Card
      title="Cloudflare"
      icon={<div className="text-primary-light">{cloudflare}</div>}
      href="/integration/cloudflare"
   />
   <Card
      title="Bun"
      icon={<div className="text-primary-light">{bun}</div>}
      href="/integration/bun"
   />
   <Card
      title="AWS Lambda"
      icon={<div className="text-primary-light">{aws}</div>}
      href="/integration/aws"
   />
   <Card
      title="Vite"
      icon={<div className="text-primary-light">{vite}</div>}
      href="/integration/vite"
   />
   <Card
      title="Docker"
      icon={<div className="text-primary-light">{docker}</div>}
      href="/integration/docker"
   />
   <Card
      horizontal
      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>
</CardGroup>

## Use your favorite SQL Database
The following databases are currently supported. Request a new integration if your favorite is missing.

<CardGroup cols={2}>
   <Card
      title="SQLite"
      icon={<div className="text-primary-light">{sqlite}</div>}
      href="/usage/database#database"
   />
   <Card
      title="Turso/LibSQL"
      icon={<div className="text-primary-light">{turso}</div>}
      href="/usage/database#sqlite-using-libsql-on-turso"
   />
   <Card
      title="PostgreSQL"
      icon={<div className="text-primary-light">{postgres}</div>}
      href="/usage/database#postgresql"
   />
   <Card
      title="Cloudflare D1"
      icon={<div className="text-primary-light">{d1}</div>}
      href="/usage/database#cloudflare-d1"
   />
   <div style={{ gridColumn: "span 2" }}>
      <Card
         horizontal
         title="Yours missing?"
         href="https://github.com/bknd-io/bknd/issues/new"
      >
      Create a new issue to request a new database integration.
      </Card>
   </div>
</CardGroup>
