SaaS / Live Chat
1ChatGo (Wideview)
Live chat SaaS με PWA, iOS TestFlight & multi-site widget σε 5 domains
Supabase edge functions + APNs push + agency multi-site dashboard
Challenge
Τι έπρεπε να λυθεί
Έπρεπε να χτιστεί live chat που να ενσωματώνεται σε WordPress, Next.js και static sites χωρίς να σπάει CSP, να δουλεύει σε mobile Safari, και να επιτρέπει σε έναν organization owner να εξυπηρετεί ταυτόχρονα dosmart.gr και άλλα Wideview brands από ένα app. Παράλληλα, native iOS app για πραγματικό push delivery αντί για web push που πέφτει στο iOS, AI co-pilot με openai/anthropic, και agency-ready features (per-agent permissions, cost cap, smart routing, agent availability).
Solution
Τι χτίσαμε
Αρχιτεκτονική 5 ξεχωριστών domains σε s3 Coolify: marketing static, widget bundle σε CDN, customer panel σε React + Vite, super admin σε React + Vite, και self-hosted Supabase (project xrbw34) με 40+ Deno edge functions και 12 active pg_cron jobs. Widget σε Preact + TypeScript με Vite IIFE bundle, Shadow DOM για style isolation, 217KB raw / 59KB gzipped. iOS app σε Expo SDK με APNs push μέσω .p8 token-based key (Team R52V8JPQJC).
Custom Modules
Τι το κάνει διαφορετικό
5-domain architecture
1chatgo.com marketing (static + dogfood widget embedded), widget.1chatgo.com cache-friendly bundle με 1y immutable + version-tagged URL, app.1chatgo.com customer panel, admin.1chatgo.com super admin, db.1chatgo.com self-hosted Supabase. Ξεχωριστά containers σε s3 Coolify, ξεχωριστό deploy, μηδενική σύζευξη.
Supabase + 40+ edge functions για conversation routing
Self-hosted Supabase project xrbw34 (14 containers σε Coolify). Deno edge functions handle: widget-init με rich visitor data + UA parsing + GeoIP, send-message με spam filter, ai-reply, send-notification (Mailgun mg.1chatgo.com), execute-flow-action, transcribe-voice, summarize-stale, translate-kb. RLS-first σε κάθε table, agent_sites scoping ώστε operator A να μη βλέπει conversations του operator B.
Native iOS app (Expo) με APNs push
Currently TestFlight v1.3.5 build 53. Expo SDK με dev client + EAS build pipeline. APNs Auth Key .p8 (key id 2H4B4Q5XJ3, Team R52V8JPQJC) για token-based push αντί για certificate-based, ώστε να μη λήγει. Mobile parity ~92% με web (AI Copilot, Team Chat, Visitor Sheet, Dashboard SVG charts). Build 51 ήταν το App Store mega sprint 2026-04-29/30.
Embeddable widget σε Preact + Shadow DOM
Preact + TypeScript + Vite IIFE, 217KB raw / 59KB gzipped. Shadow DOM για style isolation από το host site, postMessage protocol για cross-origin events, ESM + UMD outputs. 10 theme presets (incl. Bold, Brutalist), resume conversation banner, branching pre-chat survey, voice messages, file attachments direct σε Supabase Storage (bypass edge fn).
Multi-site model + agency features
Site είναι first-class entity (όχι org→site override). Per-site branding + settings + widget_key, domain enforcement, site filter στα conversations. Agent_sites RLS scoping, per-agent permissions matrix (T2.6), per-site cost cap, /leads cross-site dashboard, smart routing, agent availability schedule. Phase 1 widget rollout: dosmart.gr LIVE, pending wideview.co + mysupport.gr + social24.gr.
PWA fallback για Android + desktop
Όπου δεν υπάρχει native app, PWA με service worker handles web push, manifest.json, iOS meta tags, app icons. Installable, offline-first για ήδη loaded conversations.
Flow engine + AI features
Client-side flow execution στο widget (flowEngine.ts) με 8 trigger types και 8 step types. Visual flow editor στο admin panel. AI Knowledge Base με embeddings (pgvector ivfflat). AI summary inbox, persona auto-tune, A/B testing visual editor, funnel chart με qualified_at/won_at schema, Mark-as-won button.
Live από production
Πώς δείχνει στην πράξη
Screenshots από το ζωντανό site. Τιμές, ονόματα πελατών και ευαίσθητα στοιχεία είναι μασκαρισμένα με skeleton blur ώστε να φαίνεται μόνο το functionality.

Mobile
Hero mobile, AI-powered live chat positioning

Desktop
Hero desktop με embedded chat preview και one-line install

Desktop
Pricing με Most Popular tier highlight
Tech Stack
Με τι χτίστηκε
Όλο το stack είναι τυποποιημένο. Δεν βασίζεται σε κρυφά παραμετροποιημένα plugins ή proprietary cloud services. Μπορεί να μεταφερθεί ή να συντηρηθεί από οποιαδήποτε ομάδα γνωρίζει το stack.
FAQ
Συχνές ερωτήσεις
Επηρεάζει το widget την ταχύτητα του site μου;
Το widget bundle είναι 217KB raw / 59KB gzipped, χτισμένο με Preact + Vite IIFE σε Shadow DOM. Φορτώνεται async, οπότε δε μπλοκάρει το first paint του host site. Σε Lighthouse mobile tests σε dosmart.gr, το performance score έπεσε 0-1 point μετά την εγκατάσταση του widget. Επιπλέον το bundle έχει 1y immutable cache με version-tagged URL, οπότε επόμενες σελίδες το διαβάζουν από browser cache χωρίς network request.
Δουλεύει σε WordPress, Shopify και custom sites χωρίς conflicts;
Ναι. Το widget χρησιμοποιεί Shadow DOM για style isolation, που σημαίνει ότι το CSS του δεν επηρεάζει το CSS του host site και αντίστροφα. Το bundle είναι IIFE με ESM + UMD outputs, οπότε ταιριάζει σε WordPress (μέσω plugin ή snippet στο header), Shopify (μέσω theme.liquid), Next.js, static HTML, και οποιαδήποτε άλλη πλατφόρμα. Cross-origin events γίνονται μέσω postMessage protocol.
Γιατί native iOS app αντί για web push σε mobile Safari;
Το web push σε iOS είναι unreliable: notifications δε φτάνουν αν το browser είναι κλειστό, και δε δουλεύουν καθόλου σε iPhone iOS κάτω από συγκεκριμένη version. Native iOS app στο TestFlight (currently v1.3.5 build 53) χρησιμοποιεί APNs Auth Key .p8 (key id 2H4B4Q5XJ3, Team R52V8JPQJC) για token-based push, που σημαίνει ποτέ δε λήγει το push capability. Mobile parity με web είναι ~92% (AI Copilot, Team Chat, Visitor Sheet, Dashboard SVG charts όλα παρόντα).
Πώς διαχειρίζεται ένας organization owner πολλά sites από ένα inbox;
Το site είναι first-class entity (όχι org→site override). Per-site branding, settings, widget_key, domain enforcement, και site filter στα conversations. Agent_sites RLS scoping σημαίνει ότι operator A που είναι αναθετημένος μόνο σε site X δε βλέπει conversations του site Y που χειρίζεται operator B. Per-agent permissions matrix και per-site cost cap επιτρέπουν agency setups όπου διαφορετικά teams χειρίζονται διαφορετικά clients.
Στηρίζεται AI co-pilot και πόσο κοστίζει;
Ναι. AI features περιλαμβάνουν Knowledge Base με embeddings (pgvector ivfflat στο self-hosted Supabase), AI summary inbox, persona auto-tune, και AI reply suggestions. Τα LLM calls πάνε σε OpenAI ή Anthropic ανάλογα με task type. Έχει στηθεί per-site cost cap ώστε να μην ξεφεύγει το spend, και smart routing που προτείνει AI reply αλλά απαιτεί human approval πριν σταλεί, εκτός αν agent ξεκινήσει AI auto-mode.
Πώς χειρίζεται το widget visitors που δε θέλουν να επανασυνδεθούν σε παλιά conversation;
Resume conversation banner εμφανίζεται όταν επιστρέφει visitor με υπάρχον conversation. Ο visitor μπορεί να επιλέξει continue ή start new. Branching pre-chat survey ρωτάει qualifying questions πριν συνδεθεί με agent, οπότε το routing γίνεται στο σωστό team από την αρχή. Voice messages και file attachments υποστηρίζονται και τα attachments πάνε direct σε Supabase Storage (bypass edge function για να μην επηρεάζεται upload speed από function cold start).