Wybór licencji a SaaS: na co uważać, gdy udostępniasz open source jako usługę

0
56
Rate this post

Nawigacja:

Dlaczego przy SaaS sama „open sourcowość” nie wystarczy

Usługa w chmurze to nie to samo co udostępnienie kodu

Udostępnienie kodu na GitHubie i postawienie działającej usługi SaaS na tym kodzie to dwa zupełnie różne światy prawne i biznesowe. Licencja open source reguluje przede wszystkim prawa do korzystania z kodu, kopiowania, modyfikacji i dystrybucji oprogramowania. Model SaaS opiera się natomiast na tym, że użytkownik nie dostaje oprogramowania, tylko uzyskuje dostęp do gotowej funkcjonalności przez API lub interfejs webowy.

Dla wielu licencji kluczowe słowo to dystrybucja (lub „conveying”, „distribution”). W klasycznym modelu: pobierasz program, instalujesz lokalnie, możesz dalej go rozpowszechniać lub modyfikować. W modelu SaaS często nie ma żadnego pakietu instalacyjnego – użytkownik widzi tylko efekt działania. W praktyce oznacza to, że część mocnych obowiązków licencji copyleft (np. GPL) aktywuje się dopiero w momencie, gdy komuś wydajesz program, a nie gdy tylko go hostujesz i obsługujesz ruch sieciowy.

Stąd biorą się późniejsze niespodzianki: autorzy spodziewają się, że copyleft „zabezpieczy” projekt przed zamkniętym, komercyjnym wykorzystaniem w chmurze, a firmy budujące SaaS legalnie korzystają z luki związanej z brakiem dystrybucji. Sama „open sourcowość” bez przemyślanej licencji jest przy SaaS zaskakująco słabym parasolem.

Dwie perspektywy: twórca projektu i dostawca usługi

W dyskusjach o licencjach dla SaaS ścierają się dwie, bardzo różne perspektywy:

  • Twórca projektu open source – chce chronić swój wkład, rozwijać społeczność, a często także zbudować model biznesowy wokół wersji chmurowej. Zazwyczaj boi się „darmowych pasażerów”, którzy zbudują konkurencyjny SaaS na jego kodzie.
  • Firma budująca usługę na cudzym kodzie – szuka maksymalnej pewności prawnej i jak najmniejszej liczby obowiązków. Idealnie: licencja permissive (MIT, BSD, Apache-2.0), brak wymogu otwierania modyfikacji, brak zarażającego copyleft.

Obie strony potrafią mieć do tego całkowicie racjonalne argumenty. Autor powie: „Skoro moja praca zasila cudzą płatną usługę, chciałbym przynajmniej mieć dostęp do ulepszeń”. Dostawca SaaS odparuje: „Budujemy infrastrukturę, support, SLA, marketing – to my bierzemy na siebie ryzyko biznesowe, więc chcemy utrzymać przewagę konkurencyjną”.

Wybór licencji to w praktyce decyzja, której stronie bardziej sprzyjasz. Nie istnieje „magiczny zapis”, który jednocześnie maksymalnie otwiera projekt, zachęca wszystkich do komercyjnego użycia i jednocześnie silnie blokuje możliwość klonowania usługi w chmurze przez innych. Trzeba pogodzić się z kompromisami.

Przykład: projekt MIT i nagły komercyjny klon w chmurze

Wyobraźmy sobie prosty scenariusz. Programista publikuje świetne narzędzie do analizy logów. Kod wrzuca na GitHub, licencja MIT, bo „wszyscy tak robią” i brzmi to fajnie otwarcie. Po roku narzędzie zyskuje popularność wśród DevOpsów. Pojawia się firma, która:

  • forkuje repozytorium,
  • dodaje integracje z kilkoma chmurowymi providerami,
  • optymalizuje wydajność i UX,
  • wypuszcza płatny SaaS z darmowym planem.

Z perspektywy licencji MIT – wszystko jest w porządku. Firma może:

  • uruchamiać kod jako usługę bez publikowania własnych modyfikacji,
  • pobrać opłatę wyłącznie za hosting i funkcjonalność,
  • nie angażować autora projektu ani nie informować o wykorzystaniu kodu (poza wzmianką w licencji, jeśli dalej go dystrybuuje).

Autor budzi się z ręką w… chmurze. Kod jest używany intensywnie, ale nie ma żadnego bezpośredniego przełożenia na jego przychody, nie ma dostępu do ulepszeń stworzonych przez firmę SaaS, a część społeczności „odpływa” do płatnej, ładniejszej platformy. Z prawnego punktu widzenia – dokładnie na to pozwoliła licencja MIT.

Da się temu przeciwdziałać, ale wymaga to świadomego wyboru licencji oraz takiego zaprojektowania modelu biznesowego, który bierze pod uwagę realia SaaS, a nie wyłącznie klasyczne podejście „wydaję paczkę, inni ją instalują”.

Podstawy licencji open source w kontekście usług

Permissive vs copyleft – inne podejście do kontroli

W świecie open source wyróżnia się przede wszystkim dwie duże kategorie licencji:

  • Permissive – MIT, BSD, Apache-2.0. Pozwalają niemal na wszystko, byle zachować informację o prawach autorskich i spełnić kilka warunków (np. klauzula patentowa w Apache-2.0).
  • Copyleft – GPL, LGPL, AGPL. Wymuszają, aby pochodne dzieła i dystrybuowane modyfikacje były udostępniane na podobnych zasadach (efekt „zarażania” licencją).

W praktyce:

  • Licencje permissive idealnie pasują firmom SaaS, które chcą korzystać z gotowego kodu bez uciążliwych zobowiązań. Pozwalają mieszać kod z rozwiązaniami zamkniętymi, tworzyć komercyjne rozszerzenia itp.
  • Licencje copyleft starają się zapewnić, że modyfikacje wrócą do społeczności lub przynajmniej będą dostępne dla użytkowników, jeśli produkt jest dystrybuowany.

Problem w tym, że klasyczne licencje copyleft (jak GPL) powstały w czasach, gdy standardem było instalowanie programów lokalnie. Model SaaS lekką ręką omija część mechanizmów, na których licencje te są oparte.

„Uruchomienie jako usługa” a pojęcie dystrybucji

Większość licencji skupia się na momencie, gdy:

  • przekazujesz komuś kopię programu (binarną lub źródłową),
  • sprzedajesz urządzenie z wgranym oprogramowaniem,
  • rozpowszechniasz aplikację do pobrania.

Wtedy wchodzi w grę dystrybucja (distribution, conveying). Licencja GPL, dajmy na to, wymaga, aby odbiorca mógł dostać kod źródłowy i korzystać z tych samych wolności. Jeśli jednak użytkownik:

  • tylko loguje się do serwisu SaaS w przeglądarce,
  • lub wysyła zapytania do API,

to – według klasycznego rozumienia GPL – nie otrzymuje programu. Otrzymuje jedynie rezultat jego działania. Wiele interpretacji (w tym FSF) uznaje, że w takiej sytuacji nie ma dystrybucji. Skutki:

  • firma SaaS może hostować serwer na GPL bez obowiązku publikowania własnych modyfikacji,
  • użytkownik nie ma formalnego prawa do kodu backendu tylko dlatego, że z usługi korzysta.

To wprost rodzi pytanie: co jeśli ktoś „owinie” Twój projekt GPL w usługę chmurową i zacznie na tym zarabiać, nie dzieląc się ani kodem, ani przychodami? Odpowiedzią na to była m.in. licencja AGPL.

Sublicencjonowanie i miksowanie licencji w SaaS

Rzeczywiste projekty SaaS rzadko opierają się na jednej licencji. Masz:

  • backend z wieloma bibliotekami,
  • frontend z frameworkami,
  • narzędzia devops, skrypty, integracje.

Każdy z tych elementów może mieć inną licencję. Kluczowe pojęcie to sublicencjonowanie: czy dystrybuując swoją aplikację, musisz udzielić użytkownikom praw na warunkach oryginalnych licencji (np. GPL), czy możesz zmienić warunki dalej. Licencje copyleft zwykle na to nie pozwalają – wymagają, aby całość pozostała kompatybilna z ich zapisami.

W modelu SaaS problem pojawia się głównie wtedy, gdy część rozwiązania także dystrybuujesz (np. klienta desktopowego, SDK, wtyczki). Wtedy:

  • musisz uważać, aby nie wymieszać niekompatybilnych copyleft (np. GPL-2.0-only z Apache-2.0),
  • musisz zachować warunki licencji zależności (np. dołączyć tekst licencji, zapewnić dostęp do źródeł).

Bez takiego przeglądu łatwo o „zanieczyszczenie” projektu warunkami, które później utrudnią zmianę licencji lub sprzedaż firmy (due diligence potrafi być bardzo bolesne).

Gdzie w licencjach szukać zapisów istotnych dla SaaS

Jeśli celem jest zrozumienie, jak licencja wpływa na usługę w chmurze, kilka fragmentów dokumentu jest szczególnie ważnych:

  • Definicje dystrybucji / conveying – określają, kiedy aktywują się obowiązki (np. udostępnienie kodu źródłowego).
  • Postanowienia o „network use” / „remote interaction” – np. w AGPL dodatkowy paragraf nakazujący udostępnienie kodu użytkownikom mającym dostęp przez sieć.
  • Ograniczenia pola eksploatacji (field of use) – rzadkie w czystym open source, ale typowe w licencjach „source available”; mogą np. zabraniać oferowania usługi konkurencyjnej do autora.
  • Klauzule patentowe – istotne przy Apache-2.0 i pokrewnych, zwłaszcza gdy w grę wchodzi SaaS w obszarach objętych patentami.

Samo stwierdzenie „licencja open source” niewiele mówi. W kontekście SaaS warto naprawdę przeczytać pełny tekst licencji, a nie tylko nagłówek na stronie projektu.

Czarno-białe ośnieżone szczyty górskie w miejscowości Saas Fee
Źródło: Pexels | Autor: Damien Schnorhk

SaaS a „luksa” GPL – skąd wzięła się AGPL i podobne pomysły

Na czym polega „ASP loophole”

„ASP loophole” (Application Service Provider loophole) to potoczna nazwa luki w działaniu GPL w kontekście usług sieciowych. Sprowadza się do tego, że:

  • jeśli używasz programu objętego GPL lokalnie i go dystrybuujesz – musisz udostępnić kod na licencji GPL,
  • ale jeśli używasz tego programu jako backendu usługi, nie przekazując kopii programu użytkownikowi – formalnie nie dochodzi do dystrybucji.

W efekcie:

  • firma może zbudować na kodzie GPL zamkniętą usługę SaaS,
  • nie ma obowiązku publikowania swoich modyfikacji,
  • użytkownik-mający-dostęp-przez-sieć nie ma praw, które miałby użytkownik instalujący program lokalnie.

Dla idei copyleft to istotna wyrwa – kod staje się fundamentem komercyjnej usługi, ale zasada „share alike” się nie uruchamia, bo licencja była projektowana w innej epoce technologicznej.

Jak GPL traktuje korzystanie z usługi przez sieć

GPL (szczególnie wersje 2 i 3) nie zawierają wprost klauzul mówiących, że zwykłe korzystanie z programu przez sieć powoduje obowiązek udostępniania kodu backendu. GPL chroni użytkownika w momentach:

  • gdy otrzymuje kopię programu,
  • gdy chce tę kopię modyfikować i redystrybuować,
  • gdy dystrybuowana jest pochodna wersja programu.

W trybie „tylko usługa” użytkownik ma prawo działać z kodem, który i tak jest poza jego zasięgiem. Z punktu widzenia licencji – wszystko gra, choć z punktu widzenia etosu copyleft – coś tu zgrzyta. Stąd presja na stworzenie licencji, która:

  • obejmuje nie tylko dystrybucję kopii,
  • ale także udostępnianie funkcjonalności programu przez sieć.

AGPL – rozszerzony copyleft na użycie sieciowe

Affero GPL (AGPL) została zaprojektowana właśnie po to, aby domknąć „ASP loophole”. Kluczowa różnica między GPL a AGPL polega na tym, że AGPL:

  • wymaga udostępnienia kodu źródłowego użytkownikom komunikującym się z programem przez sieć, jeśli otrzymują oni interaktywny dostęp do jego funkcji,
  • rozciąga copyleft także na scenariusz SaaS – jeśli modyfikujesz AGPL-owy backend i oferujesz go jako usługę, użytkownik ma mieć możliwość pobrania Twojej zmodyfikowanej wersji kodu.

To oznacza dla dostawcy SaaS:

  • każda zmiana w kodzie objętym AGPL, której używasz w usłudze, musi być udostępniona w postaci źródłowej,
  • musisz zapewnić użytkownikom jasną drogę dostępu do tego kodu (np. link w interfejsie).

AGPL to mocny bat na komercyjne, zamknięte klony SaaS, ale ma też efekt uboczny: wiele firm w ogóle unika bibliotek i projektów na AGPL, bojąc się „zarażenia” swojego kodu obowiązkiem publikacji.

Inne „networkowe” licencje i mody na rynku SaaS

AGPL nie jest jedynym pomysłem na „doszczelnienie” modelu usługowego. Pojawiły się też inne warianty, czasem bardzo kreatywne. Część z nich jest nadal uznawana za open source, część już nie – ale w praktyce i tak pojawiają się w projektach SaaS.

Kilka częstych schematów:

  • „Network copyleft” w stylu Server Side Public License (SSPL) – inspirowane AGPL, ale idące znacznie dalej. SSPL (używana m.in. przez MongoDB) wymaga udostępnienia kodu całej usługi, jeśli oferujesz ją jako serwis. Nie tylko samej bazy, ale także elementów zarządzających, automatyzacji, narzędzi do monitoringu – wszystko, co jest „częścią oferty usługi” według dość szerokiej definicji.
  • Dodatkowe „restrykcyjne” klauzule – różne warianty „Commons Clause”, „Elastic License”, „Business Source License” (BSL) i podobne, które formalnie nie są open source, ale udostępniają kod. Kluczowy motyw: brak zgody na budowanie konkurencyjnego SaaS na bazie tego kodu.

Z perspektywy twórcy biblioteki czy serwera: to sposób na ochronę monetyzacji w czasach, gdy największym „parasitem” nie jest lokalny reseller, tylko duży dostawca chmury. Z perspektywy firmy SaaS korzystającej z cudzych klocków: sporo min licencyjnych.

Konsekwencje wyboru AGPL/SSPL dla ekosystemu SaaS

Licencje w stylu AGPL i SSPL silnie polaryzują rynek. Przy AGPL częsty scenariusz wygląda tak:

  • małe firmy, startupy i projekty akademickie są bardziej skłonne przełknąć obowiązek publikacji modyfikacji, bo i tak nie mają dużej przewagi tajemnicy know-how,
  • większe firmy tworzą wprost polityki „no AGPL”, aby uniknąć ryzyka ujawniania własnych zmian lub sporu prawnego o zakres „oddziaływania licencji na całą usługę”.

SSPL i podobne licencje „serwerowe” poszły jeszcze dalej, przez co zostały wykluczone z definicji open source (OSI uznaje je za niezgodne). Skutek uboczny:

  • część firm SaaS woli pozostać przy „klasycznym” open source (BSD/Apache/GPL) nawet kosztem łatwiejszego kopiowania,
  • inni idą w model „source available + komercyjna licencja” i liczą się z tym, że społeczność nigdy nie będzie tak duża jak wokół w pełni otwartego projektu.

Trzeba więc założyć, że wybór „agresywnego” copyleftu sieciowego poprawi ochronę biznesu przed konkurencyjnymi usługami, ale ograniczy krąg potencjalnych integratorów i kontrybutorów. Coś za coś.

Które licencje są „przyjazne SaaS”, a które stawiają sztywne warunki

Licencje, z którymi żyje się spokojnie (permissive)

Jeśli głównym celem jest minimalizacja ryzyka prawnego i maksymalna swoboda komercjalizacji, firmy SaaS najczęściej wybierają:

  • MIT / BSD-2 / BSD-3 – krótkie, proste, wymagają jedynie zachowania informacji o prawach autorskich i treści licencji w dystrybuowanych kopiach. Nie mają klauzul patentowych (poza pewnymi wariantami BSD), ale dla wielu projektów to akceptowalne.
  • Apache-2.0 – tak samo permissive jak MIT, ale dodatkowo zawiera wyraźny grant patentowy oraz mechanizm cofnięcia licencji patentowej, jeśli ktoś zacznie pozywać autora z użyciem własnych patentów. Dla SaaS w obszarach innowacyjnych (np. ML) to realna tarcza.

W tych licencjach model SaaS nie uruchamia żadnych dodatkowych obowiązków. Możesz:

  • świadczyć usługę, nie publikując kodu,
  • oferować klientom komercyjne rozszerzenia i pluginy na dowolnej licencji,
  • sprzedawać „on-premise” wersję serwera na zamkniętych warunkach, jeśli to Ty jesteś właścicielem praw.

To typowe wybory dla narzędzi developer-first, SDK, bibliotek chmurowych czy frameworków frontendu. Jeśli gdzieś w politykach bezpieczeństwa widzisz hasło „tylko permissive”, bardzo możliwe, że stoi za tym zespół prawny dużej korporacji, który raz sparzył się na copyleftcie.

Copyleft łagodny i twardy w kontekście SaaS

Copyleft ma różne „poziomy ostrości”, które inaczej rezonują z SaaS:

  • LGPL – łagodny copyleft, nastawiony na biblioteki. Pozwala łączyć kod objęty LGPL z aplikacjami na dowolnej licencji, o ile zachowane są warunki dotyczące samej biblioteki (np. możliwość wymiany na zmodyfikowaną wersję). Dla SaaS to często akceptowalne, zwłaszcza gdy biblioteka jest dynamicznie linkowana.
  • GPL – copyleft „klasyczny”. Nie obejmuje samego faktu świadczenia usługi SaaS, ale obejmie każdy przypadek, gdy:
    • dystrybuujesz klienta desktopowego, który korzysta z komponentu GPL,
    • dystrybuujesz plugin lub moduł będący pochodną kodu GPL.

    Przy wyłącznie serwerowym użyciu GPL-owego komponentu ryzyko wymuszania otwarcia kodu jest mniejsze, ale problem pojawia się przy każdym kroku w stronę „hybryd” SaaS + on-premise.

  • AGPL – copyleft „sieciowy”, o którym była mowa wyżej. Tu konsekwencje dla SaaS są już bezpośrednie: modyfikacje serwera używanego w usłudze trzeba udostępniać użytkownikom.

W uproszczeniu: LGPL i GPL da się często obsłużyć dobrym podziałem architektury (izolacja komponentów, brak dystrybucji serwera), natomiast AGPL świadomie utrudnia zbudowanie w pełni zamkniętego SaaS na bazie otwartego backendu.

Licencje „source available” – przyjazne biznesowi, niekoniecznie społeczności

Coraz więcej projektów serwerowych (szczególnie tych atrakcyjnych dla hyperscalerów) przechodzi na modele:

  • Business Source License (BSL) – kod jest widoczny, ale przez pewien czas (np. 3 lata) obowiązują ograniczenia komercyjne, w tym zakaz oferowania konkurencyjnego SaaS. Po tym okresie kod przechodzi automatycznie na klasyczną, często copyleftową licencję (np. GPL).
  • Elastic License, Confluent Community License, itp. – bardzo podobny wzorzec: „możesz używać, rozwijać, testować, ale nie możesz oferować hostowanej wersji konkurencyjnej do naszej usługi”.

Te licencje dają autorowi spore pole do gry biznesowej, ale są problematyczne dla:

  • dystrybutorów open source (dystrybucje Linuxa, katalogi pakietów),
  • firm przywiązanych do definicji OSI i funduszy VC, które celują w „prawdziwy open source”.

Jeśli celem jest szybkie zbudowanie przewagi SaaS i nie zależy Ci na łatce „open source purystów”, „source available” bywa kuszącym kompromisem. Trzeba tylko uczciwie to komunikować – inaczej prędzej czy później przyjdą komentarze typu „to nie jest open source, niezależnie od tego, co piszecie na stronie”.

Dłoń trzymająca naklejkę z logo Yarn na rozmytym tle
Źródło: Pexels | Autor: RealToughCandy.com

Kiedy open source, a kiedy „source available” lub licencja podwójna

Modele monetyzacji a wybór licencji

Licencja nie istnieje w próżni – powinna być spójna z tym, jak planujesz zarabiać. Typowe kombinacje:

  • „Pure SaaS” – zarabiasz wyłącznie na hostowanej usłudze, nie sprzedajesz licencji on-premise. W takim modelu:
    • licencje permissive (MIT/Apache-2.0) pozwalają na maksymalną adopcję i integracje,
    • AGPL może odstraszyć integratorów, ale zabezpieczy przed konkurencyjną usługą opartą na Twoim kodzie,
    • „source available” z zakazem konkurencyjnego hostingu daje najsilniejszą ochronę, ale najmniej „punktów karmy” w środowisku open source.
  • „Open core” – część funkcji jest open source, część dostępna tylko w wersji płatnej (SaaS lub on-premise). Tu często spotyka się:
    • rdzeń na Apache-2.0 lub MPL-2.0 (łagodny copyleft na poziomie plików),
    • rozszerzenia „enterprise” na licencji komercyjnej,
    • czasem dodatkową licencję zakazującą hostowania komercyjnego klona na bazie całości.
  • „Consulting & support” – zarabiasz na wdrożeniach i wsparciu. Wtedy mocniejszy copyleft (GPL/AGPL) może wręcz pomóc, bo utrudnia konkurencji zbudowanie zamkniętego „forka konsultingowego”.

Kłopot zaczyna się wtedy, gdy licencja i model przychodu są ze sobą sprzeczne, np. próbujesz sprzedawać closed-source moduły do rdzenia na AGPL i udajesz, że to nie problem. Z czasem ktoś to zauważy.

Licencja podwójna – jeden kod, dwa światy

Dual licensing to sposób, aby połączyć otwartość z komercjalizacją. Ten sam kod jest oferowany:

  • społeczności – na licencji copyleft (np. GPL/AGPL),
  • klientom komercyjnym – na licencji zamkniętej, pozwalającej na budowę produktów SaaS bez obowiązku ujawniania modyfikacji.

Warunek konieczny: musisz mieć pełną kontrolę nad prawami autorskimi do projektu (albo zebrać zgody kluczowych kontrybutorów). Najprościej:

  • projekt rozwijany jest głównie przez jedną firmę,
  • kontrybutorzy zewnętrzni podpisują CLA (Contributor License Agreement), który pozwala firmie relicencjonować kod.

Dla klienta SaaS wygląda to tak:

  • jeśli buduje wewnętrzny system lub nie boi się obowiązków copyleft – może korzystać z wersji open (GPL/AGPL),
  • jeśli chce utrzymać pełną tajemnicę biznesową – kupuje licencję komercyjną i korzysta na swoich warunkach.

To model znany m.in. z baz danych czy silników wyszukiwania, choć coraz częściej zastępowany bardziej skomplikowanymi „source available + klauzule biznesowe”, które z prawniczego punktu widzenia są po prostu licencją komercyjną z opublikowanym kodem.

Kiedy „source available” ma więcej sensu niż klasyczne OSS

Choć dla purystów to herezja, są sytuacje, w których „source available” rzeczywiście lepiej wspiera biznes SaaS:

  • produkt jest silnie zorientowany na hyperscalery – realnym zagrożeniem jest scenariusz „duża chmura wypuszcza managed service based on your code”. Wtedy zakaz konkurencyjnego hostingu ma konkretną wartość.
  • głównym wyróżnikiem jest know-how zaimplementowane bezpośrednio w kodzie (np. bardzo wyspecjalizowane algorytmy dla niszowej branży). Ujawnienie tego know-how w modelu otwarto-źródłowym może wręcz zabić przewagę konkurencyjną.
  • zespół nie planuje budowy szerokiej społeczności – projekt jest od początku „produktem firmy”, nie platformą dla zewnętrznych kontrybutorów.

Z kolei gdy:

  • liczysz na wkład zewnętrznych developerów,
  • chcesz, by projekt żył także poza Twoją firmą,
  • zależy Ci na obecności w repozytoriach dystrybucji Linuksa czy w ekosystemie dużych fundacji (CNCF, Apache Foundation),

„Source available” będzie raczej kulą u nogi. Wtedy lepiej rozważyć otwarty rdzeń (Apache/MIT/MPL) i dorobić płatne moduły lub usługi, niż próbować „zamykać” całe rozwiązanie.

Jak dobrać licencję, gdy planujesz od razu SaaS na swoim projekcie

Prosty proces decyzyjny dla twórcy SaaS

Przy wyborze licencji pomaga kilka konkretnych pytań. Bez wielkiej filozofii:

  1. Czy chcesz, aby ktoś inny mógł legalnie zbudować konkurencyjny SaaS na Twoim kodzie?
    • Tak – wybierz coś permissive (MIT/Apache-2.0). Twoją przewagą będzie marka, UX, support, nie sam kod.
    • Nie – rozważ AGPL albo „source available” z zakazem hostingu konkurencyjnego.
  2. Czy liczysz na wkład społeczności i integratorów korporacyjnych?
    • Tak – preferowane są licencje uznawane za open source (MIT, Apache-2.0, MPL-2.0, ewentualnie GPL/LGPL). „Source available” mocno ogranicza ekosystem.
    • Nie – możesz bardziej agresywnie bronić modelu SaaS (SSPL, BSL, własna licencja komercyjna z wglądem w źródła).
  3. Czy planujesz sprzedaż on-premise / self-hosted?
    • Jeśli tak – dobrze sprawdza się dual licensing (open core + komercyjne rozszerzenia) lub czysta licencja komercyjna dla wersji on-premise.
    • Dostosowanie licencji do etapu rozwoju produktu

      Dobór licencji dla SaaS często zmienia się razem z projektem. Co innego pasuje przy „garażowym MVP”, a co innego, gdy wchodzi dział prawny dużego klienta.

    • Faza eksperymentu / MVP – główny cel: trakcja i feedback, nie obrona przed chmurami.
      • sensowne są licencje permissive (MIT/Apache-2.0),
      • łatwiej przekonać pierwszych użytkowników i integratorów („możecie brać i testować bez kombinowania”).
    • Faza product–market fit – zaczynają pytać o umowy, SLA, roadmapę. Jeśli projekt zyskuje na znaczeniu:
      • pojawia się pokusa „utwardzenia” licencji: przejście z Apache-2.0 na AGPL lub „source available”,
      • trzeba wtedy przeanalizować wkład kontrybutorów – bez ich zgody nie „przekręcisz” starego kodu na ostrzejszą licencję.
    • Faza skali / enterprise – rozmowy z korporacjami i partnerami technologicznymi:
      • często kończy się na dual licensing (wersja community + komercyjna) lub jasnym rozdziale: open core vs. płatne dodatki,
      • im bardziej rygorystyczny copyleft, tym więcej pytań od działów prawnych po stronie klienta.

    Zmiana licencji w trakcie rozwoju nie jest herezją, ale im później to robisz i im więcej osób dołożyło kodu, tym operacja jest droższa i bardziej polityczna. Lepiej przemyśleć kierunek wcześniej, niż po kilku latach tłumaczyć społeczności, że „jednak zamykamy”.

    Architektura techniczna a swoboda wyboru licencji

    Architektura rozwiązania SaaS potrafi uratować lub zabić elastyczność licencyjną. Kilka decyzji technicznych przekłada się na bardzo konkretne obowiązki prawne.

    • Wyraźna separacja komponentów – komunikacja po HTTP/REST, gRPC, kolejce wiadomości:
      • pozwala korzystać z komponentów na copylefcie (GPL/LGPL) bez „zarażania” całego monolitu,
      • ułatwia późniejszą wymianę biblioteki na inną, jeśli licencja zacznie uwierać.
    • Monolit z twardą integracją – bezpośrednie linkowanie, wspólne binaria:
      • przy mocnym copylefcie ryzykujesz, że całość zostanie uznana za dzieło pochodne,
      • ucieczka od niewygodnego komponentu po kilku latach to wtedy projekt migracyjny, nie „refactor na sprint”.
    • Front-end vs. backend – kod frontu (JS, SPA) bywa dystrybuowany faktycznie do przeglądarki:
      • gdy front korzysta z komponentów copyleft (np. GPL w bundlu) – skutki są inne niż przy czysto serwerowym użyciu,
      • czasem lepiej wziąć alternatywę na MIT, niż później tłumaczyć użytkownikom, gdzie jest „pełny kod źródłowy aplikacji webowej”.

    Przy projektowaniu nowego SaaS dobrze jest wrzucić do checklisty architektonicznej: „czy możemy w razie czego wymienić ten komponent na inny z inną licencją, bez rozpisywania epopei migracyjnej?”. To oszczędza sporo nerwów, gdy modne dziś narzędzie za dwa lata zmienia licencję na SSPL.

    Jak dokumentować wybór licencji we własnym projekcie SaaS

    Przy poważniejszym projekcie chaotyczne „wrzućmy MIT do repo” szybko się mści. Prosty, ale konsekwentny zestaw dokumentów porządkuje temat:

    • Plik LICENSE w repo – pełny tekst licencji, nie tylko link. Dla dual licensing:
      • jasne wskazanie, że kod w repo jest dostępny na licencji X,
      • odnośnik do strony z warunkami licencji komercyjnej.
    • NOTICE / THIRD-PARTY LICENSES – lista zewnętrznych komponentów:
      • informacje o licencjach bibliotek i serwerów, które wchodzą w skład produktu,
      • w razie audytu klient nie musi sam kopać po całym drzewie zależności.
    • Polityka kontrybucji (CONTRIBUTING.md, CLA/DAA):
      • opis, kto i na jakich zasadach może dorzucać kod,
      • ewentualnie link do CLA – jeżeli planujesz dual licensing lub mocno komercyjny rozwój.

    Dla klientów SaaS używających Twojej biblioteki lub narzędzia te dokumenty są często pierwszym miejscem, do którego zagląda prawnik. Im mniej tam niespodzianek i „ale to trzeba doprecyzować mailem”, tym szybciej przechodzisz przez proces due diligence.

    Jak interpretować cudzą licencję, gdy budujesz SaaS na istniejącym open source

    Checklist przed użyciem cudzego projektu w backendzie SaaS

    Zanim postawisz biznes na cudzym repozytorium, warto wykonać kilka rutynowych kroków. To zajmuje dzień, ale może oszczędzić miesiąc gaszenia pożaru.

    1. Zidentyfikuj dokładną licencję
      • sprawdź plik LICENSE w repo oraz wzmianki w README / stronie projektu,
      • upewnij się, że mówimy o tej samej wersji (np. GPL-2.0 vs GPL-3.0, AGPL-3.0 vs „AGPL-compatible custom license”).
    2. Sprawdź, czy projekt zmieniał licencję
      • niektóre narzędzia przeszły z OSS na „source available” po kilku wersjach,
      • musisz wiedzieć, które wersje możesz legalnie używać i czy to Ci wystarcza funkcjonalnie.
    3. Oceń sposób użycia w swoim SaaS
      • czy będziesz tylko „consumować” usługę (np. zewnętrzne API pod OSS licencją), czy osadzisz kod we własnym serwerze,
      • czy kod będzie dystrybuowany klientom (agent, plugin, mobilka), czy zostaje tylko na Twoich serwerach.
    4. Spójrz na dodatkowe pliki prawne
      • COPYING, LICENSE-ENTERPRISE, SSPL.txt i podobne – tam bywa ukryte „ale jeśli hostujesz…”,
      • projekty typu „community + enterprise” często mają bardzo specyficzne ograniczenia SaaS w wersji komercyjnej.

    Typowe scenariusze integracji i ich konsekwencje

    Ten sam projekt OSS może być zupełnie neutralny albo toksyczny dla Twojego SaaS – zależnie od tego, jak go użyjesz. Kilka typowych przypadków:

    • Biblioteka w backendzie (np. w Pythonie, Node, Go)
      • Permissive (MIT/Apache/BSD) – praktycznie brak dodatkowych obowiązków poza atrybucją.
      • LGPL – musi istnieć możliwość zamiany biblioteki na inną wersję (dynamiczne linkowanie, brak modyfikacji biblioteki „w środku”).
      • GPL – przy klasycznym SaaS bez dystrybucji binaryjnej ryzyko jest mniejsze, ale:
        • jeśli ten sam serwer będzie dystrybuowany on-premise – pojawia się silna presja copyleft,
        • jeśli tworzysz moduł ściśle pochodny (np. plugin do systemu na GPL) – może on sam wpaść pod GPL.
      • AGPL – jeśli modyfikujesz kod serwera i udostępniasz go użytkownikom przez sieć, wchodzi obowiązek udostępnienia kodu (w praktyce: forka).
    • Samodzielny serwis w infrastrukturze (np. hostujesz otwarty serwer bazodanowy)
      • przy GPL/LGPL korzystasz w miarę swobodnie, jeśli nie dystrybuujesz zmodyfikowanego serwera dalej,
      • AGPL: jeśli modyfikujesz serwis (np. specjalne feature’y pod swój SaaS) – te modyfikacje obejmuje obowiązek udostępnienia.
    • Pluginy, integracje, SDK po Twojej stronie
      • gdy SDK jest na permissive – zwykle problemu nie ma,
      • gdy SDK lub plugin używają copyleft – aplikacja klienta może zostać uznana za dzieło pochodne, co budzi niepokój po stronie enterprise.

    Zdarza się, że SaaS rośnie latami na komponencie AGPL, a dopiero pierwszy duży klient zapyta: „czy musicie ujawniać kod całego serwera, bo używacie tego projektu?”. Wtedy na stole pojawia się koszt planu B: przepisanie funkcjonalności lub wykup licencji komercyjnej.

    Specyficzne „miny” w nowych licencjach quasi-open-source

    Nowe modele licencyjne wokół projektów popularnych w chmurach bywają mylące, bo wyglądają jak OSS, ale zawierają haczyki uderzające dokładnie w Twój przypadek: hostowany SaaS.

    • SSPL (Server Side Public License)
      • wygląda jak GPL z dodatkami, ale dla większości społeczności OSS nie jest uznawana za licencję open source,
      • jeśli oferujesz usługę na bazie projektu pod SSPL, możesz mieć obowiązek otwarcia nie tylko forka projektu, lecz także całej „usługi jako całości” – w praktyce nieakceptowalne dla wielu firm.
    • BSL w wersji „obwarowanej”
      • często przewiduje zakaz oferowania konkurencyjnego hostingu przez określony czas,
      • jeśli Twój biznes model to po prostu wydajniejsza/tańsza wersja tej samej usługi – jesteś wprost na liście rzeczy zabronionych.
    • „Community License”, „Non-Compete License”, itp.
      • klauzule typu „no cloud provider”, „no managed service” – dokładnie wymierzone w SaaS-y i chmury publiczne,
      • same w sobie są legalne, ale nie są OSS; trzeba je czytać jak zwykłą licencję komercyjną, a nie jak GPL czy MIT.

    Przy takich licencjach używanie nazwy „open source” bywa nadużyciem marketingowym. Dla Twojego SaaS to nie semantyka, tylko realne ryzyko naruszenia warunków i konsekwencji umownych.

    Kiedy lepiej kupić licencję komercyjną niż kombinować

    Są sytuacje, w których taniej i bezpieczniej jest po prostu zapłacić właścicielowi projektu, niż budować dziwne obejścia architektoniczne wokół jego licencji.

    • Kluczowy komponent Twojej wartości – baza danych, silnik wyszukiwania, system analityczny, bez którego Twój SaaS nie istnieje:
      • jeśli stoi na AGPL/BSL/SSPL, a Ty chcesz trzymać kod serwera w tajemnicy – licencja komercyjna bywa ułamkiem kosztu przepisywania całego stosu,
      • dodatkowo dostajesz wsparcie, które i tak prawdopodobnie kupisz w innej formie.
    • Duzi klienci wymagają jasności
      • dział prawny korporacji może wymagać formalnego prawa do używania komponentu w Twoim SaaS, zamiast dyskusji „czy AGPL w tym scenariuszu nas obejmuje”
      • umowa licencyjna z vendor’em upraszcza audyty i skraca cykl sprzedaży.
    • Brak łatwego zamiennika technicznego
      • czasem teoretycznie możesz wymienić jeden komponent na drugi, ale w praktyce to rok pracy i ryzyko regresów,
      • koszt rocznej licencji vs. koszt „replatformingu” bywa bezlitosny – arkusz w Excelu szybko pokaże zwycięzcę.

    Nie ma w tym nic „nieczystego”: wiele firm świadomie korzysta z open source w modelu „community na development, komercyjna licencja na produkcję”. Klucz w tym, żeby było to świadome, a nie wymuszone paniką po liście od prawnika.

    Jak rozmawiać z właścicielem projektu open source o warunkach dla SaaS

    Jeśli Twój model biznesowy mocno opiera się na jednym projekcie, warto na wczesnym etapie nawiązać z jego twórcami kontakt. Dobre relacje z upstreamem potrafią ułatwić życie latami.

    • Wejdź w rolę partnera, nie „pasażera na gapę”
      • pokaż, jakie masz plany, jaki ruch planujesz generować,
      • zapytaj wprost, czy aktualny model licencyjny jest dla nich OK przy takim scenariuszu.
    • Zapytaj o ścieżkę komercyjną
      • wiele firm ma nieopisane publicznie modele licencyjne dla OEM/SaaS/hosted – warto je poznać zanim zainwestujesz duże środki,
      • czasem da się wynegocjować „grandfathering” – np. stałe warunki licencyjne dla konkretnej wersji czy linii produktowej.
    • Najczęściej zadawane pytania (FAQ)

      Jaka licencja open source jest najlepsza dla projektu, który chcę oferować jako SaaS?

      Nie ma jednej „najlepszej” licencji dla wszystkich. Jeśli zależy Ci na maksymalnej adopcji przez firmy i nie przeszkadza Ci, że ktoś postawi konkurencyjny SaaS na Twoim kodzie, wybierz licencję permissive (MIT, BSD, Apache-2.0). Dają najmniej ograniczeń i są najbardziej „przyjazne” dla biznesu.

      Jeśli chcesz, by modyfikacje wracały do społeczności albo przynajmniej były dostępne dla użytkowników, rozważ copyleft (GPL, AGPL) lub modele hybrydowe (np. core pod copyleft, dodatki komercyjne). Przy stricte chmurowych zastosowaniach często wybiera się AGPL, która lepiej „widzi” model usługowy niż klasyczna GPL.

      Czy licencja GPL chroni mój projekt przed komercyjnym klonem SaaS?

      Klasyczna GPL nie chroni zbyt dobrze przed typowym klonem SaaS. Jej „zęby” uruchamiają się głównie przy dystrybucji programu – gdy ktoś wydaje kopię oprogramowania użytkownikowi. W modelu SaaS użytkownik widzi jedynie efekt działania, więc wiele interpretacji uznaje, że do dystrybucji w ogóle nie dochodzi.

      W praktyce firma może legalnie hostować Twoje oprogramowanie na GPL na swoich serwerach, świadczyć usługę i nie publikować własnych modyfikacji backendu, o ile niczego nie dystrybuuje użytkownikom. Jeśli celem jest utrudnienie takim podmiotom budowania zamkniętego SaaS na Twoim kodzie, częściej patrzy się w stronę AGPL lub dodatkowych klauzul.

      Czym AGPL różni się od GPL w kontekście usług SaaS?

      AGPL dodaje do GPL kluczowy element: obowiązek udostępnienia kodu źródłowego także wtedy, gdy użytkownicy korzystają z programu przez sieć (np. jako SaaS), a nie dostają jego kopii. Mówiąc brutalnie – ma zamykać „lukę SaaS” obecną w klasycznej GPL.

      Jeśli ktoś buduje komercyjny SaaS na Twoim projekcie AGPL i modyfikuje kod, powinien udostępnić źródła użytkownikom usługi. To zniechęca część firm do używania AGPL w kluczowych komponentach, ale dla autora projektu bywa świadomym „bezpiecznikiem” przed zamkniętym rozwidleniem w chmurze.

      Czy na licencji MIT ktoś może legalnie sklonować mój projekt jako płatny SaaS?

      Tak. Licencja MIT wprost pozwala na używanie, kopiowanie, modyfikowanie, łączenie z innym kodem i komercyjne wykorzystywanie, byle zachować informację o prawach autorskich i treść licencji przy dalszej dystrybucji. Nie wymaga udostępniania zmian ani współdzielenia przychodów.

      W praktyce oznacza to, że ktoś może:

      • postawić Twoje narzędzie jako usługę w chmurze,
      • dołożyć własne funkcje i UI,
      • sprzedawać dostęp jako płatny SaaS bez ujawniania swoich modyfikacji kodu backendu.

      To nie jest „kradzież”, tylko dokładnie to, na co pozwala MIT. Jeśli taki scenariusz Cię boli już na etapie myślenia o nim – rozważ inną licencję.

      Czy samo korzystanie z biblioteki open source w moim SaaS wymusza otwarcie całego kodu?

      To zależy od licencji tej biblioteki i od tego, czy cokolwiek dystrybuujesz. W klasycznym SaaS, gdzie użytkownik dostaje tylko dostęp przez przeglądarkę lub API, a nie kopię programu, obowiązki copyleft (np. GPL) zwykle się nie uruchamiają – bo nie ma dystrybucji.

      Problemy zaczynają się, gdy oprócz backendu udostępniasz klienta desktopowego, aplikację mobilną, SDK lub wtyczkę. Te elementy są już dystrybuowane, więc:

      • musisz respektować warunki licencji zależności (np. udostępnić kod modyfikacji przy GPL),
      • uważać na mieszanie licencji, które są niekompatybilne.

      Bez audytu licencji łatwo niechcący „zarazić” cały klientowski komponent mocnym copyleftem.

      Jak uniknąć sytuacji, w której społeczność ucieka do ładniejszego, komercyjnego klona mojego projektu?

      Część to kwestia licencji, a część – brutalna rzeczywistość biznesowa. Od strony prawnej możesz:

      • wybrać licencję copyleft (np. AGPL) zamiast MIT/BSD,
      • stosować model dual-licensing (np. wersja community pod copyleft, komercyjna z dodatkowymi prawami),
      • dodać rozsądne, przemyślane ograniczenia w osobnych warunkach korzystania z brandu, znaków towarowych itp.

      Od strony praktycznej pomaga: oferowanie własnej dobrej usługi chmurowej, szybki rozwój projektu, sensowny onboarding kontrybutorów i dbanie o markę. Sama licencja nie „wygra” z firmą, która ma lepszy UX, support i marketing – może jedynie zmienić zasady gry, na jakich ten klon powstanie.

      Na co konkretnie patrzeć w treści licencji, jeśli myślę o modelu SaaS?

      Przy czytaniu licencji pod kątem SaaS warto wyłapać kilka fragmentów:

      • definicje „dystrybucji”, „conveying”, „making available over a network”,
      • zapisy o obowiązku udostępniania kodu źródłowego i w jakich sytuacjach się aktywują,
      • postanowienia o sublicencjonowaniu i łączeniu z innym kodem,
      • ewentualne klauzule sieciowe (w AGPL i podobnych).

      Jeśli po trzecim czytaniu nadal nie jesteś pewien, co licencja robi z Twoim modelem SaaS – to zupełnie normalne. W takiej sytuacji lepiej raz skonsultować się z prawnikiem niż później przez lata żyć z kiepskim wyborem.

      Bibliografia

    • The GNU General Public License, version 3. Free Software Foundation (2007) – Tekst GPLv3, definicje dystrybucji, conveying i obowiązków copyleft
    • The GNU Affero General Public License, version 3. Free Software Foundation (2007) – Tekst AGPLv3, klauzula dotycząca udostępniania kodu przy dostępie sieciowym
    • Open Source Definition. Open Source Initiative – Kryteria licencji open source, podstawowe pojęcia wolności użytkownika
    • Apache License, Version 2.0. Apache Software Foundation (2004) – Tekst licencji Apache-2.0, w tym klauzule patentowe i warunki dystrybucji
    • MIT License. Massachusetts Institute of Technology – Tekst licencji MIT, zakres dozwolonego użycia i ograniczenia odpowiedzialności