BiTi is a comprehensive, production-grade Software-as-a-Service (SaaS) platform I designed and developed to solve the complex challenges of modern project management. It spans four deployable applications — a high-performance API, a reactive admin dashboard, a SEO-first marketing website, and a native mobile client — giving cross-functional teams a single ecosystem to plan sprints, track work in real time, collaborate, and scale across subscription tiers.
Executive Summary
As organizations scale, managing workflows across fragmented tools becomes a bottleneck. BiTi bridges this gap by combining highly structured agile project management (Kanban, sprints, dependencies, milestones) with fluid, real-time collaboration (WebSocket chat, instant notifications, presence).
The architecture is meticulously crafted with a clear separation of concerns across four tiers:
- High-Performance Backend API — a NestJS server with 32 feature modules handling business logic, Role-Based Access Control (RBAC), strict tenant isolation, and triple-gateway billing.
- Reactive Admin Dashboard — a Vue 3 + Vuetify single-page application (SPA) backed by 35 typed API service layers and Pinia state.
- SEO-Optimized Marketing Website — a Next.js 16 / React 19 site for lead acquisition and conversion.
- Native Mobile Client — a React Native app that consumes the same API for on-the-go task, chat, and meeting management.
Technology Stack
The platform leverages a modern, type-safe stack configured for performance, scalability, and end-to-end maintainability.
Backend Infrastructure (/backend)
- Framework: NestJS 11 (Node.js) with TypeScript 5.7
- Database & ORM: PostgreSQL (Neon serverless) managed by Prisma 6 — 47 relational models across a ~1,000-line schema, with pooled + direct connections for safe migrations.
- Real-time Engine: Socket.IO gateways for chat and notifications
- Auth & Security: JWT, Passport (Local + Google OAuth 2.0), Helmet, CORS,
@nestjs/throttler rate limiting, and a global TenantGuard
- Monetization: Stripe, PayPal, and ABA PayWay (Cambodia) server integrations for subscription billing
- Object Storage: Cloudflare R2 (S3-compatible via
@aws-sdk/client-s3), with Supabase and local-filesystem fallbacks
- Mail: Nodemailer /
@nestjs-modules/mailer (SMTP)
- Scheduling:
@nestjs/schedule cron jobs (subscription expiry, meeting reminders)
- API Docs: Swagger / OpenAPI at
/api/docs
Frontend — Admin Dashboard (/frontend)
- Framework: Vue 3 (Composition API) with Vite 7
- UI/UX: Vuetify 3 (Material Design), SortableJS (drag-and-drop Kanban), Chart.js, Vue Quill (rich text), VueDatePicker
- State Management: Pinia 3 (session, tenant, workspace, task, and chat stores)
- Networking: Axios (with auth + tenant interceptors), Socket.IO-client
Marketing & Growth — Website (/website-marketing)
- Framework: Next.js 16 (App Router) & React 19
- Styling: Tailwind CSS v4 with a unified design system and Lucide React icons
- Authentication & Leads: NextAuth 4 with Supabase-backed lead capture
Mobile Client (/mobile)
- Framework: React Native 0.72 (React 18), TypeScript
- Navigation: React Navigation 6 (native-stack + bottom-tabs) with a custom slide-in drawer
- State & Data: React Context auth provider, Axios with auth/tenant interceptors, AsyncStorage persistence
- Screens: Auth, Home, Projects, Tasks, Chat, Calendar, Meetings, Timesheets, Notifications, Profile, Settings
Key Architectural
1. Robust Multi-Tenant Data Isolation
BiTi is a true business-to-business (B2B) application. Every data entity is strictly scoped to an organization (Tenant).
- Seamless Context Switching: A single user can belong to multiple organizations and switch between them; the dashboard resolves the active tenant and propagates it via the
X-Tenant-ID header.
- Security by Design: A global
TenantGuard plus tenant-scoped repository patterns guarantee data silos, preventing leakage across organizational boundaries.
- Platform Super-Admin: A seeded system administrator manages tenants at the platform level, separate from per-tenant owners.
2. Deep Agile Project Flow & Dependency Management
- Cycle Detection Logic: Depth-first search (DFS) prevents circular task dependencies before any mutation commits.
- Milestones, Sprints & Templates: Nested subtasks, reusable sprint templates, milestones, boards/statuses, and timesheet logging tied to billable hours.
3. Unified Real-Time Collaboration Layer
- Instant Productivity: Bidirectional Socket.IO gateways push notifications, chat threads, and live updates without browser refreshes.
- Contextual Presence: Presence indicators and activity telemetry synced across the dashboard and mobile clients.
4. Enterprise-Grade Granular RBAC
- Beyond Owner/Admin/Member, BiTi includes a dynamic permission engine: tenant owners define bespoke roles with micro-level permissions, resolved at the API boundary for fast authorization.
5. Frictionless Monetization & Quota Enforcement
- Automated billing across three gateways — Stripe (cards), PayPal, and ABA PayWay (Cambodia / local) — with monthly, annual, and bi-annual pricing.
- Tiered limits enforced automatically at the API boundary:
| Plan | Price (monthly) | Users | Projects | Storage |
|---|
| Free | $0 | 5 | 3 | 500 MB |
| Starter | $12.99 | 15 | 20 | 5 GB |
| Pro | $34.99 | 50 | 100 | 25 GB |
| Enterprise | Contact Sales | Unlimited | Unlimited | 100 GB |
- Stripe webhooks (
payment_intent.succeeded, customer.subscription.deleted) and a scheduled cron job scale plans up or lock write-access on expiry.
System & Database Design
Building BiTi required architecting an extensive, optimized relational database of 47 Prisma models.
- Transactional Integrity: Prisma Interactive Transactions (
$transaction) ensure task modifications, audit logging (TaskHistory), watcher alerts, and activity tracking succeed or fail atomically.
- Soft Delete Mechanisms:
deletedAt timestamps across critical assets prevent accidental data loss and support enterprise retention policies.
- Extensive Relational Mapping: Many-to-many relationships power departments, positions, workspaces, cross-functional teams, labels, watchers, and dynamic task assignments.
Business Value
BiTi is designed with real business outcomes in mind:
- Reduce Context Switching: Chat, Kanban, bug tracking, meetings, and timesheets in one domain — on web and mobile.
- Drive Revenue: Triple-gateway billing (including a region-specific Cambodian gateway) means it can accept SaaS revenue on day one across markets.
- SEO & Growth: A dedicated Next.js marketing app delivers high Lighthouse scores and strong organic indexing.
Deployment Topology
| Layer | Service |
|---|
| Marketing & Dashboard | Vercel (Next.js + Vite SPA) |
| Backend API | Render (Docker web service, Singapore region) |
| Database | Neon serverless PostgreSQL (ap-southeast-1) |
| Object Storage | Cloudflare R2 (S3-compatible, zero egress) |
How to Use It
How to Use It
Default admin login (seeded): [email protected] / sysadmin@2026
Mobile: Open /mobile in an IDE with React Native configured. Point the API base URL to your machine's LAN IP (e.g., http://192.168.x.x:1221) and run npx start.