🧱 Teknoloji Stack
FVT'nin kullandığı framework, kütüphane ve servisler
📱 Frontend
| Konu | Detay |
| Framework | Next.js 14 App Router + React Server Components |
| State (server) | TanStack Query (React Query) — cache, invalidation, deduplication |
| State (local) | Zustand + persist middleware (14 localStorage key) |
| Charts | TradingView Library (blob iframe), Recharts, echarts, d3 — toplam 10+ chart tipi |
| Analytics | PostHog v1.373.5 SDK (5 modül yüklü) |
| PWA | Manifest + Service Worker (1845 bytes, 248 chunk cache, fvt-v1) |
| Multi-tab sync | BroadcastChannel + Leader Election |
| WebSocket | Socket.IO client + Matriks raw + Binance direct |
| Fontlar | IBM Plex Sans (default), Open Sans — 2 seçenek UI'da (Lexend CSS modülü bundle'a yüklü ama UI dropdown'dan çıkarılmış, dead code · canlı tarama 2026-05-25) |
| Tema | Light / Dark / System + colorScheme (default slate — UI'da seçenek YOK, sadece Turkuaz/Mavi/Mor/Turuncu/Gri/Altın 6 renk · canlı tarama 2026-05-25) + fontSize (Küçük/Orta/Büyük) |
🔌 Backend (Tahmini)
| Konu | Detay |
| Framework | NestJS (validation pattern + dependency injection + DTO ile çok benzer) |
| Database | SQL (PostgreSQL muhtemel) — integer ID + relational |
| Cache | Redis (popular search 383K count, session) |
| Event Bus | Redis Pub/Sub (CQRS Domain Events için) |
| WebSocket Gateway | Socket.IO server |
| Auth | JWT cookie (HTTPOnly) + refresh token + 2FA setup (UI yok) |
| OAuth | Google + Apple |
| Job Queue | BullMQ veya cron (TEFAS aylık batch, KAP scraper) |
| File upload | Multer (avatar + chat image — `/uploads/avatars/{ts}-{hash}.jpg`) |
🌍 External Servisler
| Servis | Lokasyon | Kullanım |
| PostHog | analytics.fvt.com.tr (self-hosted) | Events + Session Recording + Web Vitals + Surveys + Feature Flags |
| Binance WS | wss://stream.binance.com:9443 | Kripto real-time fiyat |
| Matriks RT | wss://rt.radix.matriksdata.com:443 | BIST hisse real-time (PRO, JWT) |
| Matriks DL | wss://dl.radix.matriksdata.com:443 | BIST hisse delayed (anonim) |
| Anthropic | API | Claude Haiku → Apex AI + Portföy Analiz |
| YouTube | iframe embed | Canlı yayın (video={kod}) |
| VakıfBank Sanal POS | External | PRO ödeme |
| Parqet CDN | assets.parqet.com | Yabancı hisse logoları |
| Google OAuth | accounts.google.com | Sosyal login |
| Apple Sign-In | appleid.apple.com | Sosyal login |
| cdn.jsdelivr.net | 3rd party CDN | JS kütüphane fallback |
📲 Mobile
| iOS App ID | apps.apple.com/app/id6762521036 |
| Android Package | com.fvt.app |
| Framework | React Native veya Flutter (cross-platform — tek codebase) |
🔑 Environment Variables
NEXT_PUBLIC_API_URL Backend ana URL
NEXT_PUBLIC_WS_URL Genel WebSocket
NEXT_PUBLIC_CHAT_WS_URL Sohbet WS
NEXT_PUBLIC_CHAT_WS_PATH Sohbet WS path
NEXT_PUBLIC_GUESS_WS_URL t-Chat Tahmin WS
NEXT_PUBLIC_GUESS_WS_PATH Tahmin WS path
NEXT_PUBLIC_STOCK_WS_URL Hisse real-time WS
NEXT_PUBLIC_POSTHOG_KEY phc_ubRpP7RGjcbMXtaVsxkXicjHoXb8gitg45TBd7iZERra
NEXT_PUBLIC_POSTHOG_HOST https://analytics.fvt.com.tr
🎨 PWA Manifest
{
"name": "FVT - Finansal Veri Takibi",
"short_name": "FVT",
"display": "standalone",
"background_color": "#181A20",
"theme_color": "#181A20",
"categories": ["finance", "business"],
"icons": [192x192, 384x384, 512x512, 512x512-maskable]
}
📊 PostHog Modülleri (5)
- config.js — Bootstrap configuration
- surveys.js — In-app anket rendering
- dead-clicks-autocapture.js — Dead click UX tracking
- lazy-recorder.js — Session recording (lazy load)
- web-vitals.js — Core Web Vitals (LCP/FID/CLS/INP/TTFB)
🎯 Mimari Tercih Notu
FVT, modern bir
Next.js + NestJS stack ile, self-hosted analytics + hybrid AI (kural + LLM) + multi-tab optimization gibi enterprise-grade patternları kullanıyor.