One workspace instead of messenger chaos
Each project (an apartment, an office, a house) gets its own space where the studio and the client do all the work: conversations in topic channels, versioned files, one-click approvals, stages and documents. One product, three clients on a shared backend: web, iOS and Android.
Real-time chat
- Topic channels inside each project
- Instant delivery, typing indicators, reactions
- Chat history imported from Telegram
Files and versions
- Direct upload to S3, thumbnails and previews
- Versions, so the final never gets mixed up with a draft
- Categories: images, documents, video
One-click approvals
- Request → "Approve / Reject"
- Every action is logged for good
- No more arguing over who approved what
Stages, documents and passwordless login
A project roadmap with statuses, deadlines and owners is visible to both sides. Contracts and acceptance certificates are generated right in the system: HTML template → project data → PDF via Puppeteer. Login needs no password: the user gets an incoming phone call (free for them and about 10 times cheaper than SMS), with a code as the fallback.
Under the hood: a monorepo (pnpm + Turborepo). The backend runs on NestJS 10 + PostgreSQL 17/Prisma, real-time through Socket.io and Redis pub/sub, background jobs on BullMQ (previews, PDFs). The web app is Next.js 14; mobile is React Native + Expo, shipped through EAS with push notifications via Firebase. Files upload straight to S3 with presigned URLs, bypassing the server.