v0.3.0

Your backend,
one command away.

A minimal Backend-as-a-Service you own. Auth, database, REST API — all managed from your terminal. Self-hosted on any VPS.

terminal
# Set up Based on your VPS
$ based init <your-vps-ip> --domain based.yourdomain.com
  Based is running!

# Create a project
$ based new my-app
  Project created!
  URL: https://my-app.based.yourdomain.com

# Log in (auto-creates account)
$ based login my-app -e you@email.com

# Create tables — CRUD is instant
$ based table create posts \
    title:text:required \
    content:text \
    status:text:default=draft

  Table 'posts' created (6 columns).
  CRUD endpoints available at /api/posts

What you get

CLI-first

Create projects, manage tables, deploy — all from your terminal. No dashboard, no UI clutter.

Auth built-in

Email/password with JWT + bcrypt. Signup, signin, refresh, signout — out of the box.

SQLite per project

Each project gets its own isolated database. No shared state, no connection pools.

Instant CRUD

Create a table, get REST endpoints immediately. No restart, no codegen, no migration files.

React SDK

useQuery, useMutation, useUser — type-safe hooks that talk to your Based API.

Deploy anywhere

One command provisions any VPS. Docker + Nginx + SSL. Move servers by running init again.

Use it in React

app.tsx
import { createClient, BasedProvider }
  from "@weirdscience/based-client";

const based = createClient({
  url: process.env.NEXT_PUBLIC_BASED_URL!,
  anonKey: process.env.NEXT_PUBLIC_BASED_ANON_KEY!,
});

export default function App({ children }) {
  return (
    <BasedProvider client={based}>
      {children}
    </BasedProvider>
  );
}

What's inside

Bun
Runtime
Hono
Framework
SQLite
Database
Zod
Validation

Stop configuring, start building.

Based sets up in under a minute. One VPS, one command, all your projects.

Read the docs