DO MORE SOFT
[ dokument poufny ]
Nieprawidłowy kod
INTERNAL DOCUMENT · ARCHITECTURE v0.0.1 · Q1 2026

TEXTIO
System Design

Wielokanałowa platforma SaaS — AI generuje treści w stylu Twojej marki, Ty zatwierdzasz, system publikuje automatycznie na 5+ platform.

14
Tabel DB
60+
Endpointów API
16
Tygodni MVP
768
PLN/mc koszt ops
Temat AI generuje Człowiek zatwierdza System publikuje Analityka
00A

Jak to działa

Od tematu do opublikowanego posta — 6 kroków, 30 sekund.

📝
Wpisz temat
+ parametry: ton, CTA, długość, SEO keywords
🧠
AI generuje
w stylu marki (RAG + pgvector embeddings)
✏️
Edytuj / zatwierdź
w WYSIWYG (Tiptap) z podglądem per platforma
📅
Zaplanuj
data + godzina, AI sugestie optymalnych slotów
🚀
Auto-publikacja
FB · IG · X · WordPress · WooCommerce
📊
Analityka
metryki 24h: reach, likes, clicks, CTR
← swipe / scroll →
00

Czym jest TEXTIO

Elevator pitch, problem, rozwiązanie i przewaga konkurencyjna — dla inwestorów, klientów i zespołu developerskiego.

Temat + AI = Gotowy post na 5 platform w 30 sekund
TEXTIO to wieloplatformowy SaaS, który automatycznie generuje treści marketingowe przy użyciu AI, dostosowuje je do stylu marki klienta (RAG), pozwala zatwierdzić w edytorze WYSIWYG i publikuje na Facebooku, Instagramie, X, WordPressie i WooCommerce — automatycznie, o zaplanowanej godzinie, z retry logic i analityką.
🎯
Problem rynkowy
Agencje i e-commerce tracą 15–25h/tydzień na ręczne tworzenie treści na wiele platform. Kopiują tekst z Worda do FB, IG, bloga — za każdym razem inny format.

Średni koszt junior copywritera: 4 000–6 000 PLN/mc.
TEXTIO Pro: 149 PLN/mc — 27x taniej.
💡
Rozwiązanie TEXTIO
Jeden system: AI generuje treść w stylu marki (RAG) → człowiek zatwierdza w WYSIWYG → system publikuje automatycznie na FB, IG, X, WordPress, WooCommerce. Zero copy-paste.

1-to-Many: Jeden temat = post FB + IG + X + blog + opis produktu. 5 formatów w 30 sekund.
📊
Rynek docelowy
TAM: 150K+ agencji i e-commerce w PL+CEE
SAM: ~30K firm aktywnie prowadzących social media
SOM rok 1: 50 klientów = 99K PLN ARR
SOM rok 3: 500 klientów = ~1M PLN ARR
⚔️
Przewaga konkurencyjna
CechaTEXTIOHootsuite/BufferChatGPT/Jasper
AI generowanieRAG + styl markiBrakBasic
Auto-publikacja5+ platformManualBrak
E-commerceWooCommerceBrakBrak
Cena od49 PLN/mc~420 PLN/mc~210 PLN/mc
🏗️
Kto buduje
Do More Soft — software house & venture builder z Kielc. ~16 osób w zespole. 10+ lat doświadczenia. 11 własnych produktów SaaS. Klienci enterprise: automotive (Mazda, Porsche), fintech (Visa), govtech (ZUS, NFZ, Orlen). TEXTIO to 12. produkt.
💰
Unit economics
LTV: 2 980 PLN
CAC target: ~1 000 PLN
LTV/CAC: 3:1
Break-even: 20 klientów
🗺️
Roadmap highlights
Phase 2: LinkedIn, TikTok, Shopify, AI Content Calendar, 1-to-Many, Zapier
Phase 2B: Zdjęcia jako kontekst (Gemini Vision), AI grafiki (DALL-E), karuzele IG, Canva
Phase 3: GA4 + konwersje, public API + SDK, PWA, AI A/B testing, video scripty
Wartość dla każdej grupy odbiorców tego dokumentu
OdbiorcaCo TEXTIO dajeKluczowa metryka
InwestorSkalowalny SaaS z 85% marży brutto, niski CAC przez PLN pricing, LTV/CAC = 3:1Break-even przy 20 klientach
Klient (agencja)Oszczędza 15–25h/tydzień na tworzeniu treści, white-label dla swoich klientówROI: 399 PLN/mc vs koszt pracownika
Klient (e-commerce)Opisy produktów WooCommerce generowane z AI, sync, publikacja na social1000 opisów/mc w planie Agency
DeveloperNowoczesny stack (Next.js 15, Express, FastAPI), 60+ REST endpoints, Fly.io + Neon16 tygodni do MVP, 8 sprintów
Kalkulator ROI
520100
102560
Oszczędność czasu / mc
33h
Wartość vs copywriter (4500 PLN/mc)
2 813 PLN
TEXTIO Pro: 149 PLN/mc · ROI: 18.9x
Scenariusze użycia
🏢
Agencja marketingowa
5 klientów, 3 kanały każdy = 15 kanałów. 200 postów/mc w planie Pro.

Bez TEXTIO: 3 copywriterzy × 4500 PLN = 13 500 PLN/mc
Z TEXTIO: 1 manager + Pro plan = 149 PLN/mc + nadzór
White-label: klient widzi logo agencji, nie TEXTIO
🛒
E-commerce (200 produktów)
WooCommerce sync → AI generuje opisy + posty social per produkt.

Bez TEXTIO: 200 opisów × 25 min = 83h pracy
Z TEXTIO: bulk generate → review → publish = 4h
Bonus: auto-post na FB/IG przy dodaniu nowego produktu
👤
Freelancer / solopreneur
Blog + Instagram + Facebook. 50 postów/mc w planie Starter.

Bez TEXTIO: 12h/tydzien na content = 48h/mc
Z TEXTIO: 49 PLN/mc, 3h/mc na review
Efekt: więcej czasu na klientów zamiast pisania postów
00C

Spróbuj AI w akcji

Symulacja generowania postu — tak wygląda praca z TEXTIO.

textio-ai-generator.app
Parametry
Platforma
Temat
Ton
Długość
CTA (wezwanie do działania)
SEO keywords
Model: Gemini 2.0 Flash · RAG: 3 przykłady stylu · Brand: „ModaBrand"
Wygenerowany post
00B

Competitive Matrix

Porównanie TEXTIO z głównymi konkurentami na rynku — funkcje, compliance, cena.

Feature TEXTIO Hootsuite Buffer Jasper ChatGPT
AI generowanie treści ✓ RAG basic basic
Nauka stylu marki ✓ pgvector
Multi-channel publish ✓ auto manual manual
E-commerce (WooCommerce)
Scheduler + retry ✓ BullMQ
White-label
WYSIWYG edytor ✓ Tiptap
RBAC (5 rol)
Dane w EU (GDPR) ✓ Frankfurt ✗ US ✗ US ✗ US ✗ US
Cena od 49 PLN/mc $99/mc $6/mc $49/mc $20/mc
01

Kluczowe decyzje

Strategiczne wybory technologiczne, które definiują całą architekturę systemu.

🧠
Gemini 2.0 Flash + LiteLLM Router
Najlepszy stosunek cena/jakość. ~0.0002 PLN/post. LiteLLM daje hot-swap między modelami — fallback na GPT-4o-mini bez zmiany kodu. RAG pipeline z pgvector uczy się stylu marki klienta.
🏢
Shared DB + RLS
Multi-tenancy z Row Level Security na poziomie PostgreSQL. tenant_id na każdym wierszu. Idealne przy <500 tenantach — jeden DB instance, zero overhead.
BullMQ scheduler
Delayed jobs z dokładnością do minuty. Retry 3× co 15 min. Dead letter queue. Niezawodna kolejka zamiast kruchego crona.
💰
Fly.io MVP → Hetzner Scale
MVP na Fly.io (Amsterdam EU): zero DevOps, deploy w godzinach, ~150 PLN/mc. Po walidacji (>50 klientów): migracja na Hetzner Frankfurt — 4× taniej niż AWS, pełna kontrola.
🏷️
White-label: Subdomain
klient.textio.app → CNAME → Cloudflare → Next.js middleware → tenant context → branded UI. Zero dodatkowej infrastruktury na nowego klienta.
02

Tech Stack

Starannie dobrany zestaw technologii optymalizujący DX, koszt i compliance.

Frontend
Next.js 15 TypeScript 5 TailwindCSS 4 shadcn/ui Zustand TanStack Query Tiptap Editor next-intl (PL/EN)
Backend API
Node.js 22 LTS Express TypeScript Zod DrizzleORM BullMQ Resend
AI Microservice
Python 3.12 FastAPI LiteLLM LangChain pgvector Gemini 2.0 Flash text-embedding-004
Infrastructure
Fly.io (Amsterdam EU) PostgreSQL 16 Neon PostgreSQL Redis 7 (Upstash) Docker Cloudflare CDN/WAF Sentry Stripe + PayU
Next.js 15ExpressGemini 2.0 FlashPostgreSQL 16BullMQpgvectorFly.ioNeonCloudflareDrizzleORMLiteLLMTiptapZustandTanStack QueryZodResendLangChain Next.js 15ExpressGemini 2.0 FlashPostgreSQL 16BullMQpgvectorFly.ioNeonCloudflareDrizzleORMLiteLLMTiptapZustandTanStack QueryZodResendLangChain
03

System Architecture

Warstwy systemu od użytkownika do zewnętrznych platform.

👤
Użytkownik
przeglądarka / responsive web
🛡️
Cloudflare CDN + WAF
TLS 1.3 · DDoS · caching · DNS
⚛️
Next.js 15 Frontend + BFF
RSC · i18n PL/EN · Tiptap · White-label theming
🔥
Express API Server (Node.js 22)
JWT · Multi-tenancy RLS · RBAC · Webhooks Stripe/PayU
🗄️
PostgreSQL 16
pgvector · RLS · Drizzle migrations
Redis + BullMQ
Queue · Scheduler · Cache · Sessions
🧠
AI Microservice (Python + FastAPI)
LiteLLM → Gemini 2.0 Flash | GPT-4o-mini fallback | RAG pipeline
🔌
Integration Layer
Meta Graph API · X API v2 · LinkedIn API · TikTok · WordPress REST · WooCommerce REST
textio-sequence-diagram.flow
scroll = zoom · drag = pan
100%
sequenceDiagram participant U as Użytkownik participant FE as Next.js Frontend participant API as Express API participant AI as AI Microservice participant DB as PostgreSQL participant Q as BullMQ + Redis participant EXT as Platform API (FB/IG/X) U->>FE: Wpisz temat + parametry FE->>API: POST /posts/generate API->>DB: Pobierz brand_profile + examples API->>AI: POST /ai/generate (prompt + RAG context) AI->>AI: Gemini 2.0 Flash + moderacja AI-->>API: Wygenerowany tekst + moderation score API->>DB: Zapisz post (status: draft) API-->>FE: Zwróć post do edytora U->>FE: Edytuj + Zatwierdź + Zaplanuj FE->>API: POST /posts/:id/schedule API->>Q: Dodaj delayed job (scheduled_at) API-->>FE: Potwierdzenie Note over Q: Czas mija... scheduled_at Q->>API: Trigger: czas publikacji API->>EXT: Publikuj post (Meta Graph API / X API / WP REST) alt Sukces EXT-->>API: 200 OK + post_id API->>DB: status: published else Blad EXT-->>API: Error API->>Q: Retry za 15 min (max 3x) end Note over Q: 24h później Q->>API: Trigger: pobierz metryki API->>EXT: GET metryki (reach, likes, comments) API->>DB: Zapisz analytics
04

Diagram ERD

14 tabel z relacjami — kompletny schemat bazy danych PostgreSQL 16 + pgvector.

textio_schema.sql — Entity Relationship Diagram
scroll = zoom · drag = pan
100%
erDiagram TENANTS { uuid id PK string name string slug UK string plan string status date trial_ends_at string stripe_customer_id string white_label_domain jsonb settings } USERS { uuid id PK uuid tenant_id FK string email UK string password_hash string role jsonb permissions string language } BRAND_PROFILES { uuid id PK uuid tenant_id FK string name string tone text persona jsonb seo_keywords } BRAND_EXAMPLES { uuid id PK uuid brand_profile_id FK text content vector embedding } CHANNELS { uuid id PK uuid tenant_id FK string type string name text access_token_enc boolean is_active } CAMPAIGNS { uuid id PK uuid tenant_id FK uuid brand_profile_id FK string name string status date start_date date end_date } POSTS { uuid id PK uuid tenant_id FK uuid campaign_id FK uuid channel_id FK string status string platform text content integer ai_tokens_used timestamp scheduled_at timestamp published_at } POST_VERSIONS { uuid id PK uuid post_id FK text content_before text content_after string action } PUBLICATION_JOBS { uuid id PK uuid post_id FK string status integer attempt_number text error_message } AI_QUOTA { uuid id PK uuid tenant_id FK integer month integer posts_limit integer posts_used } ANALYTICS { uuid id PK uuid post_id FK integer reach integer likes integer comments integer clicks } SUBSCRIPTIONS { uuid id PK uuid tenant_id FK string plan string payment_provider string external_id decimal monthly_price } INVOICES { uuid id PK uuid subscription_id FK decimal amount string status } NOTIFICATIONS { uuid id PK uuid user_id FK uuid post_id FK string type string channel boolean is_read } TENANTS ||--o{ USERS : "has" TENANTS ||--o{ BRAND_PROFILES : "owns" TENANTS ||--o{ CHANNELS : "connects" TENANTS ||--o{ CAMPAIGNS : "runs" TENANTS ||--o{ AI_QUOTA : "monthly" TENANTS ||--|| SUBSCRIPTIONS : "pays" SUBSCRIPTIONS ||--o{ INVOICES : "generates" BRAND_PROFILES ||--o{ BRAND_EXAMPLES : "learns" BRAND_PROFILES ||--o{ CAMPAIGNS : "guides" CAMPAIGNS ||--o{ POSTS : "contains" CHANNELS ||--o{ POSTS : "targets" POSTS ||--o{ POST_VERSIONS : "tracks" POSTS ||--o{ PUBLICATION_JOBS : "schedules" POSTS ||--o{ ANALYTICS : "measures" POSTS ||--o{ NOTIFICATIONS : "triggers" USERS ||--o{ NOTIFICATIONS : "receives"
Opis tabel
TabelaOpisKluczowe polaRelacje
TENANTSOrganizacja / klient SaaSslug, plan, white_label_domain, settingsMaster entity
USERSUżytkownicy z RBACrole, permissions, language→ tenant
BRAND_PROFILESProfile marki (ton, styl, SEO)tone, persona, seo_keywords→ tenant
BRAND_EXAMPLESPrzykłady → embeddings RAGcontent, embedding (vector)→ brand_profile
CHANNELSPołączone konta platformtype, access_token_encrypted→ tenant
CAMPAIGNSKampanie marketingowestatus, start_date, end_date→ tenant, brand
POSTSWygenerowane treścistatus, platform, content, scheduled_at→ campaign, channel
POST_VERSIONSHistoria edycjiaction, content_before/after→ post
PUBLICATION_JOBSKolejka publikacjistatus, attempt_number, error→ post
AI_QUOTALimity i zużycie AI/mcposts_limit, posts_used→ tenant
ANALYTICSMetryki z platformreach, likes, comments, clicks→ post
SUBSCRIPTIONSAktywna subskrypcjaplan, payment_provider→ tenant
INVOICESFaktury / płatnościamount, status→ subscription
NOTIFICATIONSPowiadomieniatype, channel, is_read→ user, post
05

User Journey

Od rejestracji do opublikowanego posta — kompletny flow użytkownika.

user-journey-main.flow
scroll = zoom · drag = pan
100%
flowchart TD START([Nowy użytkownik]) --> REG[Rejestracja email + hasło] REG --> TRIAL[7-dniowy trial · plan Pro · limit 15 postów] TRIAL --> OB1[Onboarding 1 ── Brand Profile: nazwa, ton, branża] OB1 --> OB2[Onboarding 2 ── Połącz kanały: FB / IG / X / LinkedIn / WordPress] OB2 --> OB3[Onboarding 3 ── Wklej przykładowe teksty → nauka stylu AI] OB3 --> DASH[Dashboard główny] DASH --> A{Co chcę zrobić?} A --> |Nowy post| GEN1[Wybierz platformę docelową] A --> |Kalendarz| CAL[Widok kalendarza] A --> |Kampania| CAMP[Menedżer kampanii] A --> |Analityka| ANA[Raporty i metryki] GEN1 --> GEN2[Wpisz temat + parametry: ton, CTA, długość, SEO] GEN2 --> GEN3[AI generuje treść — Gemini 2.0 Flash] GEN3 --> GEN4{Wynik OK?} GEN4 --> |Tak| EDIT[Edytor WYSIWYG – edytuj / zatwierdź] GEN4 --> |Nie| REGEN[Regeneruj z feedbackiem] REGEN --> GEN4 EDIT --> WF{Workflow?} WF --> |Auto-publish| SCHED[Zaplanuj datę i godzinę] WF --> |Zatwierdzenie| NOTIF[Email + Push do reviewera] NOTIF --> REV{Reviewer decyduje} REV --> |Zatwierdź| SCHED REV --> |Odrzuć| BACK[Powrót z feedbackiem] BACK --> EDIT SCHED --> QUEUE[BullMQ — zaplanowany job] QUEUE --> PUB[Publikacja przez API platformy] PUB --> RES{Sukces?} RES --> |Tak| DONE[Status: Published ✓] RES --> |Nie| RETRY[Retry 3× co 15 min] RETRY --> RES2{Po 3 próbach?} RES2 --> |OK| DONE RES2 --> |Błąd| ALERT[Alert email — Status: Failed] DONE --> FETCH[Cron: pobierz metryki 24h po publikacji] FETCH --> ANA
user-journey-roles-billing.flow
scroll = zoom · drag = pan
100%
flowchart LR subgraph AG[AGENCJA — tenant owner] AG1[Zarządza wieloma markami] AG2[Tworzy workspaces per klient] AG3[Zaprasza użytkowników RBAC] AG4[Konfiguruje white-label] end subgraph RL[ROLE W SYSTEMIE] R1[OWNER — pełen dostęp + billing] R2[MANAGER — kampanie i kanały] R3[EDITOR — tworzy i edytuje posty] R4[VIEWER — read-only dashboard] R5[CLIENT — zatwierdza, widzi swoje dane] end subgraph BI[ŚCIEŻKA SUBSKRYPCJI] B1([Trial 7 dni — 15 postów]) --> B2{Koniec trial} B2 --> |Kupuje| B3[Płatność Stripe / PayU] B2 --> |Nie kupuje| B4[Konto zablokowane 30 dni] B3 --> B5[Aktywna subskrypcja auto-renew] B5 --> B6{Quota wyczerpana?} B6 --> |Tak| B7[Kup +50 postów / 29 PLN] B6 --> |Nie| B8[Kontynuuj] end AG3 --> R1 AG3 --> R2 AG3 --> R3 AG3 --> R4 AG3 --> R5
06

REST API v1

Base: api.textio.app/v1 — Auth: Bearer JWT — 13 grup, 60+ endpointów.

🔐 Auth
6
POST/auth/registerRejestracja tenant + owner
POST/auth/loginLogowanie → JWT
POST/auth/refreshOdświeżenie access tokena
POST/auth/logoutUnieważnienie refresh tokena
POST/auth/password-reset/requestŻądanie resetu hasła
POST/auth/password-reset/confirmPotwierdzenie resetu
👥Users
5
GET/usersLista użytkowników tenanta
POST/users/inviteZaproś nowego użytkownika
GET/users/meDane zalogowanego
PATCH/users/:idZmiana roli / uprawnień
DEL/users/:idSoft delete (GDPR 30d)
🎨Brand Profiles
6
GET/brand-profilesLista profili marki
POST/brand-profilesUtwórz profil marki
PATCH/brand-profiles/:idEdytuj profil
POST/brand-profiles/:id/examplesDodaj przykład stylu → embedding
DEL/brand-profiles/:id/examples/:eidUsuń przykład
DEL/brand-profiles/:idUsuń profil
🔗Channels
9
GET/channelsLista połączonych kanałów
POST/channels/connect/facebookOAuth → Facebook Pages
POST/channels/connect/instagramOAuth → Instagram Business
POST/channels/connect/xOAuth → X (Twitter)
POST/channels/connect/linkedinOAuth → LinkedIn Pages
POST/channels/connect/wordpressREST → WordPress
POST/channels/connect/woocommerceREST → WooCommerce
POST/channels/:id/testTest połączenia
DEL/channels/:idOdłącz kanał
📝Posts & AI Generate
10
GET/postsLista postów
POST/posts/generate★ Główny endpoint AI
POST/posts/:id/regenerateRegeneracja z feedbackiem
GET/posts/:idSzczegóły posta
PATCH/posts/:idEdycja treści (WYSIWYG)
POST/posts/:id/approveTutaj reviewer zatwierdza
POST/posts/:id/rejectOdrzucenie z komentarzem
POST/posts/:id/scheduleZaplanuj publikację
GET/posts/:id/versionsHistoria edycji
DEL/posts/:idArchiwizuj post
Przyklad: Generowanie posta AI
REQUEST
POST /v1/posts/generate
Authorization: Bearer eyJhbG...
Content-Type: application/json

{
  "brand_profile_id": "bp_abc123",
  "platform": "facebook",
  "topic": "Premiera nowej kolekcji wiosna 2026",
  "parameters": {
    "tone": "casual",
    "length": "medium",
    "cta": "Sprawdz kolekcje →",
    "hashtags": true,
    "seo_keywords": ["moda wiosna", "nowa kolekcja"]
  }
}
RESPONSE 200
{
  "success": true,
  "data": {
    "id": "post_xyz789",
    "status": "draft",
    "platform": "facebook",
    "content": "🌸 Wiosna 2026 to kolory, ktore mowia \nsame za siebie! Nasza nowa kolekcja \nlaczy minimalizm z odwaga...\n\nSprawdz kolekcje → link.textio.app/k32f\n\n#modawiosna #nowakolekcja #style2026",
    "ai_tokens_used": 847,
    "ai_model": "gemini-2.0-flash",
    "rag_examples_used": 3,
    "moderation": { "safe": true, "score": 0.98 }
  }
}
📅Calendar
2
GET/calendar?from=&to=Zaplanowane posty w zakresie
GET/calendar/suggestionsAI sugestie najlepszych godzin
📊Analytics
3
GET/analytics/dashboardOverview metryk tenanta
GET/analytics/posts/:idMetryki per post
POST/analytics/digest/sendWymuś odświeżenie digestu
📦Products
3
GET/productsLista zsynchronizowanych produktów
POST/products/sync/woocommerceSync z WooCommerce
POST/products/import/csvImport CSV produktów
💳Billing & Quota
7
GET/billing/subscriptionAktywna subskrypcja
POST/billing/checkoutStripe checkout session
POST/billing/checkout/payuPayU BLIK/przelew
POST/billing/upgradeUpgrade planu (prorate)
POST/billing/cancelAnuluj subskrypcję
GET/billing/invoicesHistoria faktur
GET/billing/quotaLimity i zużycie
🏷️White-Label
2
GET/white-label/settingsKonfiguracja white-label
PATCH/white-label/settingsZmiana domeny / logo / kolorów
🔔Notifications
3
GET/notificationsLista powiadomień
PATCH/notifications/:id/readOznacz jako przeczytane
POST/notifications/read-allOznacz wszystkie
🇪🇺GDPR
2
GET/gdpr/exportExport wszystkich danych (art. 20)
DEL/gdpr/delete-accountPrawo do usunięcia (30d)
07

MVP 1.0 Scope

Zamrożony zakres funkcjonalny pierwszej wersji produktu — 16 tygodni, 8 sprintów, 54 zadania.

Zasada cięcia zakresu
Reguła: Jeśli funkcja nie jest konieczna do tego, żeby pierwszy płacący klient mógł wygenerować, zatwierdzić i opublikować post — nie wchodzi do MVP 1.0.

Cel: Dostarczyć działający produkt gotowy do sprzedaży w możliwie najkrótszym czasie, walidujący core value proposition: AI generuje → człowiek zatwierdza → system publikuje.

Definition of Done: Użytkownik rejestruje się → łączy FB+IG+LinkedIn+WP → generuje post AI → edytuje → zatwierdza → planuje → system publikuje automatycznie → widzi metryki po 24h → płaci cyklicznie.
ModułZakresTasks
Auth & TenancyRejestracja, JWT, multi-tenancy RLS, 7-dniowy trial (15 postów), onboarding wizard 3 kroki, i18n PL+EN, reset hasła7
Brand Profiles & RAGCRUD profilu marki (ton, persona, SEO), przykłady stylu → embeddings pgvector, do 10 profili (Pro)4
KanałyOAuth: Facebook, Instagram, X, LinkedIn · REST: WordPress, WooCommerce · Test + auto-refresh tokenów, status w UI8
Generator AIGenerowanie na 6 platform, parametry (ton/CTA/hashtagi/SEO), RAG styl marki, Gemini + GPT-4o-mini fallback, moderacja, regeneracja, podgląd per platforma7
Workflow & EdytorTiptap WYSIWYG, historia wersji, flow: draft→review→approved / auto_publish, zatwierdź/odrzuć z komentarzem, email na review + po publikacji7
HarmonogramPlanowanie co do minuty, kalendarz (miesiąc/tydzień), BullMQ delayed jobs, retry 3× / 15min, alert email po failure, AI sugestie godzin6
RBAC5 ról (owner/manager/editor/viewer/client), zaproszenia email, granularne uprawnienia3
BillingStripe + PayU (BLIK), 4 plany, upgrade/downgrade/cancel, dodatkowe kredyty, faktury6
Analityka & WLDashboard metryki, email-digest tygodniowy, quota meter, white-label (subdomain+logo+kolory), Resend custom domain, GDPR (delete/export/DPA)6
RAZEM54
FazaZakresStatus
Faza 2
3–6 mies. po launchu
TikTok auto-publish, Shopify + Webflow, WooCommerce CSV import, Web Push, RAG fine-tuning per post-type, komentarze w zatwierdzaniuLATER
Faza 2B — Media & Visual
4–8 mies. po launchu
Zdjęcia jako kontekst: upload zdjęcia produktu/lokalizacji → AI analizuje obraz (Gemini Vision) i generuje treść dopasowaną do tego co widzi na zdjęciu — opis produktu z faktycznymi cechami, post social z nawiązaniem do zdjęcia. Eliminuje problem „AI pisze generyczne teksty".
Galeria mediów: centralna biblioteka zdjęć per brand profile, tagowanie AI (auto-rozpoznawanie: produkt, lifestyle, event), wyszukiwanie po tagach, integracja z Hetzner Object Storage.
AI generowanie grafik: na bazie treści posta → AI (DALL·E 3 / Stable Diffusion) generuje grafikę dopasowaną do platformy (kwadrat IG, prostokąt FB, banner LinkedIn). Prompt budowany automatycznie z kontekstu posta + brand guidelines.
Karuzele i multi-image: generowanie zestawu 3–10 grafik do karuzeli Instagram/LinkedIn z jednego tematu. Każdy slide ma inny hook/punkt — AI planuje storytelling per slide.
Canva integration: dwukierunkowa integracja — import szablonów z Canva, eksport wygenerowanych treści do Canva do dalszej edycji graficznej. Dla zespołów gdzie designer kończy to co AI zaczęło.
LATER
Faza 3
6–12 mies. po launchu
GA4 + zaawansowana analityka + konwersje, publiczne API REST + webhooks + SDK, Mobile PWA (install prompt, offline), AI A/B testing (2 wersje posta → system wybiera lepszą), eksport raportów PDF/Excel, BaseLinker (e-commerce multi-channel), video script generator (Reels/TikTok scripty z timingiem)LATER
Wykluczone
Nigdy / Enterprise only
Fine-tuning LLM per klient (koszt prohibitywny), natywna app iOS/Android, self-hosted on-premiseN/A
08

Model cenowy

Cztery plany + trial 7 dni (Pro, 15 postów) + dokup kredytów on demand.

Miesiecznie
Rocznie -20%
Starter
49 49 PLN/mc
  • 50 postów / miesiąc
  • 1 workspace
  • 3 kanały (FB / IG / Blog)
  • 2 profile marki
  • WYSIWYG + regeneracja AI
  • Harmonogram publikacji
  • X (Twitter) — niedostępny
  • White-label — niedostępny
Agency
399 399 PLN/mc
  • 1 000 postów / miesiąc
  • Unlimited workspaces
  • Wszystkie kanały
  • Unlimited profili marki
  • White-label: domena + logo + kolory
  • Pełny RBAC (5 ról)
  • Priorytetowy support
  • Custom email sender domain
Enterprise
Indywidualnie
Kontakt z zespołem sprzedaży
  • Unlimited postów
  • Unlimited workspaces
  • Wszystkie kanały + custom
  • Dedicated Account Manager
  • SLA 99.9% uptime
  • Custom integrations
  • Priority support 24/7
  • SSO / SAML
➕ Dodatkowe kredyty: +50 postów / 29 PLN
Wszystkie plany: 7-dniowy trial bez karty · Anuluj w dowolnym momencie · Dane w EU
09

Total Cost of Ownership

Koszty operacyjne, break-even, marże — analiza rentowności w różnych scenariuszach.

768
PLN/mc ops cost
~20
klientów do break-even
85%
marża brutto @50 klientów
0.08gr
koszt AI per post
Koszty infrastruktury miesięczne
KomponentSpecEUR/mcPLN/mc
Next.js (Fly.io, AMS)shared-1x, 256MB~$6~23
Express API (Fly.io, AMS)shared-1x, 256MB~$6~23
FastAPI AI (Fly.io, AMS)shared-2x, 512MB~$12~47
Neon PostgreSQLFree → Pro $19$0–190–74
Redis (Upstash EU)~100K req/dzień~$5~21
Object Storage (Hetzner)1TB, S3-compat.~$5.50~21
Cloudflare ProCDN + WAF~$20~78
X (Twitter) APIBasic plan~$100~390
Gemini AI + embed~50 tenantów~$9~35
Resend (email)~50K/mc~$20~78
RAZEM~$197~768
Analiza break-even (mix planów)
TenantówAvg ARPUPrzychód/mcKoszty/mcMarżaStatus
10149 PLN1 490 PLN768 PLN+722 PLNZysk
20149 PLN2 980 PLN800 PLN+2 180 PLNBreak-even ✓
50165 PLN8 250 PLN1 200 PLN+7 050 PLNZysk
100165 PLN16 500 PLN2 200 PLN+14 300 PLNZysk
Koszt AI per plan — marże
PlanCenaLimitKoszt AIX API shareMarża AI
Starter49 PLN50~0.04 PLN~7.80 PLN+41 PLN
Pro149 PLN200~0.16 PLN~7.80 PLN+141 PLN
Agency399 PLN1 000~0.80 PLN~7.80 PLN+390 PLN
Extra29 PLN+50~0.04 PLN+28.96 PLN
Ryzyka kosztowe
RyzykoP-stwoImpactMitygacja
Wzrost cen Gemini APIŚrednieNiskiLiteLLM router → swap model
X API podniesie cenyWysokieŚredniX tylko Pro+, manual fallback
Viral growth → infraNiskieWysokiFly.io auto-scale → Hetzner @50+
Niska konwersja trialŚrednieWysokiLepszy onboarding, limit 15
Meta API breaking changesŚrednieWysokiAbstraction layer, monitoring
LTV = 2 980 PLN  |  CAC target = ~1 000 PLN
5% churn = avg 20 mc lifetime × 149 PLN ARPU. Target ARR rok 1 (50 klientów) = ~99 000 PLN
10

8 sprintów → 16 tygodni

Horizontalny scroll — każdy sprint to 2 tygodnie pracy.

SPRINT 01
Tydzień 1–2
Infra · Auth · DB · CI/CD
Fly.io provisioning, Neon PostgreSQL + pgvector, Redis, GitHub Actions, Cloudflare, Auth JWT + refresh, Drizzle migrations.
SPRINT 02
Tydzień 3–4
Brand Profiles · RAG · AI
Python FastAPI microservice, LiteLLM router (Gemini + GPT-4o-mini), RAG pipeline z pgvector, text-embedding-004, Brand Profile CRUD.
SPRINT 03
Tydzień 5–6
Integracje kanałów
Meta Graph API OAuth (FB Pages + IG), X API v2 OAuth, LinkedIn API OAuth, WordPress REST, WooCommerce REST, test connection, token refresh.
SPRINT 04
Tydzień 7–8
Generator AI · Edytor · Workflow
POST /posts/generate, regeneracja z feedbackiem, Tiptap WYSIWYG, workflow (draft → review → approve → schedule), moderacja AI.
SPRINT 05
Tydzień 9–10
Scheduler · BullMQ · Kalendarz
BullMQ delayed jobs, retry 3× / 15min, dead letter queue, widok kalendarza, AI sugestie godzin, alert email on failure.
SPRINT 06
Tydzień 11–12
Billing · RBAC · White-Label
Stripe checkout + webhooks + prorate, PayU BLIK, 4 plany + extra credits, RBAC 5 ról, white-label (subdomain, logo, kolory).
SPRINT 07
Tydzień 13–14
Analityka · Digest · GDPR
Analytics fetch (24h post-publish), dashboard metryk, email-digest (Resend), GDPR endpoints, Onboarding Wizard, quota usage UI.
SPRINT 08
Tydzień 15–16
QA · E2E · Soft Launch 🚀
Playwright E2E testy, load testing, security audit, performance optimization, staging deploy, beta klienci, monitoring setup.
← swipe / scroll →
10A

Roadmap Post-MVP

Fazy rozwoju po MVP — nowe kanały, integracje, AI capabilities.

Phase 2 — Ekspansja kanałów
Q3–Q4 2026
LinkedIn API TikTok auto-publish Shopify integration AI Content Calendar 1-to-Many repurposing Zapier webhooks
Phase 2B — Media & Visual Content
Q4 2026 – Q1 2027
Zdjęcie → AI opis (Gemini Vision) Galeria mediów + auto-tagi AI generowanie grafik (DALL-E) Karuzele IG/LinkedIn Canva integration
Phase 3 — Advanced AI & Scale
2027
GA4 + konwersje Public REST API + SDK Mobile PWA AI A/B testing Video scripty (Reels/TikTok) Eksport PDF/Excel
11

Security & GDPR

Bezpieczeństwo, szyfrowanie, izolacja danych, compliance EU.

🔒
Szyfrowanie
Hasła: bcrypt (12 rounds). Tokeny API: AES-256-GCM. Transport: TLS 1.3. At-rest: Neon/Hetzner managed encryption.
🪪
Autentykacja
JWT access (15 min) + refresh (30 dni, rotacja). Rate limit: 100 req/min /IP, 50 /user. CSRF protection.
🛡️
WAF & DDoS
Cloudflare Pro: OWASP Top 10 rules, rate limiting, bot detection, DDoS mitigation. CSP headers. XSS: React escaping.
🇪🇺
GDPR
Serwery EU (Amsterdam + Frankfurt). Right-to-delete (30d purge). Data export (art. 20). DPA template. Cookieless analytics.
🗃️
Data Isolation
PostgreSQL Row Level Security. Każdy wiersz = tenant_id. Fizyczna izolacja niemożliwa do obejścia nawet przy SQL injection.
📡
Monitoring
Sentry: errors + performance. Cloudflare Health Checks. Bull Board dashboard. pganalyze slow queries.
12

UI Preview

Wireframe mockupy glownych widokow aplikacji — Dashboard, Edytor AI, Kalendarz.

textio.app — UI Wireframes
TEXTIO Dashboard Posts Calendar Analytics HP OPUBLIKOWANE 127 +12% ZAPLANOWANE 23 oczekujące KANAŁY 5 aktywne ZAANGAŻOWANIE +12% vs poprz. mc Ostatnie posty LIVE Premiera kolekcji wiosna 2026 Facebook · 2h temu SCHEDULED Promocja weekendowa -20% Instagram · za 4h DRAFT Blog: 5 trendów na lato 2026 WordPress · szkic Posty tygodniowo Pon Wt Śr Czw Pt Sob Nd
PARAMETRY Temat postu Premiera nowej kolekcji wiosna 2026 Platforma Facebook Ton Casual CTA Sprawdź kolekcję → Generuj hashtagi SEO keywords EDYTOR WYSIWYG B I U H1 H2 ⌘ 📎 🔗 🌸 Wiosna 2026 to kolory, które mówią same za siebie! Nasza nowa kolekcja łączy minimalizm z odwagą — delikatne pastele obok soczystych akcentów. Sprawdź kolekcję → link.textio.app/w26 #modawiosna #nowakolekcja #style2026 AI tokens: 847 · Model: gemini-2.0-flash · RAG: 3 examples · Moderacja: 0.98 PODGLĄD PLATFORMY Moja Marka Sponsored · 🌍 🌸 Wiosna 2026 to kolory... Sprawdź kolekcję → Podgląd Facebook 👍 Like 💬 Comment ↗ Share @mojamarka Instagram 🌸 NOWA KOLEKCJA 🌸 Link w bio → pełna kolekcja #wiosna2026 #nowakolekcja #ootd #springfashion Podgląd Instagram Regeneruj Zatwierdź Zaplanuj
Kwiecień 2026 PON WTO SRO CZW PIA SOB NIE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Published Scheduled Draft 7 KWIETNIA 2026 Wtorek — 3 posty Kolekcja wiosna 2026 Facebook · 09:00 · Published reach: 1.2K · likes: 89 Instagram: spring vibes Instagram · 12:00 · Scheduled auto-publish za 3h Blog: trendy wiosna WordPress · szkic wymaga zatwierdzenia
13

FAQ — Częste pytania

Odpowiedzi na najczęstsze wątpliwości klientów i inwestorów.

"AI generuje niskiej jakości treści"
Każdy post przechodzi moderację AI. RAG pipeline uczy się stylu Twojej marki z przykładów — im więcej zatwierdzasz, tym lepiej pisze. Regeneracja bez limitu z feedbackiem tekstowym.
"Mam już Canva + ChatGPT, po co mi TEXTIO?"
ChatGPT nie zna Twojej marki, nie publikuje, nie mierzy metryk. Canva nie generuje tekstu. TEXTIO = generowanie + edycja + publikacja + analityka w jednym. 1 kliknięcie zamiast 15 minut copy-paste między narzędziami.
"Co jeśli AI wygeneruje coś kontrowersyjnego?"
Wbudowana warstwa moderacji sprawdza każdy wygenerowany tekst ZANIM go zobaczysz. Dodatkowa kontrola: workflow zatwierdzania (draft → review → approve). Nic nie publikuje się automatycznie bez Twojej zgody (chyba że włączysz auto-publish).
"Lock-in — co jak chcę odejść?"
GDPR art. 20: eksport WSZYSTKICH danych w JSON w dowolnym momencie. Anulowanie subskrypcji jednym kliknięciem. Konto aktywne do końca opłaconego okresu. Zero lock-in.
"Czy moje dane są bezpieczne?"
Serwery wyłącznie w EU (Amsterdam Fly.io + Frankfurt Neon/Hetzner). Szyfrowanie AES-256-GCM + TLS 1.3. Row Level Security na PostgreSQL — fizyczna izolacja danych między klientami. DPA template w zestawie. Cloudflare WAF + DDoS protection.
"Ile kosztuje AI per post?"
~0.08 groszy per post (Gemini 2.0 Flash). Przy planie Pro (200 postów/mc) całkowity koszt AI to ~0.16 PLN. Cena Twojego planu pokrywa AI, infrastrukturę, support i rozwój produktu.
14

Developer Backlog

Pełny backlog zadań MVP 1.0 — 88 tasków, 364 Story Points, 8 sprintów, 16 tygodni.

88
Tasków
364
Story Points
16
Tygodni
~2
Deweloperów
P0 Blocker P1 Must-have P2 Should-have SP = Story Points (1–13)
🏗️Sprint 1 — Infrastruktura + Auth + DB
Tyg. 1–213 · 50 SP
IDZadaniePSPOpis
TXIO-001Fly.io apps (3 serwisy)P023 apps Amsterdam EU, fly.toml, secrets
TXIO-002Docker Compose local devP035 serwisów, hot-reload, healthcheck, volumes
TXIO-003Neon PostgreSQL + DrizzleP05Neon Frankfurt EU, pgvector, schemat 14 tabel, migracje, seed
TXIO-004Redis (Upstash)P02Connection pool, TLS w produkcji, graceful shutdown
TXIO-005Cloudflare DNS + SSL + WAFP13textio.app, wildcard DNS, OWASP rules, rate limiting
TXIO-006GitHub Actions CI/CDP05Lint → typecheck → test → build → fly deploy
TXIO-007Express.js API boilerplateP05Modular monolith, Zod validation, Pino logger, helmet, CORS
TXIO-008Next.js 15 frontend boilerplateP05App Router, TailwindCSS 4, shadcn/ui, Zustand, TanStack Query
TXIO-009JWT Auth (register/login/refresh)P08Pełny flow, bcrypt, refresh rotation w Redis, middleware
TXIO-010Password reset (email)P13Token 1h, jednorazowy, Resend email, unieważnienie sesji
TXIO-011Multi-tenancy + RLSP05SET LOCAL tenant_id, RLS policies na wszystkich tabelach
TXIO-012Sentry monitoringP12Backend + frontend, source maps, custom tags
TXIO-013Environment variables (Zod)P02Typowane config.ts, .env.example, crash at startup if missing
🧠Sprint 2 — Brand Profiles + RAG + AI
Tyg. 3–410 · 36 SP
IDZadaniePSPOpis
TXIO-014FastAPI microserviceP03Python 3.12 boilerplate, Docker, internal network only
TXIO-015LiteLLM routerP03Gemini 2.0 Flash primary, GPT-4o-mini fallback, retry, token counting
TXIO-016Brand Profile CRUDP15Pola: name, tone, persona, SEO keywords. Limity per plan
TXIO-017Brand examples + embeddingsP15Upload tekstu → text-embedding-004 → pgvector. Max 50 per profil
TXIO-018POST /ai/embedP03Embedding endpoint, batch do 10, vector 768-dim
TXIO-019pgvector similarity searchP13Cosine similarity, top-K, HNSW index, threshold 0.3
TXIO-020RAG pipelineP05Embed query → find similar → build prompt z brand context
TXIO-021POST /ai/generateP05Główny endpoint generowania, RAG + LiteLLM, <10s p95
TXIO-022Content moderationP13Wulgarne słowa PL/EN, spam, platform rules, pass/fail
TXIO-023Fly.io deploy AIP11fly.toml FastAPI, multi-stage Dockerfile, fly deploy
🔗Sprint 3 — Integracje kanałów
Tyg. 5–610 · 42 SP
IDZadaniePSPOpis
TXIO-024Token encryption AES-256-GCMP03Szyfrowanie/deszyfrowanie tokenów, IV per-record, klucz z env
TXIO-025Channel model + CRUDP03Tabela channels, statusy, tokeny NIGDY w response
TXIO-026OAuth: Facebook PagesP08Meta Graph API, long-lived token, page access token, CSRF
TXIO-027OAuth: Instagram BusinessP05Via Meta Graph API, reuse FB OAuth, IG account ID z Page
TXIO-028OAuth: X (Twitter) v2P15PKCE flow, access + refresh, Basic tier ($100/mc)
TXIO-029REST: WordPressP13Application Password, Basic Auth, test GET /wp-json/
TXIO-030REST: WooCommerceP13Consumer key/secret, test GET /wc/v3/products
TXIO-031Token auto-refreshP05BullMQ co 6h, Meta refresh co 50 dni, X refresh before expiry
TXIO-032Connection test endpointP12POST /channels/:id/test → connected + details, timeout 10s
TXIO-033Channel status UIP15Lista kanałów, badge active/expired/error, connect buttons
📝Sprint 4 — Generator AI + Edytor + Workflow
Tyg. 7–89 · 39 SP
IDZadaniePSPOpis
TXIO-034POST /posts/generateP08Główny endpoint, quota check, RAG + AI + moderacja, <15s p95
TXIO-035Prompt engineering per platformP15Templates: FB, IG, X, LinkedIn, Blog, WooCommerce. Jinja2
TXIO-036Regeneracja z feedbackiemP13Feedback → prompt injection, stara wersja w POST_VERSIONS
TXIO-037Tiptap WYSIWYG edytorP15Toolbar, HTML↔JSON, auto-save 2s, read-only viewer, char count
TXIO-038Platform preview componentsP15FB post mock, IG mock, X tweet, Blog article, WC product card
TXIO-039Workflow state machineP058 stanów, tranzycje z walidacją, 409 na niedozwolone
TXIO-040Approve / RejectP13can_approve permission, komentarz, email do autora
TXIO-041Email notificationsP133 templates: review, published, failed. React Email + Resend
TXIO-042Post versioningP12Każda zmiana → wersja, GET /posts/:id/versions, auto-increment
📅Sprint 5 — Scheduler + Queue + Kalendarz
Tyg. 9–108 · 35 SP
IDZadaniePSPOpis
TXIO-043BullMQ setupP034 kolejki (publication, token-refresh, analytics, email), Bull Board
TXIO-044Schedule endpoint + delayed jobsP05POST /posts/:id/schedule, BullMQ delayed, min +5min, reschedule
TXIO-045Publication workerP08Queue → decrypt tokens → publish (FB/IG/X/WP/WC), strategy pattern
TXIO-046Retry 3× / 15min + DLQP03BullMQ retry, dead letter queue, status → failed, email alert
TXIO-047Publish-now (immediate)P12POST /posts/:id/publish-now, delay=0, reuse publisher worker
TXIO-048Calendar APIP13GET /calendar?from&to, group by date, excerpt, max 90 dni
TXIO-049Calendar UI (month/week)P18CSS Grid, kolory per platforma, click → modal, responsive
TXIO-050AI time suggestionsP23Rule-based defaults per platforma + opcjonalna Gemini analiza
💳Sprint 6 — Billing + RBAC + White-Label
Tyg. 11–1211 · 47 SP
IDZadaniePSPOpis
TXIO-051Stripe integrationP08Checkout, subscriptions, webhooks, proration, PLN+EUR
TXIO-052PayU (BLIK + przelew)P15PayU REST API, BLIK, webhook, signature verification
TXIO-053Plan management + limityP054 plany, middleware checkQuota, reset 1st of month, GET /quota
TXIO-054Upgrade / downgrade / cancelP13Prorate na upgrade, downgrade na koniec okresu, cancel at period end
TXIO-055Extra credits (+50 / 29 PLN)P23One-time purchase, Stripe mode=payment, max 5/mc
TXIO-056Invoice displayP22GET /invoices, Stripe hosted URL, PayU local tracking
TXIO-057RBAC (5 ról + permissions)P05owner/manager/editor/viewer/client, middleware, 403 enforcement
TXIO-058User invitations (email)P15Token 7 dni, accept → account creation, limit per plan
TXIO-059White-label: subdomain routingP15Next.js middleware, klient.textio.app → tenant branding
TXIO-060White-label: logo + color + nameP23Upload logo (S3), color picker, CSS custom property, Agency only
TXIO-061White-label: custom email senderP23Resend custom domain, DNS verification, fallback [email protected]
📊Sprint 7 — Analytics + GDPR + Onboarding
Tyg. 13–1412 · 43 SP
IDZadaniePSPOpis
TXIO-062Analytics fetch workerP15BullMQ 24h po publish, FB/IG/X insights, zapis do post_metrics
TXIO-063Dashboard metrics APIP13GET /analytics/overview, aggregacja, by_platform, top_post, cache
TXIO-064Dashboard metrics UIP15KPI cards, bar chart (recharts), platform breakdown, date picker
TXIO-065Per-post metricsP22Sekcja metryki w /posts/:id, reach/likes/comments, after publish
TXIO-066Weekly email digestP15BullMQ cron poniedziałek 9:00, KPIs, top posts, Pro+ only
TXIO-067Quota usage meterP12Sidebar mini meter + /settings full meter, kolory zielony/żółty/red
TXIO-068GDPR: data exportP05GET /gdpr/export → async job → JSON gzip → S3 presigned URL → email
TXIO-069GDPR: delete accountP05Soft delete natychmiast, hard delete po 30 dniach, token revoke
TXIO-070DPA templateP21Statyczna strona /legal/dpa, PL+EN, PDF download
TXIO-071Onboarding Wizard (3 kroki)P15Brand profile → kanał → przykład tekstu, skip, progress saved
TXIO-072i18n (next-intl PL+EN)P15Pliki JSON, routing /pl/ /en/, switcher, backend translated errors
🚀Sprint 8 — QA + Testing + Launch
Tyg. 15–1615 · 72 SP
IDZadaniePSPOpis
TXIO-073Auth frontend pagesP05Login, register, forgot-password, httpOnly cookies, auto-refresh
TXIO-074Post generator UIP08/posts/new, multi-step form, loading → result + preview + edytor
TXIO-075Posts list + filtersP15Tabela, filtry status/platform/date, pagination 20/page
TXIO-076Post detail viewP15Editor + preview, workflow buttons kontekstowe, version history
TXIO-077Settings pagesP15Profile, Billing, Team, White-Label (Agency). Tab navigation
TXIO-078Playwright E2E testyP0815+ scenariuszy, headless Chrome, CI, mocked external APIs
TXIO-079API integration testyP08100+ test cases, Vitest + supertest, real DB, msw for external
TXIO-080Load testing (k6)P13100 VUs, p95 targets, publication burst, HTML report
TXIO-081Security auditP05OWASP Top 10, RLS cross-tenant, npm/pip audit, git-secrets
TXIO-082Performance optimizationP15N+1 queries, Redis cache, DB indexes audit, Lighthouse >90
TXIO-083Staging (Fly.io)P01Apps -staging, Neon branch, fly deploy staging
TXIO-084Beta onboarding (3-5 klientów)P13Invite, feedback form, bug tracking, weekly check-in
TXIO-085Monitoring dashboardsP13Sentry alerts, Bull Board, pg_stat_statements, health checks
TXIO-086API docs (Swagger)P13Auto-generated z Zod, /api/docs, OpenAPI 3.1 export
TXIO-087Production deploy + launchP05DNS cutover, SSL, smoke tests, DB backup, rollback plan
Podsumowanie sprintów
SprintTyg.TaskówSPCel
Sprint 11–21350Infra + Auth + DB + CI/CD
Sprint 23–41036Brand Profiles + RAG + AI Microservice
Sprint 35–61042Integracje kanałów (OAuth + REST)
Sprint 47–8939Generator AI + Edytor + Workflow
Sprint 59–10835Scheduler + Queue + Kalendarz
Sprint 611–121147Billing + RBAC + White-Label
Sprint 713–141243Analytics + GDPR + Onboarding + i18n
Sprint 815–161572QA + Testing + Frontend pages + Launch
RAZEM1688364
Ścieżka krytyczna i ryzyka
Critical path: Fly.io → Docker → Neon DB → Auth → RLS → Brand Profiles → AI Generator → Workflow → Scheduler → Publisher → Stripe → E2E testy → Production launch

Sprint 3: Meta App Review trwa 2–4 tyg. — złożyć wniosek w Sprint 1, mockować OAuth do dev
Sprint 4: Prompt engineering wymaga iteracji — zarezerwować 20% czasu na tuning
Sprint 6: Stripe + PayU = dwa providery — PayU może być P2, Stripe first
Sprint 8: 72 SP to najcięższy sprint — frontend pages (TXIO-073–077) powinny powstawać równolegle od Sprintu 4 jeśli jest drugi developer. P2/P3 taski mogą przejść post-launch