[verdict][prompt curatoriat][sursă: eloqra.app]
Pot să vibecodez Eloqra?
// se construiește într-un weekend, dar rămân goluri reale
Prima jumătate se construiește într-o sesiune: un tag de script care injectează chatul, un websocket, un bot care redirecționează mesajele pe Telegram. Gaura e partea de operator — de îndată ce ai mai multe conversații deschise îți trebuie un inbox adevărat, adică o Mini App Telegram, cu reguli de platformă pe care le descoperi pe calea lentă.
încredere: ridicată
ce e: Widget de live chat gratuit pentru site-ul tău, cu mesajele care ajung pe Telegramul tău
Indice de constructibilitate · joc editorial
- Preț 4,99 $/lună greutate: zero
- Timp câteva zile greutate: plus 1
- Categorie suport clienți nu cântărește
- Moat scara infrastructurii · calitatea execuției greutate: minus 3
- Încredere ridicată greutate: plus 1
- Ce pierzi 5 elemente greutate: minus 2
- Site eloqra.app (si apre in una nuova scheda) nu cântărește
Moat-ul cântărește mai mult decât prețul: refăcut, e un proiect, nu o seară.
Gioco editoriale: il verdetto dice se un agente può, l’indice se conviene.
Ce construiești
Un singur tag de script injectează un widget de chat în site-ul tău, mesajele ajung pe Telegramul tău, iar dacă răspunzi la mesajul botului îi răspunzi vizitatorului · o conversație pe rând.
ce îți trebuie
- un token de bot Telegram de la @BotFather
- un host HTTPS pentru websocket · Telegram nu încarcă o Mini App pe http în clar
- înregistrarea la BotFather a URL-ului Mini App și a butonului de meniu, dacă vrei un inbox adevărat, nu răspunsuri în bot
Chatul e o seară · consola de operator pe Telegram e partea care mănâncă weekendul, și pentru un singur site e oricum gratis.
Promptul
Un weekend cu un agent de coding. Golurile care rămân sunt mai jos, la „ce pierzi”.
Build me a self-hosted live-chat widget whose inbox is Telegram. Requirements:
- Stack: a single Node + TypeScript service (Fastify) with SQLite via better-sqlite3.
No Docker, no separate frontend build, no accounts system.
- Embeddable widget: GET /widget.js returns a script that injects a launcher button and
chat panel into any page via one tag with data-site-id, rendered in a shadow DOM so the
host page's CSS can't leak in. No iframe. Read theme (light/dark), accent color, and
corner position from data- attributes.
- Transport: a websocket (ws) between visitor and server, with a long-poll fallback when
the socket won't open. Persist every message. Give the visitor a signed cookie id so
their thread survives a reload.
- On a conversation's first message, capture page URL, referrer, and user agent parsed to
device/browser/OS, plus coarse IP geolocation from a free API.
- Telegram: a grammY bot posts each new conversation to OWNER_CHAT_ID with that visitor
context. The operator answers using Telegram's native reply-to-message · map the
replied-to message id back to its conversation and push the text to the visitor live.
- Typing indicators in both directions, and an optional pre-chat form (name + email)
toggled per site.
- An /admin page behind basic auth listing conversations, each full thread, and a reply box,
so the widget still works when Telegram is unreachable.
- Secrets in .env: BOT_TOKEN, OWNER_CHAT_ID, ADMIN_PASSWORD, ALLOWED_ORIGINS for CORS.
- Ship a README with the exact snippet to paste and VPS deploy steps (systemd + Caddy for
TLS, since websockets need it).
- Deliberately out of scope: a phone operator console. That is a Telegram Mini App, a
second project with its own rules (initData HMAC auth, viewportStableHeight sizing,
safe-area insets); budget separate days for it. Also out: multiple operators,
billing, canned replies, AI autoresponders, and analytics dashboards. Prompt curatoriat: scris și revizuit manual pentru această aplicație. În engleză intenționat — e limba în care agenții de coding se descurcă cel mai bine.
Ce pierzi
- un inbox de operator adevărat · consola Mini App cu lista unificată a firelor de pe mai multe site-uri, badge-urile de necitite, indicatorii de scriere și deep linkurile care duc din notificare direct în conversație · răspunsurile prin bot acoperă un chat pe rând, nu cinci deodată
- săptămâna pe care o petreci învățând webview-ul Telegram în loc să scrii funcționalități · auth HMAC pe initData, dimensionare pe viewportStableHeight pentru că dvh o ia razna, două safe-area inset ca să nu ajungi sub bara de stare în fullscreen și selecția textului dezactivată, așa că a copia un mesaj cere un long-press făcut de mână
- un plan gratuit · ai cheltui zile de muncă plus o factură lunară de VPS ca să înlocuiești ceva ce, pentru un singur site, nu costă nimic
- tot ce nu e drumul fericit · reconectări de socket, trimiteri duplicate, ordonarea mesajelor pe rețele mobile instabile, rate limit-urile Telegram și cozile de retry, rotația tokenului de bot
- un hosting mereu pornit · widgetul tău e mort de fiecare dată când sunt moarte mașina ta, certificatul TLS sau websocketul, iar un chat care încetează în tăcere să se conecteze e citit de vizitator ca și cum l-ai ignora
De ce se plătește în continuare
În mare parte nu plătesc · pentru un singur site nu e nimic de plătit. Planul gratuit e pe veci, cu conversații nelimitate, inbox Telegram complet și mini-app, și toate opțiunile widgetului; 4,99 cumpără un slot de proiect în plus pentru un al doilea site și nimic altceva, iar badge-ul „powered by” apare și pe planurile cu plată. Aici logica obișnuită a listei morților se răstoarnă. Nu pui un weekend contra unui abonament: pui un weekend plus un VPS, reînnoirile TLS, logica de reconectare și gestionarea retry-urilor Telegram contra lui zero. Live chatul e și o promisiune că de cealaltă parte chiar e cineva, ceea ce îl face un lucru urât de atârnat de o mașină pe care o întreții printre altele. Singurul motiv onest ca să ți-l construiești: vrei conversațiile vizitatorilor pe hardware-ul tău, nu pe al altcuiva. Ăsta e tot argumentul, și nu e de natură economică.
moat: Scara infrastructurii Calitatea execuției ce e un moat
plan gratuit/fricțiuni de platformă/hosting
Alternative gratuite
N-ai chef să ți-o construiești? Astea există deja, sunt gratuite sau open source, și le-am verificat una câte una.
Respinse (1) — și de ce
- Chatwoot (si apre in una nuova scheda) — Vorbește Telegram, dar chaturile de pe site rămân în Chatwoot în loc să ajungă pe Telegram.
Cine l-a construit deja
Să pornești de aici e tot vibecoding: promptul e pentru când o vrei exact în felul tău.
- Chatwoot (se deschide într-o filă nouă) — self-hostable customer engagement suite · far heavier, but open source and battle-tested
Ești de acord?
Balanța voturilor
Ancora nessun voto: il tuo è il primo.
Nessun voto ancora — il primo pesa.