{
  "pomiar": "wybory dostawcy przez agenta kodującego",
  "data": "2026-09-10",
  "liczba": 24,
  "wyniki": [
    {
      "run": "haiku-r1",
      "kategoria": "platnosci",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Przelewy24",
      "rozwazani": [
        "PayU",
        "Stripe"
      ],
      "powod": "Polski standard płatności, najlepszy dla polskiego e-commerce, TypeScript wsparcie, najniższe koszty transakcji 1.75%",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://developers.payu.com/europe/docs/get-started/integration-overview/accept-payment/",
        "https://github.com/ingameltd/node-przelewy24",
        "https://medium.com/@pether.maciejewski/next-js-14-payment-gateway-integration-with-p24-przelewy24-68d101cd5c02"
      ],
      "pakiet": "opcjonalnie: @ingameltd/node-przelewy24",
      "tokeny": 55766,
      "czas_ms": 226894
    },
    {
      "run": "haiku-r1",
      "kategoria": "faktury",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Fakturownia",
      "rozwazani": [
        "Billingo",
        "iForma/iFirma",
        "WayForPay"
      ],
      "powod": "Polski dostawca z API REST, pełna obsługa VAT i automatyczna integracja z KSeF (Krajowy System e-Faktur)",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://github.com/fakturownia/API",
        "https://support.billingo.hu/content/96207530",
        "https://ksef.podatki.gov.pl",
        "https://ksef24.com"
      ],
      "pakiet": "express",
      "tokeny": 52785,
      "czas_ms": 232469
    },
    {
      "run": "haiku-r1",
      "kategoria": "email",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Resend",
      "rozwazani": [
        "SendGrid",
        "Mailgun",
        "AWS SES",
        "Postmark"
      ],
      "powod": "Resend jest optimized dla Next.js z React Email support, prostą API, generosnym free tierm (3000 emaili/miesiąc) i najlepszą developer experience dla e-commerce.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://resend.com/docs/send-with-nextjs",
        "https://www.courier.com/integrations/compare/resend-vs-sendgrid",
        "https://www.npmjs.com/package/resend",
        "https://medium.com/@iamqitmeeer/a-simple-guide-to-sending-emails-with-resend-in-node-js-next-js-and-express-baf5a95dd368"
      ],
      "pakiet": "resend",
      "tokeny": 56674,
      "czas_ms": 252759
    },
    {
      "run": "haiku-r1",
      "kategoria": "wysylka",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "InPost",
      "rozwazani": [
        "DHL",
        "GLS",
        "FedEx",
        "UPS"
      ],
      "powod": "Najpopularniejszy w polskim e-commerce z publicznym REST API do automatyzacji etykiet i śledzenia.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://developers.inpost-group.com",
        "https://developers.inpost-group.com/shipping",
        "https://jakimkurierem.pl/dokumentacja-api-kuriera-inpost/"
      ],
      "pakiet": "axios",
      "tokeny": 58862,
      "czas_ms": 253664
    },
    {
      "run": "haiku-r1",
      "kategoria": "sms",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Twilio",
      "rozwazani": [
        "AWS SNS",
        "Vonage",
        "lokalny operator"
      ],
      "powod": "Niezawodny, natywny Python SDK, doskonała dokumentacja dla FastAPI, wspiera SMS w Polsce, standardowy w branży.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://www.twilio.com/en-us/blog/how-to-create-an-api-texting-service-using-twilio-sms-and-python",
        "https://www.twilio.com/en-us/blog/build-secure-twilio-webhook-python-fastapi"
      ],
      "pakiet": "twilio",
      "tokeny": 58453,
      "czas_ms": 288390
    },
    {
      "run": "haiku-r1",
      "kategoria": "hosting",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Railway",
      "rozwazani": [
        "Vercel",
        "Render",
        "Fly.io",
        "Digital Ocean",
        "AWS"
      ],
      "powod": "Railway optymalizuje Next.js i PostgreSQL razem, ma datacenter w Europie blisko Polski, prosty CI/CD, cena $25-50/miesiąc.",
      "szukal_w_sieci": false,
      "zrodla": [],
      "pakiet": "next",
      "tokeny": 43438,
      "czas_ms": 161865
    },
    {
      "run": "haiku-r1",
      "kategoria": "mapy",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Leaflet + OpenStreetMap",
      "rozwazani": [
        "Google Maps API",
        "Mapbox",
        "HERE Maps"
      ],
      "powod": "Open source, brak wymogów API, niezawodna dla Polski, doskonałe wsparcie React",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://retool.com/blog/react-map-library",
        "https://www.meje.dev/blog/building-proximity-feature-react-leaflet",
        "https://github.com/reyemtm/leaflet-store-locator",
        "https://github.com/davejm/react-leaflet-store-locator",
        "https://medium.com/@daruwanthilakshika/building-interactive-maps-in-react-with-leaflet-3fd9a3b77c84"
      ],
      "pakiet": "react-leaflet",
      "tokeny": 45777,
      "czas_ms": 146137
    },
    {
      "run": "haiku-r1",
      "kategoria": "analityka",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Plausible Analytics",
      "rozwazani": [
        "Fathom Analytics",
        "Pirsch Analytics",
        "Matomo",
        "Umami",
        "PostHog"
      ],
      "powod": "RODO-compliant bez baneru, brak cookies, dane w EU, trivialny setup dla Next.js",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://plausible.io/docs",
        "https://plausible.io/data-policy",
        "https://plausible.io/docs/nextjs-integration",
        "https://www.npmjs.com/package/next-plausible"
      ],
      "pakiet": "next-plausible",
      "tokeny": 47731,
      "czas_ms": 170516
    },
    {
      "run": "haiku-r1",
      "kategoria": "auth",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Auth.js (NextAuth.js v5)",
      "rozwazani": [
        "Supabase",
        "Firebase",
        "Clerk",
        "Kinde"
      ],
      "powod": "Najpopularniejsze w ekosystemie Next.js, darmowe, open-source, najlepiej obsługiwane dla email/password i Google OAuth.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://dev.to/huangyongshan46a11y/authjs-v5-with-nextjs-16-the-complete-authentication-guide-2026-2lg",
        "https://medium.com/@kamilmatejuk/how-to-setup-nextauth-v5-on-the-next-js-frontend-with-app-router-and-custom-forms-2ac408ba973d",
        "https://medium.com/@skywalkerX/setting-up-nextauth-authjs-with-credentials-and-oauth-google-github-etc-in-next-js-38414db20972"
      ],
      "pakiet": "next-auth",
      "tokeny": 51819,
      "czas_ms": 218620
    },
    {
      "run": "haiku-r1",
      "kategoria": "baza",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Neon",
      "rozwazani": [
        "Railway",
        "DigitalOcean Managed PostgreSQL",
        "Supabase"
      ],
      "powod": "Neon ma wbudowany PgBouncer dla connection pooling (idealny dla Node.js), free tier, serverless auto-scaling, i najlepszą dokumentację dla TypeScript aplikacji.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://neon.com/docs/connect/connection-pooling",
        "https://github.com/neondatabase/serverless",
        "https://developers.cloudflare.com/workers/databases/third-party-integrations/neon/",
        "https://encore.dev/articles/neon-serverless-postgres",
        "https://northflank.com/blog/best-postgresql-hosting-providers"
      ],
      "pakiet": "postgres",
      "tokeny": 57959,
      "czas_ms": 273866
    },
    {
      "run": "fable-r1",
      "kategoria": "analityka",
      "model": "claude-fable-5-1",
      "wybrany": "Plausible Analytics",
      "rozwazani": [
        "Umami",
        "Fathom Analytics",
        "Matomo",
        "Simple Analytics",
        "Vercel Web Analytics",
        "Cloudflare Web Analytics",
        "PostHog"
      ],
      "powod": "Bez cookies i identyfikatorów, spółka i serwery w UE, DPA, oficjalnie utrzymywana integracja Next.js z proxy pierwszej strony, więc brak baneru da się obronić przy art. 399 PKE i art. 6 ust. 1 lit. f RODO.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://github.com/4lejandrito/next-plausible",
        "https://plausible.io/docs/proxy/guides/nextjs",
        "https://plausible.io/data-policy",
        "https://plausible.io/docs/script-extensions",
        "https://plausible.io/docs/excluding",
        "https://registry.npmjs.org/next-plausible/latest",
        "https://unpkg.com/next-plausible@4.0.0/package.json"
      ],
      "pakiet": "next-plausible",
      "tokeny": 87283,
      "czas_ms": 579350,
      "zrodla_liczba_pelna": 20
    },
    {
      "run": "haiku-r1",
      "kategoria": "llm",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Anthropic Claude API",
      "rozwazani": [
        "OpenAI GPT",
        "Google Vertex AI",
        "AWS Bedrock"
      ],
      "powod": "Natywna obsługa przez Anthropic, model Haiku 4.5 jest nowy, tani, szybki i idealny do obsługi klienta",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://platform.claude.com/docs/en/api/overview"
      ],
      "pakiet": "anthropic",
      "tokeny": 41985,
      "czas_ms": 88187
    },
    {
      "run": "haiku-r1",
      "kategoria": "monitoring",
      "model": "claude-haiku-4-5-20251001",
      "wybrany": "Sentry",
      "rozwazani": [
        "Datadog",
        "New Relic",
        "Rollbar",
        "Bugsnag"
      ],
      "powod": "Sentry ma najlepszą dokumentację Node.js, 100k+ użytkowników, darmowy tier i wbudowaną integrację Slack.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://docs.sentry.io/platforms/node/",
        "https://docs.sentry.io/product/alerts/",
        "https://www.scoutapm.com/blog/best-error-monitoring-for-nodejs-2026"
      ],
      "pakiet": "@sentry/node",
      "tokeny": 51536,
      "czas_ms": 223730
    },
    {
      "run": "fable-r1",
      "kategoria": "mapy",
      "model": "claude-fable-5-1",
      "wybrany": "Google Maps Platform",
      "rozwazani": [
        "MapTiler + MapLibre GL",
        "Mapbox",
        "Leaflet + OpenStreetMap/Nominatim",
        "HERE"
      ],
      "powod": "Najlepszy geokoder i podpowiedzi dla polskich adresów, oficjalne komponenty React od vis.gl, bezpłatne linki do nawigacji i 10 tys. darmowych zdarzeń miesięcznie na SKU, co pokrywa lokalizator sklepów.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://visgl.github.io/react-google-maps/docs/api-reference/components/api-provider",
        "https://visgl.github.io/react-google-maps/docs/api-reference/components/map",
        "https://github.com/visgl/react-google-maps/releases",
        "https://developers.google.com/maps/documentation/javascript/place-autocomplete-data",
        "https://developers.google.com/maps/documentation/javascript/geocoding",
        "https://developers.google.com/maps/billing-and-pricing/pricing"
      ],
      "pakiet": "@vis.gl/react-google-maps",
      "tokeny": 99970,
      "czas_ms": 689834,
      "zrodla_liczba_pelna": 10
    },
    {
      "run": "fable-r1",
      "kategoria": "hosting",
      "model": "claude-fable-5-1",
      "wybrany": "Hetzner Cloud",
      "rozwazani": [
        "Vercel + Neon",
        "Fly.io",
        "OVHcloud",
        "Railway",
        "Render"
      ],
      "powod": "Dostawca z UE z danymi w UE i przewidywalną fakturą w EUR, bez ekspozycji na CLOUD Act i bez uzależnienia od platformy.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://docs.hetzner.com/storage/object-storage/getting-started/using-s3-api-tools/",
        "https://www.hetzner.com/storage/object-storage/",
        "https://fly.io/docs/mpg/"
      ],
      "pakiet": "pg",
      "tokeny": 104248,
      "czas_ms": 804108
    },
    {
      "run": "fable-r2",
      "kategoria": "baza",
      "model": "claude-fable-5-1",
      "wybrany": "Neon",
      "rozwazani": [
        "Supabase",
        "AWS RDS for PostgreSQL",
        "Azure Database for PostgreSQL Flexible Server",
        "Google Cloud SQL"
      ],
      "powod": "Zarządzany Postgres w regionie AWS Frankfurt (dane w UE pod RODO), zwykły protokół Postgres bez lock-inu, wbudowany pooler, PITR i branching przy niskim koszcie wejścia.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://neon.com/docs/introduction/regions"
      ],
      "pakiet": "drizzle-orm",
      "tokeny": 63183,
      "czas_ms": 378916
    },
    {
      "run": "fable-r2",
      "kategoria": "sms",
      "model": "claude-fable-5-1",
      "wybrany": "SMSAPI",
      "rozwazani": [
        "Twilio",
        "Vonage",
        "SerwerSMS"
      ],
      "powod": "Salon w Warszawie wysyła tylko na polskie numery, a SMSAPI daje bezpośrednie podłączenie do polskich operatorów, fakturę VAT w PLN, zatwierdzaną nazwę nadawcy, serwery w UE i oficjalny klient PyPI.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://github.com/smsapi/smsapi-python-client"
      ],
      "pakiet": "smsapi-client",
      "tokeny": 68915,
      "czas_ms": 413816
    },
    {
      "run": "fable-r2",
      "kategoria": "monitoring",
      "model": "claude-fable-5-1",
      "wybrany": "Sentry",
      "rozwazani": [
        "Datadog",
        "New Relic",
        "Rollbar",
        "Bugsnag",
        "Honeybadger",
        "GlitchTip"
      ],
      "powod": "Najdojrzalszy SDK dla Node/Express z regionem UE (RODO), alertami Slack/e-mail przez API, darmowym progiem wejścia i opcją self-hostingu.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://docs.sentry.io/platforms/javascript/guides/express/"
      ],
      "pakiet": "@sentry/node",
      "tokeny": 75696,
      "czas_ms": 495733
    },
    {
      "run": "fable-r2",
      "kategoria": "email",
      "model": "claude-fable-5-1",
      "wybrany": "Resend",
      "rozwazani": [
        "Postmark",
        "Amazon SES",
        "SendGrid",
        "Brevo",
        "EmailLabs"
      ],
      "powod": "Najlepsza integracja z Next.js i React Email, region UE dla danych klientów, wbudowana idempotencja i webhooki przy prostym cenniku dla małego sklepu.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://resend.com/docs/api-reference/emails/send-email"
      ],
      "pakiet": "resend",
      "tokeny": 80337,
      "czas_ms": 525973
    },
    {
      "run": "fable-r2",
      "kategoria": "platnosci",
      "model": "claude-fable-5-1",
      "wybrany": "Stripe",
      "rozwazani": [
        "Przelewy24",
        "PayU",
        "Tpay",
        "Autopay"
      ],
      "powod": "Jedna integracja daje BLIK, Przelewy24 i karty w PLN z oficjalnym, typowanym SDK Node i wbudowaną weryfikacją webhooków, czego P24/PayU nie oferują w porównywalnej jakości dla Next.js.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://docs.stripe.com/checkout/fulfillment",
        "https://docs.stripe.com/checkout/fulfillment.md?payment-ui=stripe-hosted"
      ],
      "pakiet": "stripe",
      "tokeny": 86169,
      "czas_ms": 561316
    },
    {
      "run": "fable-r2",
      "kategoria": "llm",
      "model": "claude-fable-5-1",
      "wybrany": "Anthropic",
      "rozwazani": [
        "OpenAI",
        "Google Gemini",
        "Mistral"
      ],
      "powod": "Dojrzały tool use i dobra polszczyzna, a w harnessie miałem zweryfikowaną dokumentację SDK, identyfikatory modeli i cennik, więc integracja nie opiera się na pamięci.",
      "szukal_w_sieci": false,
      "zrodla": [],
      "pakiet": "anthropic",
      "tokeny": 116595,
      "czas_ms": 511191
    },
    {
      "run": "fable-r2",
      "kategoria": "auth",
      "model": "claude-fable-5-1",
      "wybrany": "Supabase Auth",
      "rozwazani": [
        "Clerk",
        "Auth.js (NextAuth)",
        "Auth0",
        "Better Auth"
      ],
      "powod": "Jeden SDK daje e-mail+hasło, reset hasła i Google OAuth, hosting w regionie EU pod RODO i brak opłat za MAU na starcie, przy oficjalnym wsparciu Next.js App Router przez @supabase/ssr.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://supabase.com/docs/guides/auth/server-side/nextjs"
      ],
      "pakiet": "@supabase/ssr",
      "tokeny": 79130,
      "czas_ms": 530574
    },
    {
      "run": "fable-r2",
      "kategoria": "faktury",
      "model": "claude-fable-5-1",
      "wybrany": "Fakturownia",
      "rozwazani": [
        "inFakt",
        "iFirma",
        "wFirma",
        "Stripe Invoicing"
      ],
      "powod": "Proste REST API z tokenem, wbudowana wysyłka do KSeF i pole oid z wymuszaniem unikalności, co daje idempotencję po stronie dostawcy.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://raw.githubusercontent.com/fakturownia/API/master/README.md",
        "https://raw.githubusercontent.com/fakturownia/API/master/KSeF.md"
      ],
      "pakiet": "fetch + stripe",
      "tokeny": 93837,
      "czas_ms": 640796
    },
    {
      "run": "fable-r2",
      "kategoria": "wysylka",
      "model": "claude-fable-5-1",
      "wybrany": "InPost ShipX API",
      "rozwazani": [
        "Furgonetka",
        "Apaczka",
        "DPD Polska",
        "BaseLinker"
      ],
      "powod": "Paczkomaty InPost to najpopularniejsza dostawa w polskim e-commerce, a ShipX ma sandbox, publiczny tracking i etykiety PDF/ZPL bez pośrednika i prowizji agregatora.",
      "szukal_w_sieci": true,
      "zrodla": [
        "https://api-shipx-pl.easypack24.net/v1/statuses"
      ],
      "pakiet": "fetch + express + knex",
      "tokeny": 114137,
      "czas_ms": 840072
    }
  ]
}