NeTuArk — a social media for builders in public. Tech stack: • Firebase-backed • AES-GCM encrypted DMs • PWA with offline support • Cloudinary media streaming • Custom sticker & watermark engines Let me break down the entire architecture 👇 📦 Database Layout DM channels use a deterministic ID: chatId = [email1, email2].sort().join('_') Each chat doc holds members[], deletedBy[], and clearTimestamps{} for per-user history clearing. Messages live in subcollections: chats/{chatId}/messages 🔐 Encryption & Media All DM messages are AES-GCM encrypted client-side BEFORE hitting Firestore. Keys derived via crypto.subtle.importKey. Ciphertext + IV stored as base64. Cloudinary API handles media uploads. Large backgrounds cached in IndexedDB (nta_chat_bg_db). 🛠️ SDK & Security netuark-sdk.js enforces origin lock: window.location.origin === 'https://themeet.pages.dev'. Key handshake reads sdk_keys/{apiKey} to validate permissions before any data bridge operations. ⚡ UX & Lifecycle ConvoList uses DocumentFragment for reflow-free real-time list updates. Custom 2000ms TouchHold gesture cancels on >10px scroll delta to prevent accidental deletes. Typing indicators via chatPresence heartbeats — client-evaluated, no DB locks. 🧹 Smart Clearing & Groups Messages filtered client-side against clearTimestamps[email] — delete your history, theirs stays intact. Sending a new message auto-revives cleared chats. Group deletion cascades: remove from members[] → empty group = full doc delete. 🤖 AI Resume Maker Generate your AI-powered resume directly from your profile. Access it via the gradient card on your Profile page, or view other users' published resumes from the feed with a real-time preview at resumeMaker.html?viewEmail=<email>. Full stack. Zero compromises. 🔥 🔗 netuark.pages.dev