Opinionated multi-tenant SaaS foundation.

Build production-ready SaaS products with Bun, Next.js, TypeScript, and tRPC.

BunNext.jsTypeScripttRPCBetterAuthStripeDocker
app.feijoada.dev
MRR
$12,450
Seats
142
Active
89%
Recent Activity
User invited2m
Role updated15m
Plan upgraded1h
Pro Plan
Next billing: Jun 1

Designed Around Clear Boundaries

Feijoada separates product UI, control-plane APIs, and shared infrastructure packages so teams can focus on product development instead of repeatedly rebuilding tenancy and platform concerns.

Frontend App
tRPC API Layer
Shared Packages
auth
billing
permissions
localisation
logging

Everything You Need to Ship

Production patterns for multi-tenant SaaS, built into the foundation.

Multi-tenant authentication

BetterAuth-powered auth with tenant isolation and session management

Role-based permissions

Granular RBAC with SSR-loaded permission checks

Stripe billing primitives

Subscription management, usage metering, and customer portal

SSR-loaded permissions

Server-side permission resolution for secure, fast page loads

Internationalisation

Type-safe i18n with locale detection and RTL support

Structured logging

Production-ready logging with correlation IDs and context

Dockerised local development

One command setup with docker-compose orchestration

Bun monorepo architecture

Workspace-native package management with shared configs

End-to-end type safety

Full-stack TypeScript from database to client

Shared infrastructure packages

Reusable auth, billing, and permission modules

Repository Structure

A clean monorepo architecture with clear separation between apps and packages.

feijoada/
/feijoada
├── /apps
│   ├── /reference
│   └── /demo
├── /packages
│   ├── /auth
│   ├── /billing
│   ├── /permissions
│   ├── /api
│   └── /core
├── /landing
└── /docs

Reference App

Minimal implementation demonstrating core patterns. Use as a learning resource or starting point.

Demo App

Production-style SaaS implementation with full feature coverage and realistic UI patterns.

UI-Library Agnostic

Core architecture packages work with any component library. Bring your own design system.

See It In Action

Watch a complete walkthrough of tenant onboarding, authentication, permissions, and billing flows.

0:00
12:34
Tenant onboardingGoogle loginTenant switchingRole-based permissionsBilling flowsLocalisationArchitecture walkthrough

Developer Experience

Fast iteration with modern tooling, from development to production.

terminal
$ bun install# ~500ms for full monorepo$ docker-compose up -d# Postgres, Redis, Mailhog$ bun dev# All apps in parallel
env.ts
import { createEnv } from "@feijoada/env"export const env = createEnv({DATABASE_URL: z.string().url(),STRIPE_KEY: z.string().min(1),AUTH_SECRET: z.string().min(32),})
Bun speed

Sub-second installs

Docker support

One command setup

Biome linting

Fast, consistent

Typed env

Runtime validation

Opinionated By Design

Feijoada makes strong choices so you can move fast. We prioritize architecture consistency over configurability, production patterns over flexibility, and shipping over bikeshedding.

This isn't a framework that tries to support every possible stack. It's a foundation built for teams building real SaaS products who want to focus on their product, not platform infrastructure.

Focus on product development, not platform plumbing.

Get started with Feijoada and ship your SaaS faster.