Actualizare: 5 octombrie 2026
Platforma în română are acum alături Meet Your Bible, ediția internațională. Produsul web este lansat. Codul mobil nativ și widgeturile apar în portofoliu, însă această actualizare nu declară o lansare verificată în App Store sau Google Play. Notele originale de mai jos prezintă arhitectura MVP-ului în română.
Studiază Biblia și Meet Your Bible: platforma de studiu
Note tehnice originale din mai 2026
Studiază Biblia este o platformă de studiu biblic pentru credincioșii vorbitori de română, construită în jurul unui însoțitor AI pe nume Parakletos. Problema de pornire era banală și frustrantă în același timp: piața e dominată de aplicații englezești (YouVersion, Logos), iar un credincios din România care voia un instrument modern, mobil-first și conectat la AI în limba lui, în tradiția lui doctrinară, nu prea avea ce alege. Așa că am construit unul.
Detaliul care schimbă totul: AI-ul nu e un buton lipit deasupra unei aplicații de citit Biblia. E coloana vertebrală. Fiecare ecran — cititorul de versete, jurnalul, lista de rugăciuni, cursurile — alimentează cu context același însoțitor. Asta a dictat aproape fiecare decizie de arhitectură de mai jos.
Parakletos: AI-ul ca produs, nu ca funcție
Parakletos e un chat conștient de context care rulează RAG peste două surse: conținutul editorial din Wagtail și un graf de cunoștințe în Neo4j (versete, referințe încrucișate, teme, relații doctrinare). Ideea e că, atunci când întrebi ceva în timp ce citești un anumit pasaj, răspunsul nu pornește de la zero — știe unde ești, ce ai notat în jurnal, la ce curs lucrezi.
Ca să țin lucrurile curate, am împărțit inteligența în două aplicații Django distincte. Una, ai_assistant, se ocupă strict de persistența conversațiilor: thread-uri, mesaje, istoric. Cealaltă, ai_orchestrator, e motorul propriu-zis — decide ce context recuperează, cum construiește prompt-ul, ce model cheamă. Separarea asta pare birocratică până în ziua în care vrei să schimbi logica de recuperare fără să atingi nimic din stocarea conversațiilor. Atunci se plătește singură.
Recuperarea bazată pe graf, în loc de un simplu vector store, vine din natura textului biblic. Un verset nu există izolat; trăiește într-o rețea de referințe încrucișate și teme. Neo4j modelează asta direct, iar Parakletos poate să urmeze legăturile în loc să ghicească din similaritate semantică.
Garda pastorală: a intercepta înainte de LLM
Partea din proiectul ăsta de care sunt cel mai atașat nu e nici pe departe cea mai sofisticată tehnic. E un gard de criză.
Un instrument de studiu biblic e folosit, inevitabil, și de oameni aflați în suferință. Dacă cineva tastează un semnal de auto-vătămare, ultimul lucru pe care vrei să-l faci e să trimiți textul ăla la un LLM și să speri la un răspuns decent. Așa că am pus un interceptor bazat pe cuvinte-cheie care rulează înainte de orice apel către model. Dacă se declanșează, scurtcircuitează tot fluxul AI și returnează direct informații despre o linie de urgență. Niciun token nu pleacă spre OpenAI sau Anthropic.
E o decizie etică deghizată în decizie de inginerie. Un guard determinist, cu reguli explicite, e mai de încredere decât un model probabilistic într-exact momentul în care nu-ți permiți să greșești. RAG-ul restului produsului refuză să halucineze prin abținere; aici, refuzul e și mai categoric.
Două aplicații dintr-o singură bază de cod
Studiază Biblia e gândit ca un singur produs care se prezintă în două feluri. Versiunea liberă, în română, e MVP-ul de acum. Există însă, planificat, și un nivel internațional plătit, în șase limbi (ro/en/fr/de/es/it). Comutarea între ele se face din configurația de mediu — aceeași bază de cod, alt produs.
Pe MVP-ul de azi selectorul de limbă e ascuns intenționat: e RO-only, ca să nu promitem ceva ce nu livrăm încă. Arhitectura multilingvă e deja acolo, dar nivelul internațional și rescrierea nativă de mobil rămân în lucru (am un NATIVE_PORTING_PLAN.md care urmărește asta).
Grundarea doctrinară merită menționată separat. Produsul stă pe teologie adventistă de ziua a șaptea, ținută tacit în textul vizibil dar coaptă explicit în prompt-urile AI și în conținut. E exact opusul abordării generice a giganților — și e, cred, motivul pentru care un instrument de nișă poate câștiga.
Mobil offline-first
Pe mobil, regula e simplă: scrii întâi local. Aplicația React Native (Expo Router) scrie direct în SQLite, iar un SyncQueue urcă schimbările în fundal când există conexiune. Citești Biblia, notezi în jurnal și bifezi obiceiuri și fără semnal, iar sincronizarea se aliniază mai târziu, fără să-ți ceară voie.
Un detaliu de design pe care l-am tot rumegat: pe mobil, Parakletos nu e un tab. E un FAB auriu, prezent în colț pe fiecare ecran. Diferența pare cosmetică, dar nu e. Un tab spune „mergi într-un loc anume ca să folosești AI-ul". Un FAB peste tot spune „însoțitorul e mereu cu tine, indiferent ce faci". A doua variantă reflectă mai sincer ce e produsul.
Stack-ul
Backend: Django + Wagtail + Django REST Framework, cu Celery pentru task-uri asincrone, PostgreSQL ca bază principală, Elasticsearch pentru căutare și Neo4j pentru graful de cunoștințe din spatele RAG-ului.
Web: React 18 + Vite, Wouter pentru routing, Shadcn/ui peste Tailwind, React Query v5 pentru starea de server. E un PWA (via VitePWA), cu i18next pentru traduceri, Sentry pentru erori și PostHog pentru analytics.
Mobil: React Native + Expo Router, cu SQLite ca sursă locală de adevăr.
AI: un mix de OpenAI (GPT-4o-mini) și Anthropic, în funcție de sarcină. Cheile stau pe server, niciodată pe dispozitiv — orchestratorul mediază fiecare apel.
Infra: Docker pe Coolify, pe bare-metal, cu Traefik în față și WhiteNoise pentru fișiere statice. Există și configurații k8s/Terraform/AWS pregătite, pentru când scala o va cere.
Unde e acum / ce urmează
Sincer: MVP-ul în română e live la studiazabiblia.ro, deployat prin Coolify pe bare-metal, cu Sentry și PostHog conectate și cu peste 80 de documente istorice de fix care spun povestea fiecărui drum greșit. Folderele native de iOS și Android există. Asta e partea confirmată.
Ce încă nu e confirmat, și n-o să pretind altceva: nu am cifre de utilizatori sau de venit pe care să le pun pe masă. Statusul „live" se sprijină pe configurația de deploy și pe URL-ul documentat, nu pe metrici independente. Nivelul internațional plătit, în șase limbi, și rescrierea nativă de mobil sunt în lucru, nu livrate.
Ce vine, în ordinea în care mă gândesc la ele: scoaterea selectorului de limbă din ascundere și deschiderea nivelului internațional; finalizarea portării native de mobil; și extinderea grafului de cunoștințe ca Parakletos să urmeze relații doctrinare tot mai fine.
Dacă vrei să mergi mai în adâncime pe ideile din spate, am scris despre RAG care refuză să halucineze prin abținere și gărzi de siguranță — exact mecanismul din spatele lui Parakletos și al gărzii pastorale. Despre de ce țin cheile AI pe server și niciodată pe dispozitiv am detaliat în arhitectura AI server-side. Iar dacă te interesează contextul mai larg, Studiază Biblia e unul dintre cele 11 produse pe care le construiesc ca fondator solo.
Scriu despre lucrurile astea pe măsură ce le construiesc. Dacă vrei notele din teren direct, abonează-te la newsletter.