An open API service indexing awesome lists of open source software.

https://github.com/carlosindriago/tramiflow-ce

Open-source SaaS CRM for legal and general procedure management. Features multi-tenant architecture, dynamic Kanban boards, and a 100% client-side PDF toolkit.
https://github.com/carlosindriago/tramiflow-ce

crm kanban multi-tenant nextjs pdf-tools react saas supabase

Last synced: about 2 months ago
JSON representation

Open-source SaaS CRM for legal and general procedure management. Features multi-tenant architecture, dynamic Kanban boards, and a 100% client-side PDF toolkit.

Awesome Lists containing this project

README

          


TramiFlow Logo

# TramiFlow CE

**Open-source SaaS CRM for immigration procedure management**

[Live Demo](https://tramiflow-demo.vercel.app) ยท [Documentation](./docs/README.md) ยท [Report Bug](../../issues) ยท [Request Feature](../../issues)

![Next.js](https://img.shields.io/badge/Next.js-14-black?style=flat-square&logo=next.js)
![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?style=flat-square&logo=typescript)
![Supabase](https://img.shields.io/badge/Supabase-DB_%2B_Auth-green?style=flat-square&logo=supabase)
![License](https://img.shields.io/badge/License-AGPL--3.0-blue?style=flat-square)


## ๐Ÿ“ธ Screenshots

| Kanban & Procedures | Client Management |
| :---: | :---: |
| | |

| Procedure Template Builder | PDF Kit (Client-Side) |
| :---: | :---: |
| | |

---

## ๐ŸŽฏ What is TramiFlow?

TramiFlow is a flexible, multi-tenant SaaS CRM designed for law firms, consultants, and agencies. While originally conceived for immigration procedures, its dynamic engine allows professionals to manage **workflows and procedures of any kind** with ease, comfort, and strict order. It centralizes client management, procedure tracking (Kanban-based), document handling, and client-facing status pages โ€” all with strict data isolation per organization.

Unlike generic CRMs, TramiFlow includes a **built-in PDF toolkit that runs 100% client-side** (no file uploads to the server for processing), and a visual Template Builder for reusable procedure workflows using a drag & drop interface.

---

## ๐Ÿ’Ž Freemium & Distribution Model

TramiFlow CE (Community Edition) represents the fully functional core of the application.

**Architectural Philosophy:**
While strictly defined "Open Core" software often relies on complex dependency injection or git submodules to separate Enterprise features, we opted for a pragmatic **Freemium / Upstream Model** tailored for the Next.js App Router. This repository serves as the clean, unpolluted upstream. The private PRO (SaaS) edition acts as a direct downstream fork that extends this core via isolated Next.js Route Groups (`(pro)`) and server-side feature flags, avoiding the overhead of heavy DI abstractions in the Community Edition.

| Feature | Community (Free) | Pro |
|---|---|---|
| Client management | โœ… Unlimited | โœ… |
| Kanban board (dynamic statuses) | โœ… | โœ… |
| Template builder | โœ… Basic | โœ… Advanced + Sharing |
| PDF Kit (6 tools, 100% client-side) | โœ… | โœ… |
| Smart Documents | โœ… Basic validation | โœ… Re-optimization |
| Public status page for clients | โœ… | โœ… |
| Analytics & Growth module | โŒ | โœ… |
| Smart Limits & subscription plans | โŒ | โœ… |
| Super Admin Panel (Command Vault) | โŒ | โœ… |
| Priority support | โŒ | โœ… |
| Self-hosting | โœ… | โœ… |
| Cloud hosted | โŒ | โœ… |

---

## ๐Ÿ›  Tech Stack

| Layer | Technology |
|---|---|
| **Framework** | Next.js 14 (App Router) |
| **Language** | TypeScript 5 (strict mode) |
| **Database & Auth** | Supabase (PostgreSQL + RLS) |
| **UI** | Shadcn/UI + Tailwind CSS 4 |
| **State Management**| TanStack React Query |
| **Validation** | Zod + React Hook Form |
| **Drag & Drop** | `@dnd-kit` |
| **PDF Processing** | `browser-image-compression` + Canvas API (100% Client-Side) |
| **OCR** | Tesseract.js (Lazy loaded) |

---

## ๐Ÿ— Architecture

```mermaid
graph TD
Browser --> NextJS[Next.js 14 App Router]
NextJS --> ServerActions[Server Actions]
NextJS --> APIRoutes[API Routes]
ServerActions --> Supabase[(Supabase PostgreSQL)]
APIRoutes --> Supabase
Supabase --> RLS[Row Level Security]
RLS --> OrgIsolation[Organization Isolation]
NextJS --> ClientTools[PDF Kit / OCR / Compression]
ClientTools --> BrowserOnly[100% Client-Side Processing]
```

**Design Note:** TramiFlow uses a strict **Row Level Security (RLS)** multi-tenant architecture on a single PostgreSQL database rather than separate databases per tenant. Resource consumption and subscription limits (in the PRO version) are strictly intercepted at the **Server Actions** layer, ensuring the client state is never trusted.

---

## ๐Ÿš€ Quick Start

### Prerequisites
- Node.js 18+
- A [Supabase](https://supabase.com) project (free tier works)

### Installation

```bash
git clone https://github.com/carlosindriago/tramiflow-ce.git
cd tramiflow-ce
npm install
cp .env.example .env.local
# Fill in your Supabase credentials in .env.local
npm run dev
```

Open [http://localhost:3000](http://localhost:3000).

๐Ÿ“– For full setup with Supabase migrations, see [LOCAL_SETUP.md](./LOCAL_SETUP.md).

---

## ๐Ÿ—บ Roadmap

- [x] Multi-tenant architecture with RLS
- [x] Dynamic Kanban with custom statuses
- [x] PDF Kit (compress, merge, OCR)
- [x] Smart Documents basic validation
- [ ] Email notifications (Resend integration)
- [ ] Mobile app (React Native / Expo)
- [ ] Webhook system for external integrations
- [ ] i18n support (PT-BR, EN)

---

## ๐Ÿค Contributing

Contributions are welcome! Please read [CONTRIBUTING.md](./CONTRIBUTING.md) for:
- Branch naming convention
- Commit message format
- PR process and review criteria
- Security reporting guidelines

---

## ๐Ÿ“„ License

TramiFlow Community Edition is licensed under [AGPL-3.0](./LICENSE).

**What this means:**
- โœ… Free to use, modify, and self-host
- โœ… Commercial use allowed (self-hosted)
- โš ๏ธ If you offer TramiFlow as a hosted service, you must open-source your modifications
- โŒ The Pro features are not covered by this license

For commercial licensing inquiries: hola@carlosindriago.com