/enrolla

The open source customer configuration framework for B2Bs. Control and manage your customer secrets, entitlements and pricing tiers in a single system.

Primary LanguageTypeScriptApache License 2.0Apache-2.0




CI CD Contributor Covenant License


Explore the docs »

⭐️ Why Enrolla?

Managing customer configurations takes much work. At first, it seems like just creating another SQL database, but in reality, it's just the beginning.

You need to define different pricing tiers for different customers, but some important ones require extra customization. You need to store lots of different values for them - throttling configurations, secrets, and just plain JSONs. And you need to be able to access these configurations across your system - with 0 latency. You need this data synchronized across many systems - CRMs, authentication services, billing systems, and even sometimes your Databases. Enrolla's goal is to simplify customer configuration management and provide developers with the tools to focus on delivering best-in-class products - while providing the needed flexibility for the rest of the company.

✨ Features

  • 🛂 Easily manage all your configurations - throttling, secrets, just plain JSONs
  • 🧩 Integrations with CRMs, authentication services, billing systems
  • ⏩ Typescript SDK for fetching configurations to your services with smart caching (Python and Go in developement)
  • 📦 Built-in backoffice for non engineers
  • 😎 Headless UI templates for providing needed knobs for your customers (in developement)
  • 👩‍💻 Community driven

🚀 Getting Started

Local Developement

Enrolla is using a monorepo (powered by Nx Workspaces) with multiple apps and libraries.

It's backend is based on NestJS, and its front-end is a Vite deployment of a Refine app.

Follow these instructions to set up a local developement environment.

  1. Clone the repositoriy and install dependencies:

    git clone https://github.com/enrolla/enrolla.git
    cd enrolla
    nvm install
    npm install
  2. Set up a local Postgres Database. You can use Postgres.app for Mac for example.

  3. Set up doppler, our secrets manager:

    doppler login
    doppler setup
  4. Apply database migrations:

    doppler run -- npx nx run prisma-models:prisma-deploy
  5. To start developing, run the serve target on both the backend and the frontend:

    # This will serve the Backend in development mode
    doppler run -- npx nx serve
    # This will serve the Frontend in development mode
    doppler run -p frontend -c dev -- npx nx serve mgmt-ui

That's it, you are good to go! Happy hacking! 👾