# Inside LuBot's database-per-tenant architecture

DevFeed: [Inside LuBot's database-per-tenant architecture](<https://devfeed.tech/articles/inside-lubot-s-database-per-tenant-architecture-20995.md>)

Original publisher: [Read original article](<https://neon.com/blog/inside-lubots-database-per-tenant-architecture>)

Author: Carlota Soto

Published: 2026-09-14T12:00:00Z

Content type: article

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Supabase](<https://devfeed.tech/topics/supabase.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [stripe](<https://devfeed.tech/topics/stripe.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [billing](<https://devfeed.tech/tags/billing.md>), [case-studies](<https://devfeed.tech/tags/case-studies.md>), [checkout](<https://devfeed.tech/tags/checkout.md>), [database](<https://devfeed.tech/tags/database.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [product](<https://devfeed.tech/tags/product.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [saas](<https://devfeed.tech/tags/saas.md>), [scale](<https://devfeed.tech/tags/scale.md>), [stripe](<https://devfeed.tech/tags/stripe.md>)

## AI overview

This article explains LuBot's database-per-tenant architecture. LuBot uses Supabase for shared administrative data such as organizations, users, and billing state, while each paying customer receives an isolated Postgres database. Stripe checkout triggers a webhook that provisions a Neon branch through the Neon API, with deterministic naming to prevent duplicate tenants. Neon branches provide independent compute and can scale idle tenants to zero.

## Source excerpt

It took six days to go from zero to isolated Postgres per tenant, provisioned the moment someone pays. A traditional Postgres setup would have been a full quarter of work.