Fb feathers-baas
Built for the vibe coding era

Production-ready backend in minutes

feathers-baas scaffolds a production Feathers.js v5 backend in one command. Add your database, plug in your storage and email provider and deploy anywhere.

$ npx feathers-baas init my-api
GitHub
Works with / Next.js · Nuxt · SvelteKit · React Native · Flutter · any HTTP client
zsh · feathers-baas
running…
terminal preview auto-replays
Built-ins

Four services you'd otherwise rebuild from scratch.

Database-agnostic (support PostgreSQL, MySQL, SQLite, and MongoDB out-of-the-box), self-hosted and extensible with production defaults on day one.

01 / auth

Login that works on day one.

argon2id passwords, short-lived JWTs with cookie-based refresh. No token rotation code to write. Transparent re-auth with the official Feathers client.

argon2idjwtrefresh-cookie
02 / users

Methods level Roles and Permissions.

RBAC with { service, methods[] } grants stored as JSONB. LRU-cached lookups, seeded admin/user roles, email verification and password reset, all wired up.

rbacauthManagementsoft-delete
03 / files

Upload anywhere. Swap in config.

Streaming multipart uploads via busboy. Pluggable drivers: local disk for dev, AWS S3 (or MinIO) and Google Cloud Storage for prod. Metadata lives with your data.

locals3gcsbusboy
04 / notifs

Emails that actually send.

Auth events (verify, reset, change) dispatched via SMTP, Resend, SendGrid or Brevo. Direct mode out of the box. Add Redis and BullMQ takes over with retries and backoff.

smtpresendbrevosendgridbullmq
Quickstart

Four commands. First API call in five minutes.

Pick your database and storage at init. Everything generated runs standalone. The CLI is a scaffolder, not a runtime dependency.

step 01
Scaffold

Interactive prompts pick the database, storage and email drivers.

$ npx feathers-baas init \
    my-api --install
step 02
Migrate & seed

Update env variables and run Knex migrations (SQL) and seed the default roles + admin from .env.

$ cd my-api
$ pnpm migrate
$ pnpm seed
step 03
Run & ship

Hot reload in dev. OpenAPI docs at /docs. Ship the generated Dockerfile to prod or hand the project to Claude Code.

$ pnpm dev
→ http://localhost:3030
→ /docs  /health  /openapi.json
step 04
Extend with services and hooks

TypeBox schema, class, hooks, migration, wired into the app via AST-safe patching.

$ feathers-baas generate \
    service --name posts \
    --fields "title:string"
Agent-native

The backend LLMs can actually extend.

Every service is a single typed file. Every endpoint is introspectable via JSON. Claude Code, Codex, Cursor, and Copilot can add a resource in one prompt, no framework docs required.

describe

Your app as JSON.

Run feathers-baas describe and your agent sees every service, method, hook, and migration in a machine-readable format. No guessing, no grepping. Generated projects include AGENTS.md with conventions the agent should follow.

$ feathers-baas describe --json out · trimmed
{
  "services": [
    {
      "name": "users",
      "path": "/users",
      "methods": ["find","get","create","patch","remove"]
    },
    {
      "name": "posts",
      "path": "/posts",
      "methods": ["find","get","create","patch","remove"]
    }
  ],
  "hooks": ["authenticate", "permission-check"],
  "database": "postgresql"
}
Positioning

How it compares.

Unlike Supabase, it works with any database. Unlike Firebase, you own your infra. Unlike Pocketbase, your codebase is TypeScript that agents can extend.

Supabase Firebase Pocketbase feathers-baas
Self-hosted
Database-agnostic
CLI-first
Agent-friendly
Pluggable storage
Realtime
No lock-in
yes partial no
Architecture

What gets generated.

A standalone Feathers.js v5 app with swappable adapters. Nothing calls home.

my-api/
├── src/
│   ├── services/
│   │   ├── users/        ← schema · class · hooks · service
│   │   ├── roles/        ← RBAC with { service, methods[] }
│   │   └── posts/        ← your generated service
│   ├── auth/             ← JWT + argon2id + refresh tokens
│   ├── hooks/            ← checkPermissions · logError
│   └── db/               ← Knex (pg/mysql/sqlite) or Mongo
├── migrations/           ← auto-generated per service
├── Dockerfile            ← multi-stage, non-root, ready to deploy
├── docker-compose.yml    ← app + postgres + redis
├── AGENTS.md             ← conventions for Claude Code / Cursor
└── .env.example          ← 12-factor config
Fig. 1 — generated app runs standalone · adapters swap via env vars

Start building.

$ npx feathers-baas init my-api
MIT licensed · v1.0 · works with Node 20+
Tweaks ×
Theme
Terminal