Home

Awesome

<!-- PROJECT LOGO --> <p align="center"> <a href="https://github.com/getlago/lago"> <img src="https://uploads-ssl.webflow.com/635119506e36baf5c267fecd/635b6df0ee8effaa54c1fa42_banner-open-graph.jpg" alt="Lago"> </a> <h1 align="center">Lago</h2> <p align="center"> Open Source Metering & Usage-Based Billing <br /> <br /> The best alternative to Chargebee, Recurly or Stripe Billing. <br /> For usage-based, subscription-based, and all the nuances of pricing in between. <br /> <br /> <a href="https://www.getlago.com/slack">Slack</a> · <a href="https://getlago.com">Website</a> · <a href="https://github.com/getlago/lago/issues">Issues</a> · <a href="https://getlago.canny.io/">Roadmap</a> </p> </p> <p align="center"> <a href="https://www.producthunt.com/posts/lago?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-lago" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=386328&theme=light&period=monthly" alt="Lago - Open&#0045;source&#0032;alternative&#0032;to&#0032;Stripe&#0032;Billing&#0032;and&#0032;Chargebee | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /> </a> </p> <p align="center"> <a href="https://www.producthunt.com/posts/lago?utm_source=badge-top-post-topic-badge&utm_medium=badge&utm_souce=badge-lago" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-topic-badge.svg?post_id=386328&theme=light&period=monthly&topic_id=267" alt="Lago - Open&#0045;source&#0032;alternative&#0032;to&#0032;Stripe&#0032;Billing&#0032;and&#0032;Chargebee | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a> </p> <p align="center"> <a href="https://www.getlago.com/slack"><img src="https://img.shields.io/badge/Lago%20Slack%20Community-lago.slack.com-%234A154B" alt="Join Lago on Slack"></a> <a href="https://github.com/getlago/lago/stargazers"><img src="https://img.shields.io/github/stars/getlago/lago" alt="Github Stars"></a> <a href="https://news.ycombinator.com/item?id=31424450"><img src="https://img.shields.io/badge/Hacker%20News-777-%23FF6600" alt="Hacker News"></a> <a href="https://github.com/getlago/lago/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-AGPLv3-purple" alt="License"></a> <a href="https://twitter.com/getlago"><img src="https://img.shields.io/twitter/follow/getlago?style=flat"></a> <a href="https://www.ycombinator.com"><img src="https://img.shields.io/badge/Backed%20by-Y%20Combinator-%23f26625"></a> </p> <!-- ABOUT THE PROJECT -->

The programmable API for usage-based billing

Lago Billing System Presentation

The problem: Billing systems are still a nightmare for engineers

Billing nightmare Engineers be like…

Read more first-hand experiences from Qonto, Algolia, Pleo, Segment, or the 350+. Hackernews comments here.

The Solution: Lago, the open-source billing API for product-led SaaS

Open-source, open architecture:

✨ Features

🔔 Stay up to date

Lago launched its v0.1 on June 2nd, 2022. Lots of new features are coming, and are generally released on a bi-weekly basis. Watch updates of this repository to be notified of future updates.

Check out our public roadmap

🔖 License

Distributed under the AGPLv3 License. Read more here.

Current Releases

ProjectRelease Badge
LagoLago Release
Lago APILago API Release
Lago frontLago front Testing Release
Lago Go ClientLago Go Client Testing Release
lago-gotenberglago-gotenberg Release
Lago JavaScript ClientLago JavaScript Client Release
Lago OpenAPILago OpenAPI Release
Lago Python ClientLago Python Client Release
Lago Ruby ClientLago Ruby Client Release

💻 Deploy locally

Requirements

  1. Install Docker on your machine;
  2. Make sure Docker Compose is installed and available (it should be the case if you have chosen to install Docker via Docker Desktop); and
  3. Make sure Git is installed on your machine.

Run the app

To start using Lago, run the following commands in a shell:

On a fresh install

# Get the code
git clone --depth 1 https://github.com/getlago/lago.git

# Go to Lago folder
cd lago

# Set up environment configuration
echo "LAGO_RSA_PRIVATE_KEY=\"`openssl genrsa 2048 | base64`\"" >> .env
source .env

# Start the api
docker compose up -d api

# Create the database
docker compose exec api rails db:create
docker compose exec api rails db:migrate

# Start all other components
docker compose up

After an update

docker compose up

You can now open your browser and go to http://localhost to connect to the application. Lago's API is exposed at http://localhost:3000.

Note that if our docker server is not at http://localhost, the following env variables must be set: LAGO_API_URL. This may be on the command line or in your .env file. For example:

LAGO_API_URL="http://192.168.122.71:3000"
LAGO_FRONT_URL="http://192.168.122.71"

Find your API key

Your API Key can be found directly in the UI:

  1. Access the Developer section from the sidebar;
  2. The first tab of this section is related to your API keys; and
  3. Click the Copy button to copy it to clipboard.

Analytics and tracking

Please note that Lago, by default, tracks basic actions performed on your self-hosted instance. If you do not disable tracking, you may receive specific communications or product updates. However, rest assured that Lago will not collect any personal information about your customers or financial information about your invoices.

If you would like to know more about Lago's analytics or remove the entire tracking, please refer to this page for comprehensive information.

Version, environment variables and components

Docker images are always updated to the last stable version in the docker-compose.yml file. You can use a different tag if needed by checking the releases list.

Lago uses the following environment variables to configure the components of the application. You can override them to customise your setup. Take a closer look are our documentation.

☁️ Use our cloud-based product

Contact our team at hello@getlago.com to get started with Lago Cloud. More information on our website.

🚀 Getting the most out of Lago

🧑‍💻 Contributions and development environment

You can follow this guide to set up a Lago development environment on your machine. This guide is intended for people willing to contribute to Lago. If you want to try Lago on your local system, we recommend that you take a look at Lago's public documentation.

You can contribute by following our guidelines.

💡 Philosophy

B2B SaaS has evolved, but billing has not yet.

1- We’re not in the “subscription economy” anymore. And we won’t go “full usage-based pricing” quite yet

Pricings are now mostly hybrid: they include a usage-based component (i.e. “if you use more you pay more”) and a subscription component (i.e. a recurring fee for basic usage).

Not all software companies will go full “usage-based” like Snowflake for instance. This model is the new standard for cloud infrastructure products. However, in other areas of SaaS, users want to know beforehand how much they will pay to control their spending and software companies want to be able to predict recurring revenues.

2- Go-to-market is not either bottom-up or top-down anymore

SaaS used to be either self-service (SMBs) or sales-led (Enterprises). Go-to-market now mixes the self-service (all customers access the same price plans) and sales-led (customers get a custom quote from a sales representative) motions. A typical journey involves an individual contributor in a company who tests a new tool, puts their corporate credit card in, and starts spreading the use of the tool within the organization. At that point, the VP or head of department might want to upgrade to a custom plan tailored to the needs of the whole organization. As a result, billing needs to be flexible, automated, and transparent enough to embrace this hybrid go-to-market motion as well.

3- The “rent seeker” pricing of current billing solutions needs to stop

Why do payment companies take a cut on revenues? Because the higher the amount, the higher the risk for them (e.g. fraud, disputes, etc.).

Why did billing companies adopt the same pricing structure? We’re not able to provide an answer that makes sense. It’s been said on the internet that they did this because they could (read more here).

One last thing…

Lago is agnostic and we aim at being as transparent as possible, so we won’t nudge or lock you into using a specific tool in exchange for using our billing API (learn more).