Simple Mimo by Tu NguyenSimple Mimo by Tu Nguyen

Simple Mimo

Tu Nguyen

Tu Nguyen

Founder · Software Architect Founder · Software Architect

Simple Mimo

Minimalist CRM & Task Management SaaS SaaS CRM & quản lý task tối giản
Simple Mimo
Kết quả chính
Built in ~1 month · still live Build trong ~1 tháng · vẫn đang live
Tổng quan
I built Simple Mimo solo in ~1 month: a minimalist CRM + task SaaS with isolated multi-tenant workspaces, automated billing, and admin/user roles per tenant. A real product, not a demo — still live, used by a small network of freelancers and acquaintances. Mình tự build Simple Mimo trong ~1 tháng: SaaS CRM + quản lý task tối giản với workspace multi-tenant tách biệt, billing tự động và phân quyền admin/user theo từng tenant. Sản phẩm thật, không phải demo — vẫn đang live, được dùng bởi một nhóm nhỏ freelancer và người quen.
Vấn đề
Freelancers and boutique teams were stuck between bloated CRMs and fragile Notion/spreadsheet setups — too heavy to run day-to-day, too thin to scale client work beyond a few projects. Freelancer và team nhỏ bị kẹt giữa CRM quá cồng kềnh và quy trình Notion/bảng tính rời rạc — quá nặng để vận hành hằng ngày, quá mỏng để scale quá vài dự án.
Kiến trúc
Tenant Workspace (isolated) ├ RBAC (admin / user) ├ CRM + tasks └ Billing state ↓ Laravel app ├ Horizon / Redis queues └ PostgreSQL / MySQL ↓ Docker deployment Tenant Workspace (tách biệt) ├ RBAC (admin / user) ├ CRM + tasks └ Billing state ↓ Laravel app ├ Horizon / Redis queues └ PostgreSQL / MySQL ↓ Docker deployment
Những việc mình đã làm
1

Isolated multi-tenant in 1 month Multi-tenant tách biệt trong 1 tháng

Designed proper isolated multi-tenant architecture — each tenant gets its own workspace boundary, not a shared-table shortcut. Production-grade isolation built on a solo timeline. Thiết kế kiến trúc multi-tenant tách biệt đúng nghĩa — mỗi tenant có workspace riêng, không phải shared-table cho nhanh. Isolation chuẩn production trong timeline solo.
2

Billing, roles & ops stack Billing, phân quyền & ops stack

Shipped automated payment flows, admin/user roles per tenant workspace, Redis-backed queues via Laravel Horizon, and Docker-based deployment. End-to-end SaaS ops from day one. Triển khai payment tự động, phân quyền admin/user theo workspace, queue qua Laravel Horizon với Redis và deploy bằng Docker. SaaS ops đầy đủ từ ngày đầu.
3

Quiet public launch Launch public im lặng

Public and still running — no marketing push, real usage came from personal network. Proof of shippable SaaS ownership, not a vanity portfolio piece. Public và vẫn chạy — không chạy marketing, người dùng thật đến từ mạng lưới cá nhân. Minh chứng khả năng build và ship SaaS hoàn chỉnh, không phải portfolio cho có.
Quyết định kỹ thuật chính
Why isolated multi-tenancy instead of shared-table shortcuts? Vì sao multi-tenancy tách biệt thay vì shared-table cho nhanh?
A CRM holds client work and permissions. Shared-table “tenant_id everywhere” is faster to demo and harder to reason about under mistakes. Workspace isolation made tenancy an architecture boundary from day one — even on a solo timeline. CRM chứa công việc khách và phân quyền. Shared-table “tenant_id khắp nơi” demo nhanh nhưng dễ sai. Isolation theo workspace biến tenancy thành ranh giới kiến trúc từ ngày đầu — kể cả khi solo.
Why ship billing + RBAC in the first month? Vì sao ship billing + RBAC ngay tháng đầu?
Without billing and roles, it is a toy. Payment flows and admin/user boundaries prove the product can operate as SaaS — not a local CRUD demo dressed up for a portfolio. Thiếu billing và role thì chỉ là đồ chơi. Payment và ranh giới admin/user chứng minh sản phẩm vận hành được như SaaS — không phải CRUD local trang trí portfolio.

Why Redis + Horizon from day one? Vì sao Redis + Horizon từ ngày đầu?

Billing, notifications, and background work belong on queues early. Horizon made async jobs observable in production instead of bolting queues on after users already existed. Billing, notification và việc nền thuộc về queue sớm. Horizon giúp job async quan sát được trên production thay vì gắn queue sau khi đã có user.

Why Docker for a solo SaaS? Vì sao Docker cho SaaS solo?

Containerizing from day one meant no "works on my machine" surprises when deploying a multi-tenant product with PostgreSQL, Redis, and Horizon workers. A single docker-compose file keeps the full stack reproducible — critical when there's no ops team to debug environment drift. Container hoá từ ngày đầu nghĩa là không có bất ngờ 'chạy ở máy tôi' khi deploy sản phẩm multi-tenant với PostgreSQL, Redis và Horizon worker. Một file docker-compose giữ toàn bộ stack tái tạo được — quan trọng khi không có ops team để debug lệch môi trường.
Kết quả
A working multi-tenant SaaS with billing and RBAC — live as a real product for a small trusted user base. No vanity metrics, no investors — just shipped. SaaS multi-tenant hoàn chỉnh với billing và RBAC — đang live như sản phẩm thật cho nhóm user nhỏ đáng tin. Không có số ảo, không có investor — chỉ là đã ship.
Công nghệ
Laravel Laravel Horizon Redis Docker PostgreSQL MySQL Tailwind CSS
#SaaS #CRM #Multi-tenant #Laravel #Docker
Like this project

Posted Sep 22, 2026

Solo-built a minimalist multi-tenant CRM & task SaaS in ~1 month with billing, RBAC, Redis-backed queues and Docker deployment; product remains live.