Externí API + služby¶
Aplikace závisí na 5 externích placených službách. Tato kapitola popisuje pricing, limity, T&Cs commercial use a fallback strategies.
Souhrn závislostí¶
| Služba | Účel | Měsíční cena (odhad) | Vendor lock-in |
|---|---|---|---|
| Supabase | Postgres + Auth + Storage + Realtime | $0 (Free) → $25/mo (Pro) | Střední (data export OK, rewrite Auth flow + Storage RLS pattern) |
| Sliplane | Backend + worker + Redis Docker hosting | ~$15-30/mo | Nízký (replace Sliplane → Render/Fly.io = 1-2 dny práce) |
| Cloudflare Workers | Frontend SSR | $0 (Free 100K req/den) → $5/mo | Nízký (Next.js → Vercel = 1 den) |
| Mistral AI | OCR (PDF + image) | per-page ~$0.001-0.030 | Vysoký (alternativa Google Document AI / AWS Textract) |
| Google Gemini | LLM + Embedding 2 | per-token cca $0.0001-0.001/1K | Vysoký (alternativa OpenAI / Anthropic) |
| Cohere Rerank | Cross-encoder rerank | $0.0025/search | Nízký (volitelné — graceful fallback na hybrid only) |
| Resend | SMTP pro magic link emaily | $0 (Free 3K/mo) → $20/mo | Nízký (alternativy: SendGrid, Postmark, AWS SES) |
Total měsíční náklady při 100 reportech / měsíc, ~5K queries: ~$30-60 USD.
Supabase¶
Plán + ceny¶
- Free: $0/mo, 500 MB DB, 1 GB storage, 50K MAU, no PITR
- Pro: $25/mo, 8 GB DB, 100 GB storage, 100K MAU, PITR 7 days
- Team: $599/mo + organizational features
- Enterprise: custom
Aktuální stav: Free plán (cubdrgjdkatyecrgckwp). Pro production pilot doporučeno Pro ($25/mo) — PITR backup je esencial.
T&C commercial¶
- ✅ Komerční SaaS use OK
- ✅ Tenant data je naše (žádný vendor data ownership claim)
- ✅ SOC2 Type II + GDPR compliance
- ⚠️ Free plán: project se "pause" po 1 týdnu inaktivity (auto-resume na request)
Limity Free plánu¶
- Auth: 50K MAU
- DB connections: 60 (default Postgres pool)
- Realtime: 200 concurrent connections
- Edge Functions: 500K invocations/měsíc (NEPOUŽÍVÁME zatím)
- Storage egress: 5 GB/měsíc
Aktuálně daleko pod limitem. Pro 100 testerů × 10 reportů = ~10K storage hits/měsíc OK.
Vendor lock-in mitigation¶
- DB schema — Postgres standard, dump+restore na jiný hosting je 1 den
- Auth — JWT custom claims pattern přenositelný (např. Auth0, Clerk)
- Storage — Supabase managed S3-compatible API. Pro migration: stáhnout všechny files (signed URLs) → upload na vlastní S3/R2 + update
storage_pathv DB - Realtime — replace s WebSocket server (např. Soketi self-host)
Migration cost: ~1-2 týdny full rewrite ze Supabase → self-hosted Postgres + custom Auth.
Site¶
- API: https://supabase.com
- Pricing: https://supabase.com/pricing
- Status: https://status.supabase.com
Sliplane¶
Plán + ceny¶
Sliplane je menší DigitalOcean-like cloud pro Docker. CZ-based (Prague).
- Free trial: 1 GB RAM × 1 server
- Pricing: per-resource (CPU + RAM + storage), typicky $5-15/mo per service
Aktuální stav: 3 services (backend + worker + redis) na sdíleném serveru. Náklady neznám přesně — odhad $15-30/mo.
T&C commercial¶
- ✅ Komerční SaaS use OK
- ⚠️ Smaller player (vs AWS / Hetzner) — outage risk vyšší
- ⚠️ Žádný auto-scale (manual rescale)
Vendor lock-in¶
Velmi nízký: - Docker images jsou portable - ENV vars + volumes — exportovatelné - Replace candidates: Render, Fly.io, Railway, Hetzner Cloud (CZ proximity), AWS ECS
Migration cost: 1-2 dny (Docker compose + ENV setup).
Site¶
Cloudflare Workers¶
Plán + ceny¶
- Free: 100K req/den, 10 ms CPU/req, žádný KV/D1 v free
- Workers Paid: $5/mo, 10M req/měsíc, 50 ms CPU/req
Aktuální stav: Free plán. CF R2 (storage) je separate billing — Free 10 GB/měsíc.
T&C commercial¶
- ✅ Komerční SaaS OK
- ✅ Cloudflare je tier-1 cloud provider
- ✅ Globální CDN included
Limity¶
- CPU per request: 10 ms (Free) / 50 ms (Paid)
- Memory: 128 MB
- Bundle size: 10 MB compressed
Aktuální FE bundle 1.3 MB gzip → daleko pod limitem.
Vendor lock-in¶
Nízký pro frontend — Next.js + @opennextjs/cloudflare je portable na Vercel (1 den práce).
CF R2 storage (S3-compatible) je k dispozici pokud bychom chtěli přejít ze Supabase Storage. NemoReport ji aktuálně NEPOUŽÍVÁ — file storage je Supabase managed.
Site¶
Mistral AI¶
Plán + ceny (OCR specifický)¶
- Pay-as-you-go: $0.001-0.030 per page (closer to $0.001 pro normal PDFs, $0.030 pro complex with bbox+document annotations)
- Free trial: $5 credit pro nové accounts
Naše use case: ~3 halíře / page × 5 stran avg = ~15 halířů per PDF report.
T&C commercial¶
- ✅ Komerční SaaS use OK (Mistral Terms of Service)
- ✅ EU-based vendor (Paris) — GDPR-friendly
- ⚠️ Žádné on-prem nebo air-gap option (zatím)
- ⚠️ Vendor lock-in pro OCR — alternativy:
- Google Document AI ($1.50 / 1000 pages)
- AWS Textract ($1.50 / 1000 pages)
- Azure Document Intelligence (~$1 / 1000 pages)
Limity¶
- HTTP timeout: SDK default ~60s, our config 15 min pro velké PDFs
- File size: max ~50 MB (per Mistral docs)
- Throughput: per-tier, default ~100 RPM
Site¶
- Pricing: https://mistral.ai/products/la-plateforme
- Docs: https://docs.mistral.ai/capabilities/document/
Google Gemini¶
Plán + ceny¶
- Free tier: limited RPM, available for testing
- Pay-as-you-go: per-token pricing
- Tier 1 quota: 1500 RPM
Gemini 3 Flash Preview (LLM)¶
- Input: ~$0.075 / 1M tokens
- Output: ~$0.30 / 1M tokens
- Naše use case: ~$0.017 per chat turn (10K in + 1K out)
Gemini Embedding 2 (GA)¶
- Input: ~$0.15 / 1M tokens (estimate, nepublikovaná final cena)
- Naše use case: ~$0.0001 per embed call (text), ~$0.001 multimodal
T&C commercial¶
- ✅ Komerční SaaS use OK
- ✅ EU data residency (možnost) — viz Google Cloud regional config
- ✅ ML free terms — žádné claims na user data v outputs
- ⚠️ Google může používat training data z prompts pokud nejste na enterprise tier (Gemini for Workspace) — viz Privacy notice
Doporučení pro produkci: upgrade na Vertex AI tier kde data nejsou použita pro training. Aktuálně používáme google-gla provider (Gemini Developer API) — pro pilot OK, pro klienty s citlivými reporty switch na Vertex AI.
Vendor lock-in¶
Vysoký pro Embedding 2 (jediný native multimodal model). Alternativy:
- OpenAI text-embedding-3-large — text only, 3072 dims, $0.13 / 1M tokens
- Cohere embed-multilingual-v3 — text only, 1024 dims
- VoyageAI voyage-3 — text only, $0.06 / 1M tokens
Pro multimodal: aktuálně Gemini-2 je #1. CLIP-based multimodal alternativy mají horší recall.
Site¶
- Pricing: https://ai.google.dev/pricing
- Privacy: https://ai.google.dev/gemini-api/terms
Cohere Rerank 4.0¶
Plán + ceny¶
- Trial: ~1000 calls/měsíc, 10 RPM
- Pay-as-you-go: $0.0025 per search (= 1 query, top_n libovolný)
- Production tier: žádný RPM limit
Naše use case: $0.0025 × 1000 queries/měsíc = $2.50/mo. Trivial cost.
T&C commercial¶
- ✅ Komerční SaaS use OK
- ✅ Žádné claims na user data v outputs
- ⚠️ Trial limity blokují pilot (1000 calls/měsíc je málo)
Doporučení: switch na Production tier (no rate limit) před opening pilot pro testery.
Vendor lock-in¶
Nízký — rerank je optional component, graceful fallback na hybrid RRF order. Alternativy:
- Voyage rerank-2 — multilingual, ale slabší pro CZ
- BGE reranker self-hosted — open source, ale operational overhead
- None (use hybrid only) — fallback vždy možný
Site¶
- Pricing: https://cohere.com/pricing
- Docs: https://docs.cohere.com/docs/rerank
Resend¶
Plán + ceny¶
- Free: 3000 emails/měsíc, 100/den
- Pro: $20/mo, 50000 emails/měsíc
Aktuální stav: Free + sandbox (jen owner email). Pro produkci potřeba doménová verifikace auth.algaweb.cz nebo auth.nemoreport.cz.
T&C commercial¶
- ✅ Komerční use OK
- ✅ EU data residency
- ✅ DKIM/DMARC verifikace included
Vendor lock-in¶
Nízký — SMTP standard. Replace candidates: SendGrid, Postmark, AWS SES, MailJet.
Site¶
Externí API — fallback summary¶
| Service down | Impact | Mitigation |
|---|---|---|
| Supabase | App nefunguje (DB + Auth) | Vendor's responsibility (status page); Pro plán má SLA |
| Sliplane | Backend nefunguje | Vendor responsibility; replace zase = 1-2 dny |
| Cloudflare | Frontend down | Vendor responsibility; tier-1 reliability |
| Mistral AI | Upload nový PDF/image neproběhne | DOCX/MHTML cesty fungují, FE zobrazí "503 OCR unavailable" |
| Gemini | Embedding stage fail | D7 soft-fail: report jde do ready s embedding_status='failed', BM25 leg pokračuje funguje, Phase D fallback na full-text dump |
| Cohere | Rerank fail | Graceful fallback na hybrid RRF order (reranked=false) |
| Resend | Magic link emaily | User nedostane sign-in email — kritické (SLA-impacting) |
Pro Resend recommended: fallback SMTP (Postmark / AWS SES) configured ready ke switch.
Total cost estimate¶
Pro pilot (~50 testerů, ~500 reportů, ~5000 queries / měsíc):
| Service | Měsíčně |
|---|---|
| Supabase Pro | $25 |
| Sliplane (3 services) | $20 |
| CF Workers Paid | $5 |
| Mistral OCR (~500 PDFs × $0.10 avg) | $50 |
| Gemini API (LLM + embed) | $30 |
| Cohere Rerank Production | $15 |
| Resend Pro | $20 |
| TOTAL | ~$165/mo |
Per report: ~$0.33 (8 Kč), per query: ~$0.03 (0.7 Kč).
Margin pro $5/měsíc subscription = $5 - $0.33 × N reports = záleží na use rate.
Pro produkci doporučeno¶
- Pre-pilot: upgrade Supabase na Pro (PITR essential)
- Pre-pilot: Resend domain verification (mimo sandbox)
- Pre-pilot: Cohere production key (mimo trial)
- Phase E launch: Vertex AI namísto Gemini Developer API (data privacy pro klientské reporty)
- Scale 1000+ users: monitorovat Sliplane CPU + RAM, případně rescale
- Backup strategy: Supabase PITR + týdenní DB dump do CF R2 (poor man's offsite backup)