Tenally is a multi-tenant billing and subscription management platform that enables businesses to manage customer subscriptions, recurring payments, and invoices, while Tenally itself operates as a SaaS with its own billing layer.
This project models real-world SaaS payment architecture, with strict separation between:
- Tenally billing its business customers
- Businesses billing their own end customers
Tenally supports two independent money flows:
-
Business → Tenally
Businesses pay Tenally via a SaaS subscription. -
Customer → Business
End customers pay businesses for products or services.
These flows are intentionally isolated to ensure security, clarity, and scalability.
- Ruby 3.x
- Rails 7.x
- Node.js 18+
- PostgreSQL
- Stripe CLI
git clone git@github.com:julie-ify/tenally.git
cd tenally
bundle install
rails db:setup- Start app
docker compose build && docker compose upThis will start server on http://localhost:3000
- Stop app
docker compose down- Reset the database
docker volume rm tenally_db_data- Connect psql from shell
docker compose exec tenally_db psql -U postgres -d tenally_development- Run rubocop
docker compose exec tenally_app bundle exec rubocop- Run db migration
docker compose tenally_app bundle exec rails db:migrate- Access Rails console
docker compose exec tenally_app bundle exec rails c