Izabrani projekti
Fluenta fluenta.club
AI aplikacija za učenje engleskog — jedan Go binarni fajl sa ugrađenim web UI-jem, lokalni Whisper i ocenjivanje kroz Claude Haiku. Uživo na fluenta.club.
- Go
- PostgreSQL 18
- Whisper (local STT)
- Claude Haiku
- SM-2 SRS
- Docker Swarm
- Traefik
- Hetzner
Problem
Većina aplikacija za jezik su teški SaaS stack-ovi koji prestanu da rade čim nestane mreža — ili pretplata. Hteo sam suprotno: ceo kurs A1→C1/C2 u jednom binarnom fajlu koji se pokreće offline, sa AI-jem kao opcionim poboljšanjem, a ne tvrdom zavisnošću.
Arhitektura
Fluenta se isporučuje kao jedan samostalan Go binarni fajl sa ugrađenim web UI-jem nad PostgreSQL 18. Bez PHP-a, bez Node runtime-a, bez zasebnog frontend servera — binarni fajl jeste aplikacija.
- Offline jezgro (bez ključa): pun Roadmap katalog (6 nivoa, 60 jedinica), svi materijali (video, audio udžbenika/radne sveske, izgovor, testovi, PDF), interaktivne vežbe (upiši reč / izaberi opciju) i SM-2 kartice sa intervalnim ponavljanjem za reči i nepravilne glagole.
- Govor: pregledač snima glas → lokalni Whisper transkribuje na uređaju → Claude Haiku ocenjuje odgovor sa ocenom, analizom i model odgovorom.
- Pisanje: tekst na ulazu → Claude Haiku vraća ocenu gramatike/leksike i ispravljenu verziju.
- Opcioni ključ:
ANTHROPIC_API_KEYotključava AI ocenjivanje i auto-generisanje B1+/B2+/C1 vežbi iz teksta udžbenika. Bez njega sve ostalo radi.
Isporuka
GitLab CI/CD gradi image i push-uje ga u privatni registry; Docker Swarm iza Traefik-a na Hetzner-u ga pokreće, a docker stack deploy radi health-checked rolling update — prvi produkcijski deploy podigao se HTTP 200 sa živim landing-om na fluenta.club.
Highlights
- Jedan binarni fajl + PostgreSQL — trivijalno se deployuje, trivijalno bekapuje.
- Prepoznavanje govora na uređaju (Whisper) drži glas lokalno; u cloud ide samo transkript za ocenjivanje.
- Offline-first: kurs je potpuno upotrebljiv bez troška na API; Claude je višnja, ne torta.
Lekcije
- To što sam AI učinio opcionim nateralo me je da ispod napravim zaista koristan offline proizvod — a to je bolji proizvod.
- Jedan Go binarni fajl je najpoštenija priča o deploy-u: ono što testiraš je tačno ono što ide u produkciju.