Seria: Vibe coding na własnych zasadach
Powiązane: Post #1 — „Alternatywa dla Lovable: darmowy vibe coding z VSCode, Cline, Ollama i Supabase" oraz „Lovable vs. alternatywa za 0 $" (uczciwa tabela wyników)
Dzień, w którym muzyka ucichła
W poście porównawczym napisałem, że układ z darmowym setupem jest „znakomity, ale bez gwarancji". To jest post, w którym część bez gwarancji upomina się o swoje — dziennik jednego prawdziwego dnia budowania jednej prawdziwej aplikacji, na MacBooku Air z 16 GB RAM-u i budżetem na modele wynoszącym 0 $.
Aplikacja była celowo skromna: narzędzie do zarządzania projektami dla jednego użytkownika. Projekty, zadania, kamienie milowe, widok osi czasu, bez logowania. Na Lovable to robota na pięć minut i może 20 kredytów. Na moim darmowym setupie — King Island, samodzielnie hostowanej alternatywie dla Lovable z posta nr 1 — zamieniła się w wycieczkę z przewodnikiem po każdym suficie, jaki ma darmowy poziom.
Najpierw krótka wycieczka po setupie, żeby raport z awarii miał sens.
Sprzęt. MacBook Air z 16 GB pamięci unified — świetny laptop na co dzień i (jak pokaże ten post) dokładnie o jedną kategorię wagową za lekki, żeby gościć własny mózg AI.
Platforma. King Island, mój własnoręcznie zbudowany orkiestrator: lokalna strona główna, na której jeden prompt stawia kompletny projekt ze złotego szablonu. Każdy nowy projekt dostaje:
- Frontend: Vite + React + TypeScript + Tailwind + shadcn/ui
- Backend: dedykowany lokalny stack Supabase/Postgres na projekt (przez Dockera)
- Historię: git, zainicjalizowany od pierwszego commita — jeden commit na zadanie AI
- Pamięć: plik MEMORY.md, który agent czyta przed każdym zadaniem i aktualizuje po nim
Agent. Samo budowanie wykonuje Cline CLI — headlessowa uprząż agentowa, która na mojej maszynie jest właścicielem edycji plików i poleceń terminala. King Island podaje jej prompt; ona wykonuje robotę.
Mózgi. Modele są skonfigurowane przez darmową pulę dostawców Cline'a, z dropdownem w każdym workspace projektu, żeby przełączać per zadanie:
- Poolside Laguna S 2.1 — domyślny i mój niezawodny model na co dzień
- NVIDIA Nemotron 3 Ultra — darmowa waga ciężka do trudnych problemów
- Google Gemma 4, Cohere North Mini Code, hostowany Laguna XS — drugi plan
- Wszystkie na darmowych planach — ten szczegół jest czarnym charakterem tej historii
- (Ollama z lokalnym Qwen 2.5 Coder 7B siedzi na ławce rezerwowych — to model, który udowodnił, że 16 GB nie uciągnie mózgu klasy agentowej)
Ślad papierowy. Każde zadanie AI jest logowane automatycznie — model, czas trwania, wynik. Dlatego ten dziennik ma znaczniki czasu.
Oto, co dokładnie się wydarzyło, według tych logów:
Rano — waga ciężka odklepuje. Dałem pełny prompt budowy NVIDII Nemotron 3 Ultra, najsilniejszemu darmowemu modelowi w moim dropdownie. Planował ambitnie, napisał solidny, wielokomponentowy kod — a potem umarł w połowie builda z ResourceExhausted: Worker local total request limit reached (33/32). Tłumaczenie: agent spala jedno żądanie na każdy krok narzędziowy, pełny build aplikacji to 30–50+ kroków, a budżet żądań darmowego poziomu skończył się, zanim skończyła się aplikacja. Placeholder z szablonu wciąż był na ekranie; praca była w połowie scommitowana.
Południe — ten niezawodny robi się dziwny. Wrak przekazałem mojemu codziennemu modelowi, Lagunie S od Poolside. Przeczytał 37 plików, uruchomił 8 poleceń i napisał — nic. Zero wywołań zapisu. Zamiast tego wydrukował kompletne zawartości plików do czatu jako markdown — tryb awarii, który od tamtej pory nazywam zapaścią prozatorską: kod istnieje jako rozmowa, nie jako pliki. Zrobił to tego dnia dwukrotnie. Trzecia próba umarła z zamkniętym socketem po 29,5 minutach monologu planistycznego. Trzy porażki, jeden wspólny objaw: niekończące się myślenie, żadnego pisania.
Popołudnie — sonda i poprawka, która zadziałała. Celowo malutkie zadanie testowe — dwa pliki, jawna lista plików — przeszło bezbłędnie: czyste edycje, sprawdzenie typów z własnej inicjatywy, zdyscyplinowane podsumowanie. Lekcja: degradacja darmowego poziomu zależy od rozmiaru zadania. Duże, otwarte buildy wpadają w spiralę; małe, ściśle wyznaczone zadania lądują. Podzieliłem więc aplikację na cztery jawne „dania" (typy + warstwa API, migracja bazy danych, komponenty, dashboard + okablowanie) i podawałem je po jednym. Dania od pierwszego do trzeciego zbudowały się czysto. Działało.
Wieczór — ściana. Danie czwarte — dashboard, ostatnie danie — wróciło z: Daily free model limit reached. Resets in 8h 31m. Tym razem nie pula modelu; dzienny przydział mojego konta w całym darmowym poziomie. Aplikacja stała na 75% ukończenia, każdy pozostały problem był rozwiązany na papierze, a ja nie mogłem zrobić nic poza czekaniem do mniej więcej kwadransa po jedenastej w nocy.
Przeczytaj ten ostatni akapit jeszcze raz, bo to teza tego posta: Nie utknąłem na inżynierii. Utknąłem na księgowości. Porażki, które kosztowały mnie ten dzień, nie były bugami w moim kodzie ani lukami w moim setupie — były licznikami, których nie kontroluję, przypiętymi do mocy obliczeniowej, której nie posiadam.
Anatomia „darmowego": trzy gatunki limitów
Ten jeden dzień wyciągnął na powierzchnię wszystkie trzy rodzaje limitów, jakie istnieją w ekonomii darmowych poziomów, a odróżnianie ich ma znaczenie, bo droga ucieczki różni się w zależności od gatunku:
| # | Gatunek | Jak brzmi | Zasięg | Droga ucieczki |
|---|---|---|---|---|
| 1 | Wyczerpanie puli dostawcy | "ResourceExhausted: worker limit" | Darmowa pojemność jednego modelu | Zmień model — dropdown to failover |
| 2 | Dzienny limit konta (agregator) | "free-models-per-day limit" | Wszystkie darmowe modele na tym kluczu | Czekaj na reset albo płać |
| 3 | Dzienny limit dostawcy agenta | "Daily free model limit reached" | Cała darmowa pula dostawcy twojego agenta | Czekaj (~8,5 h) albo płać |
Gatunek 1 da się przeżyć — zmiana modelu pomaga. Gatunki 2 i 3 to ściany: tamtego dnia żaden model w dropdownie by mnie nie uratował, bo limit siedział ponad modelami. I okrutny szczegół, który warto znać zawczasu: nieudane próby też spalają przydział. Maratony zapaści prozatorskiej i martwy socket — wszystko to liczyło się do dziennego przydziału, który później zatrzymał tę skuteczną strategię.
Dlaczego mój MacBook Air nie może po prostu zrobić tego lokalnie
Oczywista riposta: „uruchom model na własnej maszynie — żadnego licznika, żadnego limitu, nigdy". Co do zasady słusznie i dokładnie tam zmierza ta seria. Ale oto sprzętowa rzeczywistość 16-gigabajtowego MacBooka Air w 2026 roku, zmierzona, nie zgadywana:
Zdolny do pracy agentowej model open-weight, którego naprawdę chcę — Laguna XS 2.1 od Poolside, bliźniak mojego hostowanego codziennego modelu na licencji Apache 2.0, 33B parametrów (3B aktywnych), kontekst 256K, jawnie zbudowany do autonomicznego używania narzędzi — potrzebuje mniej więcej 33–36 GB RAM-u, żeby działać dobrze. Moja maszyna ma 16. Modele, które mieszczą się w 16 GB, przetestowałem: koder 7B opowiadał swoje wywołania narzędzi tekstem, zamiast je wykonywać — klasyczna porażka małych modeli, której nie naprawi żaden prompt engineering. Poniżej pewnego rozmiaru modele potrafią gadać o kodzie, ale nie potrafią niezawodnie działać jako agenci. Jedyny ciekawy eksperyment 16 GB, jaki pozostaje, to Devstral-2 22B (~13 GB po kwantyzacji, strojony pod agentów) — a nawet on zostawia system operacyjny, Dockera, stack Postgresa, Vite i przeglądarkę bijące się o pozostałe 3 GB. Uczciwe podsumowanie: 16 GB uciągnie warsztat albo robotnika, nie obu naraz.
„W pełni za darmo" rozpada się więc na dwa różne twierdzenia. Darmowe licencyjnie — model open-weight istnieje, jest naprawdę znakomity i nic nie kosztuje. Darmowe dla mojej maszyny — nie. Między tymi dwoma twierdzeniami siedzi sprzętowy próg około 36 GB pamięci unified i ten próg jest prawdziwą metką cenową niezależności.
Pas 1: kup maszynę (droga capex)
Ile kosztuje przekroczenie progu w sierpniu 2026? Więcej niż rok temu — w jednej z lepszych ironii całej tej historii boom na centra danych AI wywindował ceny pamięci tak mocno, że Apple podniósł ceny Maców o mniej więcej 15–20% w czerwcu 2026 i wycofał kilka konfiguracji z dużą ilością RAM-u. Branża sprzedająca ci hostowaną AI sprawiła, że posiadanie własnej stało się droższe. Aktualny stan menu:
| Maszyna | Pamięć | Cena (sie 2026) | Werdykt dla lokalnych agentów |
|---|---|---|---|
| M5 MacBook Air 13" / 15" | maks. 32 GB | $1,499 / $1,699 | ⚠️ Kusząca pułapka — 32 GB siedzi tuż pod progiem ~36 GB; obok stacku deweloperskiego mieszczą się tylko marginalne modele |
| Mac mini M4 Pro | 48 GB | ≈ $2,000 (baza $1,599 + pamięć) | ✅ Najtańsze prawdziwe przekroczenie progu; tylko desktop; wariant 64 GB wycofany |
| MacBook Pro M5 Pro | 48 GB | ≈ $2,600–3,100 (promocje ~$2,700) | ✅ Laptopowy sweet spot |
| Mac Studio M4 Max | do 64 GB | od $2,499 | ✅ Poziom z zapasem — uruchamia większe modele z listy poniżej |
A co by na tym działało — sierpniowa (2026) krótka lista modeli open-weight, ze zmierzonym apetytem na RAM:
| Model | Rozmiar | Potrzebny RAM | Dlaczego jest ciekawy |
|---|---|---|---|
| Laguna XS 2.1 | 33B MoE (3B aktywne) | ~33–36 GB | Wyznaczony mózg: Apache 2.0, kontekst 256K, zbudowany do agentowej pracy w terminalu, 30–50 tok/s na Apple Silicon; aktualizacja z lipca 2026 poprawiła SWE-bench Multilingual o 5,4% |
| Qwen 3.6 35B-A3B | 35B MoE | ~38–40 GB | Jakość premium, szybka inferencja |
| DeepSeek V4 Flash | 284B MoE (13B aktywnych) | ~35–40 GB (Q4, eksperymentalnie) | Prowadzi w SWE-Bench Verified wśród otwartych modeli; stabilne lokalne wsparcie wciąż dojrzewa |
| Llama 4 Scout | 109B MoE (17B aktywnych) | ~58–60 GB | Kontekst 10M tokenów — workflow z całą bazą kodu w kontekście |
| gpt-oss 120B | 120B | ~62 GB | "Cleanest tool-call JSON of any open model" — produkcyjny wybór do autonomicznych pętli |
| Devstral-2 22B | 22B | ~13 GB | Jedyny obywatel 16 GB — marginalny, ale to darmowy eksperyment dostępny już dziś |
Maszyny 48 GB uruchamiają pierwsze trzy komfortowo; Studio 64 GB dodaje Scouta i gpt-oss. A teraz arytmetyka, która przestawia optykę zakupu: mój plan Lovable kosztuje $480 miesięcznie. Mac mini M4 Pro za ~$2,000 zwraca się w nieco ponad cztery miesiące opłat za Lovable — i w przeciwieństwie do subskrypcji w piątym miesiącu wciąż tu jest, uruchamiając model, którego licencji nie da się nigdy cofnąć, bez licznika, bez dziennego resetu i bez dostawcy mającego gorszy dzień. Capex raz kontra opex na zawsze. Jeśli budujesz dużo, ten pas zaskakująco szybko przestaje być tym ekstrawaganckim.
Pas 2: Cline Pass (środkowy pas za $9.99)
Jeśli nowa maszyna jest poza zasięgiem, producent uprzęży agentowej, której używam, sprzedaje coś pomiędzy: Cline Pass — $4.99 za pierwszy miesiąc, potem $9.99/miesiąc, w pakiecie 11 wyselekcjonowanych modeli open-weight od sześciu dostawców (GLM 5.2, Kimi K3, DeepSeek V4, MiniMax M3, MiMo, Qwen3.7-Max i rodzeństwo) z limitami 2–5× standardowych darmowych limitów, zero żonglowania kluczami API i możliwość używania także z innych agentów kodujących.
Mierząc to moim straconym dniem: zapas 2–5× prawie na pewno by go wchłonął — cztery dania plus porażki mieszczą się w podwojonym budżecie. Za cenę hamburgera miesięcznie ruletka dziennych limitów w większości znika. Ale bądźmy precyzyjni, czym to jest: większym bakiem, nie otwartą rurą. Limity są większe, nie nieskończone; naprawdę ciężki tydzień wciąż może znaleźć ścianę. Modele to zdolna półka open-weight, nie frontier. A twój mózg nadal mieszka na czyjejś maszynie, ze wszystkim, co to oznacza dla prywatności i dostępności. To właściwy pas dla kogoś bez subskrypcji AI, bez 36 GB RAM-u i z regularnym, ale umiarkowanym nawykiem budowania.
Pas 3: przynieś abonament, który już masz (np. Claude Max)
Oto cicha supermoc całej tej architektury: uprząż jest agnostyczna względem dostawcy. Cline'a — i King Island ponad nim — nie obchodzi, z czyim mózgiem rozmawia. Co oznacza, że jeśli już płacisz za subskrypcję frontierowej AI z innych powodów — Claude Max to mój przypadek, ale wzorzec się uogólnia — możesz podpiąć ją jako silnik i całkowicie wyjść poza ekonomię darmowych poziomów: ryczałt, który i tak już płacisz, kod jakości frontier i żaden z trzech gatunków limitów, bo nie jesteś już lokatorem darmowej puli.
Ten pas ma charakterystyczny kształt ekonomiczny: koszt krańcowy zero. Subskrypcja i tak istnieje; przepuszczenie przez nią twojego vibe codingu nie kosztuje nic ekstra. Jakościowo zamienia największą porażkę darmowego setupu w tabeli wyników (poprawność za pierwszym podejściem) w remis z Lovable — ta sama klasa modelu, twoja infrastruktura. Haczyk jest uczciwy i oczywisty: ten pas istnieje tylko wtedy, gdy subskrypcję już posiadasz, a $100+/miesiąc to zła cena, żeby płacić ją tylko za to. To właz awaryjny, nie rampa wjazdowa.
Macierz pasów
Wszystkie opcje na jednej mapie — pełne menu „gdzie działa mózg i kto płaci", z krokami oddalonymi od siebie o mniej więcej rząd wielkości:
| Pas | Koszt miesięczny | Co dostajesz | Co cię ogranicza |
|---|---|---|---|
| 1. Darmowe hostowane pule | $0 | Zdolne modele open-weight, prawdziwe agentowe buildy | Wszystkie trzy gatunki limitów; degradacja; modele mogą zniknąć |
| 2. Pass dostawcy agenta (Cline Pass) | $9.99 ($4.99 pierwszy miesiąc) | 11 modeli open-weight, limity 2–5×, zero żonglerki kluczami | Nadal liczone, nadal zdalne, bez modeli frontier |
| 3. Klucz API pay-per-use | ~centy za build | Dowolny model, w tym frontier; płacisz tylko za użycie | Koszty rosną z entuzjazmem; klucze do zarządzania |
| 4. Subskrypcja laboratorium AI (np. Claude Max) | $100+ (często już posiadana) | Frontierowy mózg, ryczałt, brak darmowych limitów | Racjonalna tylko, jeśli i tak ją masz |
| 5. Lokalny sprzęt | $0/mies. po ~$2,000+ capex | Agent klasy Laguna XS, nigdy żadnego licznika, pełna prywatność | Próg ~36 GB; sufit open-weight; ty jesteś działem IT |
| — Punkt odniesienia: Lovable | $25–480 | Produkt zarządzany: model frontier + zero ops + publikacja jednym kliknięciem | Licznik; czarna skrzynka; platforma |
Mój własny routing po tamtym dniu: darmowa pula do rutynowej roboty (ona jest znakomita, kiedy jest otwarta), dzielenie na dania jako standardowa praktyka przy wszystkim dużym, już posiadana subskrypcja jako zawór bezpieczeństwa — i maszyna 48 GB na liście zakupów, z czterema miesiącami opłat za Lovable jako uzasadnieniem budżetowym.
Kto naprawdę powinien używać darmowej alternatywy dla Lovable — i kiedy
Po miesiącu jej używania mogę odpowiedzieć na pytanie „dla kogo to jest" z większą precyzją niż entuzjazmem:
Studenci i świat akademicki. Najmocniejszy przypadek. Budżet wynosi zero, czas jest dostępny, a plon edukacyjny jest ogromny — ten setup to działające laboratorium tego, jak naprawdę funkcjonuje kodowanie z AI. Projekt semestralny zbudowany w ten sposób uczy więcej o LLM-ach, bazach danych i toolchainach niż ten sam projekt na wypolerowanej platformie — właśnie dlatego, że widać szwy.
Każdy, kto samodzielnie studiuje, jak LLM-y naprawdę programują. Platformy takie jak Lovable są zbudowane, by ukrywać maszynerię; ten setup jest maszynerią. Oglądasz pętlę agenta na surowo: prompt → model decyduje o wywołaniu narzędzia → uprząż wykonuje je na twoim dysku → wynik karmi następną myśl. Znasz części, bo sam je złożyłeś: orkiestrator (strona główna stawiająca projekty — UI Lovable, mój King Island), uprząż (agent będący właścicielem edycji plików i terminala — Cline), mózg (LLM, wymienny), scaffold (Vite + React + Supabase — identyczny w obu światach) i podgląd (hot reload). Każdy tryb awarii z tego posta — opowiadanie wywołań narzędzi, zapaść prozatorska, śmierć budżetowa — to lekcja zachowania LLM-ów, którą zarządzana platforma wchłonęłaby niewidzialnie. Jeśli twoim celem jest zrozumienie, tarcie jest programem nauczania.
Budujący w fazie makiet i przedprodukcyjnej. Eksplorowanie pięciu pomysłów, żeby znaleźć ten wart budowy; walidacja modelu danych; wyprodukowanie wstępnej wersji, na którą zareaguje interesariusz. Eksploracja to wiele promptów i wiele ślepych uliczek — dokładnie tam licznik boli najbardziej, a wolniejsze darmowe buildy kosztują najmniej, bo między promptami i tak myślisz.
Małe zadania i małe projekty, ogólnie. Wynik sondy z mojego straconego dnia to wytyczna projektowa: ściśle wyznaczone zadania z jawnymi listami plików udają się niezawodnie nawet na darmowych modelach. Formularz kontaktowy, widok CRUD, refactoring — darmowy pas ogarnia je z zapasem. To przy otwartym buildzie na 40 kroków darmowe poziomy się załamują.
A kiedy większe narzędzia powinny przejąć stery? W momentach graduacji: deadline z klientem w tle; współpracownicy, którzy muszą dotykać projektu; publikacja jednym kliknięciem jako wymóg, nie jako „kiedyś"; szlif, przy którym poprawność za pierwszym razem jest warta zapłaty. Wtedy Lovable, Cursor czy Windsurf zarabiają na swoje subskrypcje — a ponieważ darmowy setup buduje na identycznym stacku (React, TypeScript, Tailwind, Supabase, git), graduacja projektu to przekazanie pałeczki, nie przepisywanie od zera. Mój workflow w jednym zdaniu: pomysły rodzą się darmowe, a te, które zasługują na faktury, je dostają.
Werdykt
Darmowa alternatywa dla Lovable jest realna — post nr 1 dowodzi, że da się ją zbudować, post porównawczy ocenia ją przyzwoicie na tle produktu za $480/miesiąc, a ona sama zbudowała trzy czwarte prawdziwej aplikacji tego samego dnia, w którym nauczyła mnie swoich granic. Ale „darmowe" okazuje się pasem, nie miejscem docelowym: naprawdę znakomitym pasem z sufitem resetowanym co dobę, połączonym wyraźnymi wjazdami z czterema innymi. Tamten zamrożony wieczór tak naprawdę nauczył mnie, że pytanie nigdy nie brzmiało „czy vibe coding może być darmowy?" Brzmi ono: „z którym licznikiem jesteś gotów żyć?" — z dziennym limitem, z przydziałem za $9.99, z kroplówką per token, z subskrypcją, którą i tak płacisz, albo z jednorazową ceną maszyny, której licznik nie istnieje. Ja swój wybór podjąłem. Kiedy to piszę, odliczanie na moim ekranie mówi, że darmowa pula otworzy się znów kwadrans po jedenastej w nocy — a danie czwarte, ostatnie, siedzi w kolejce, w pełni wyspecyfikowane, czekając, aż jakiś księgowy gdzieś otworzy bramę.
Ten post jest częścią serii „Vibe coding na własnych zasadach". Post nr 1 wyjaśnia, jak zbudować darmowy setup; „Lovable vs. alternatywa za 0 $" to uczciwa tabela wyników; następny w kolejce: benchmark darmowych LLM-ów z zebranymi danymi o wydajności stojącymi za wojennymi opowieściami z tego posta.