An open API service indexing awesome lists of open source software.

https://github.com/palixir/wabe

Your backend without vendor lock-in in Typescript
https://github.com/palixir/wabe

backend backend-as-a-service bun database firebase graphql hooks javascript mongodb nodejs performance permissions security typescript wabe

Last synced: 14 days ago
JSON representation

Your backend without vendor lock-in in Typescript

Awesome Lists containing this project

README

          


Wabe


πŸš€ A fully open-source Firebase alternative built in TypeScript





---

Wabe is a modern, batteries-included backend-as-a-service designed for developers who want the flexibility of self-hosting with the ease of Firebase.

You define your models β†’ Wabe instantly generates:
- a **secure GraphQL API**
- **auth**, **permissions**, **hooks**, **emails**, **files**, and more
- a fully extensible backend written in clean TypeScript

No vendor lock-in. No hidden limits.
Host it anywhere.

πŸ“š **Documentation:** [https://palixir.github.io/wabe](https://palixir.github.io/wabe)

---

# ✨ Features

| Feature | Description |
|--------------------------|-----------------------------------------------------------------------------|
| πŸ” Authentication | Email/password, OTP, OAuth (Google, GitHub), password reset, email verification |
| πŸ”‘ Permissions | Fine-grained access control at collection, object, and field levels with secure defaults |
| ⚑ Auto-generated GraphQL | Fully typed CRUD GraphQL API generated from your schema, ready for production |
| πŸ”„ Hooks | Custom logic before/after create, update, delete, and read operations |
| πŸ“¨ Email providers | Resend (official adapter) or custom adapters |
| πŸ—„οΈ Database adapters | MongoDB, PostgreSQL (official), or your own adapter |
| πŸ“¦ Modular architecture | Replaceable and extensible modules: auth, storage, email, database, permissions |
| 🌍 Self-host anywhere | Docker, Node, Bun, Fly.io, Render, Railway, Hetzner, Raspberry Pi |

---

# πŸš€ Quickstart

### 1. Install

```bash
npm install wabe
# or
bun add wabe
```

### 2. Create your schema and start your server

``` ts
import { Wabe } from "wabe";
import { MongoAdapter } from "wabe-mongodb";

const run = async () => {
const wabe = new Wabe({
isProduction: process.env.NODE_ENV === "production",
// Root key example (must be long minimal 64 characters, you can generate it online)
rootKey:
"0uwFvUxM$ceFuF1aEtTtZMa7DUN2NZudqgY5ve5W*QCyb58cwMj9JeoaV@d#%29v&aJzswuudVU1%nAT+rxS0Bh&OkgBYc0PH18*",
database: {
adapter: new MongoAdapter({
databaseName: "WabeApp",
databaseUrl: "mongodb://127.0.0.1:27045",
}),
},
schema: {
classes: [
{
name: 'User',
description: 'User class',
fields: {
name: {
type: 'String',
},
age: {
type: 'Int',
},
email: {
type: 'Email',
required: true,
},
},
},
]
},
port: 3000,
});

await wabe.start();
};

await run();
```

### 3. Query your API

``` graphql
mutation createUser {
createUser(input: { fields: {name: "Wabe", email: "mybackend@wabe.com", age: 10} }) {
user {
id
name
}
}
}
```

# 🧩 Official Templates

Wabe comes with a set of official templates to help you bootstrap projects instantly:

| Template | Stack | Description | Status |
|------------------------|----------------|---------------------------------|----------------|
| **wabe-starter** | Wabe + Node | Minimal starter backend | 🟑 Coming soon |
| **wabe-next-template** | Next.js + Wabe | Authentication + CRUD boilerplate | 🟑 Coming soon |
| **wabe-saas-kit** | Wabe + Wobe | SaaS starter kit with Stripe | 🟑 Coming soon |

More templates are added regularly based on community needs.

---

# 🌱 Ecosystem

### **Wobe β€” Full-stack web framework**

Wobe is a lightweight, TypeScript-first full-stack framework designed to pair naturally with Wabe.
For a seamless frontend + backend developer experience:

πŸ‘‰ https://github.com/palixir/wobe

### **GraphQL Server (coming soon)**

A modern, type-safe GraphQL server designed as a companion to Wabe.
Optimized for DX, performance, and full extensibility.

---

# πŸ—ΊοΈ Roadmap

- [x] PostgreSQL adapter
- [ ] Admin dashboard UI
- [x] File storage adapters (S3, Cloudflare R2, etc.)
- [ ] CLI (`wabe init`, `wabe generate`)
- [ ] SaaS starter kit
- [ ] Improved documentation

---

# 🀝 Contributing

Contributions are welcome!
Before opening a PR, check the `CONTRIBUTING.md` and join the community.

---

# ❀️ Sponsors

Wabe is 100% open-source and maintained in my free time.
If you want to support development:

πŸ‘‰ **GitHub Sponsors:** https://github.com/sponsors/coratgerl

**Sponsors receive:**
- Access to a complete, fully tested boilerplate with an admin dashboard to manage users (Vite, Tailwind, Playwright, Wabe, Bun, GraphQL, etc.)
- Your name featured in the `README.md`

Your support helps keep Wabe sustainable and actively maintained, and allows me to continue creating new projects in my free time to help developers have solid backends with minimal effort.

---

# ⭐ Show your support

If you like the project, please consider starring the repository:
⭐ β†’ It helps more than you think.