ZaloCRM is a production-grade, multi-tenant customer relationship management system deeply integrated with the Vietnamese Zalo messaging platform. It serves real-estate sales teams by unifying contact management, real-time chat, lead scoring/automation, appointment scheduling, media library, RBAC, privacy controls, and third-party integrations (Facebook Lead Ads, Telegram bridge, Google Sheets). The system is deployed as a Node.js/Fastify monolith with PostgreSQL (Prisma ORM), Redis (BullMQ queues, rate limiting), MinIO/S3-compatible storage, and Socket.IO for real-time events. It relies on the unofficial Zalo SDK (zca-js) for messaging operations and supports multiple AI providers (Anthropic, Gemini, OpenAI) for reply drafting, sentiment analysis, and appointment parsing. The architecture follows an open-core model: the Community edition ships with extension stubs (`_ee-stubs`) that are replaced in the Enterprise edition. Key entry points include auth routes (JWT with rotating refresh tokens), Zalo account management (QR login, reconnect), friend sync (cron-driven diff-then-emit), and a rich chat operations module (reactions, edits, forwards). Background jobs handle lead pool assignment, care session monitoring, scoring decay, and engagement pattern classification. The system maintains strong data invariants through Prisma extensions (tenant context, RLS preparation, safe-contact-write) and a custom privacy layer that redacts private-nick messages based on viewer role. Data flows center on the Zalo account pool: inbound messages are ingested via socket listeners or friend sync, routed to conversations via a global-aware resolver, and triggers automation hooks (care sessions, auto-tags, sequence advancement). Analytics are derived from daily engagement materialization and scoring engine (4 dimensions with weights). External dependencies are managed via Redis-backed rate limiters, while storage operations are abstracted behind a `StorageDriver` interface with local/R2 implementations. The codebase is actively maintained with daily commits, extensive Prisma migrations, and a comprehensive test suite covering privacy invariants, merge policies, and regression scenarios.
Strut is an open-core spatial presentation editor that lets users create decks of slides arranged in 3D space, with a camera flight presentation mode (impress.js-like). The application is built with React 19, TanStack Start, Vite, Tailwind 4, and TipTap/ProseMirror for rich text editing. The data layer is powered by Rindle, a custom sync engine providing optimistic local-first updates with live queries and a server daemon. Auth is handled by Better-Auth with anonymous guest-first sessions, optionally upgrading to OAuth. The application is designed to be self-hosted on Cloudflare Workers, using D1 for data and R2 for file storage, with a separate Rindle daemon for sync. AI features are a core part of the editor, allowing users to generate slides, arrange layouts, chat with the AI to edit content, and narrate from transcripts. All AI features run on the user's own OpenRouter API key (BYOK), with server-side normalization and trust boundaries to sanitize AI outputs. The editor includes a precision canvas for direct manipulation of components (text, images, shapes, video, webframes, and runnable 'artifact' components), a filmstrip slide well, and a chat panel for AI interactions. The application follows an open-core model: the open-source version is fully functional with community entitlements, while a private commercial overlay (sealed behind a #commercial module seam) adds Pro features like private decks and increased limits. Deployment is via pnpm commands, with local development using a Rindle fleet and production targeting Cloudflare Workers. The codebase demonstrates high craftsmanship in several areas: isomorphic mutator pattern (same mutation bodies run on client and server), trust-boundary normalizers for AI outputs, a history/undo system that treats AI edits as single atomic commands, and component fragments for efficient live subscriptions. However, there are some maintenance risks from duplicated constants, retired database columns, and the complexity of the commercial overlay.