Skip to content

palixir/wabe

Repository files navigation

Wabe logo

Wabe

What is Wabe?

Wabe is an open-source backend that allows you to create your own fully customizable backend in just a few minutes. It handles database access, automatic GraphQL API generation, authentication with various methods (classic or OAuth), permissions, security, payment, emails, and more for you.

Install

bun install wabe # On bun
npm install wabe # On npm
yarn add wabe # On yarn

Basic example

import { DatabaseEnum, Wabe } from "wabe";

const run = async () => {
  // Ensure your database is running before run the file

  const wabe = new Wabe({
    // 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: {
      type: DatabaseEnum.Mongo,
      url: "mongodb://127.0.0.1:27045",
      name: "WabeApp",
    },
    port: 3000,
  });

  await wabe.start();
};

await run();

Features

  • Authentication: Secure and scalable authentication for your applications.
  • Permissions: Granular permissions control to secure your resources.
  • Database: A powerful, scalable database to store and manage you data.
  • GraphQL API: A flexible and powerful GraphQL API (following GraphQL Relay standard) to interact with your data.
  • Hooks: Powerful hooks system to execute custom actions before or after database requests.
  • Email: Send emails with your favorite provider with very simple integration.
  • Payment: Accept payments with Stripe or create your own payment provider adapter.

Contributing

Contributions are always welcome! If you have an idea for something that should be added, modified, or removed, please don't hesitate to create a pull request (I promise a quick review).

You can also create an issue to propose your ideas or report a bug.

Of course, you can also use Wabe for your backend; that is the better contribution at this day ❤️.

If you like the project don't forget to share it.

More information on the Contribution guide

License

Distributed under the Apache License 2.0 License.