Masz pomysły. Masz je od miesięcy. Siedzą w aplikacji do notatek, powoli fermentując w poczucie winy. W każdy poniedziałek myślisz "następny weekend", a w każdy niedzielny wieczór okazuje się, że zamiast shipowania czegokolwiek, uporządkowałeś biurko.

Problem nie leży w talencie ani narzędziach. To kwestia procesu. Większość weekendowych projektów umiera, bo builderzy spędzają sobotę na podejmowaniu decyzji, które powinni byli podjąć w piątek, a niedzielę na polerowaniu rzeczy, o które nikt nie prosił. 🔍

Pół roku temu ten poradnik nie miałby sensu. Claude Code nie potrafił wiarygodnie wygenerować full-stackowej appki z jednego pliku spec. Darmowy tier Supabase nie obejmował edge functions. Vercel miał cięższe limity na hobby planie. Ale pod koniec marca 2026 każde narzędzie z tego playbooka działa na darmowym tierze wystarczająco hojnym, by wyshipować prawdziwy produkt — nie zabawkowe demo. Koszt weekendowego MVP spadł z "kilkuset dolarów na hosting i API" do "dosłownie zero złotych, jeśli uważasz." To jest to okno. 💰

Oto playbook, który odtworzyłem inżynierią wsteczną, obserwując setki weekendowych launchy przez ostatni rok — te, które faktycznie dały żywy URL z prawdziwymi użytkownikami do niedzielnego wieczora. Nie prototyp. Nie mockup w Figmie. Zdeployowany produkt. Sekretna broń: Claude Code — terminalowy asystent AI od Anthropic, który czyta twój projekt, pisze kod i uruchamia komendy bezpośrednio w twoim codebase.

Piątkowy wieczór: Godzina decyzji (nie kodu)

Weekend zaczyna się w piątek o 21:00. Nie od kodu — od decyzji. Każda minuta deliberowania w sobotę to minuta, w której nie budujesz.

Wybierz kształt projektu

To jedyne kształty, które realistycznie da się wyshipować w weekend:

Kształt Przykład Złożoność
Narzędzie Merger PDF-ów, kompresor obrazków, formatter tekstu Niska
Dashboard Przeglądarka analityk, status page, wyświetlacz metryk Średnia
Marketplace lite Katalog, strona z listingami, kuratorska kolekcja Średnia
Mikro SaaS Produkt z jedną funkcją, auth i stroną billingową Średnia-Wysoka
API wrapper Weź brzydkie API — sposób komunikacji między programami — i zrób je ładnym Niska-Średnia

Napisz specyfikację na jedną stronę

Otwórz plik. Napisz dokładnie to. Nic więcej:

# Weekendowe MVP: [Nazwa]

## Jedno zdanie
[Co robi, dla kogo]

## Główny flow
1. Użytkownik wchodzi na stronę
2. Użytkownik robi [główną akcję]
3. Użytkownik dostaje [wynik]

## Must have (sobota)
- [ ] Landing page
- [ ] Główna funkcja
- [ ] Deploy na produkcyjny URL

## Fajnie by było (niedziela)
- [ ] Auth
- [ ] Powiadomienia email
- [ ] Podstawowa analityka

## NIE budujemy
- [ ] Panel admina
- [ ] Płatności
- [ ] Aplikacja mobilna
- [ ] Profile użytkowników

Ta sekcja "NIE budujemy"? Najważniejsza część całego dokumentu. To twoja tarcza przeciw scope creepowi — naturalnej tendencji do dodawania "jeszcze jednej rzeczy", aż minie niedziela i nie masz nic skończonego.

Postaw repo

Repo (repozytorium) to po prostu folder projektu śledzony przez Git — system kontroli wersji, który zapisuje każdą zmianę, jak nieskończony Ctrl+Z dla twojego kodu.

mkdir my-mvp && cd my-mvp
git init

# Wybierz JEDEN stack. Nie deliberuj.
# Opcja A: Next.js + Supabase (full-stack, najwięcej elastyczności)
npx create-next-app@latest . --typescript --tailwind --app

# Opcja B: Statyk + API (prostsze, szybsze)
# Po prostu stwórz index.html i folder /api

touch SPEC.md  # Wklej tu swoją specyfikację
git add -A && git commit -m "init: weekend mvp"

Next.js to framework oparty na React — myśl o nim jako o starter kicie do budowania web appek, który ogarnia routing, renderowanie po stronie serwera i deployment od ręki. Supabase daje ci bazę danych, logowanie użytkowników i przechowywanie plików bez żadnego setupu serwera.

Sobota rano: Buduj rdzeń (4-5 godzin)

Wstajesz. Kawa. Terminal otwarty. Bez social mediów, bez maila, bez "tylko zerknę na chwilę."

Godziny 1-2: Scaffold z Claude Code

Tu Claude Code zarabia na swoje utrzymanie. Otwórz go w katalogu projektu:

claude

Daj mu pełny kontekst:

Przeczytaj SPEC.md. To weekendowe MVP — budujemy
absolutne minimum produktu.

Wygeneruj scaffold projektu:
1. Ustaw strukturę stron na podstawie głównego flow
2. Stwórz główny komponent funkcjonalności
3. Ustaw podstawowy styling z Tailwind
4. Stwórz layout z nawigacją i footerem
5. Bez auth, bez bazy — tylko UI i core logic

Claude Code generuje 5-15 plików. Nie przeglądaj każdej linijki. Sprawdzasz trzy rzeczy: czy się uruchamia (npm run dev), czy główny flow jest na miejscu, czy struktura kodu jest sensowna?

Godziny 2-4: Implementacja głównej funkcji

To jedyny kod, który się liczy. Cała reszta to scaffolding — konstrukcja nośna, która nie jest samym produktem.

Powiedzmy, że budujesz kalkulator kosztów spotkań. Mówisz Claude Code:

Główna funkcja to kalkulator, który przyjmuje:
- Liczbę uczestników
- Średnią stawkę godzinową
- Czas trwania spotkania

I pokazuje licznik kosztów w czasie rzeczywistym,
łączny koszt i rozbicie kosztu na minutę.
Jeden komponent React. Bez backendu.
Użyj useState dla timera, useEffect dla animacji licznika.

Claude Code to pisze. Testujesz w przeglądarce. Iterujesz:

Animacja licznika się szarpie. Użyj requestAnimationFrame
zamiast setInterval. Zrób cyfrę kosztu ogromną — 72px,
font monospace.

Kluczowa dyscyplina: iterujesz TYLKO nad główną funkcją. Jeśli nawigacja wygląda źle, zapisz to. Kosmetykę poprawisz w niedzielę.

Godziny 4-5: Deploy 🚀

Deployuj przed obiadem. Posiadanie żywego URL-a — prawdziwego adresu, który każdy może odwiedzić — zmienia twoją psychologię z "bawię się kodem" na "buduję produkt."

# Vercel (najszybszy dla Next.js)
npx vercel

# Albo Cloudflare Pages (najszybszy dla stron statycznych)
npx wrangler pages deploy ./out

Vercel auto-deployuje za każdym razem, gdy pushasz kod. Darmowy tier wystarczy na każde MVP. Wyślij URL jednej osobie. Jej 30-sekundowa reakcja powie ci więcej niż tydzień samotnego developmentu.

Obiad: Odejdź od komputera

Serio. Zjedz coś nie przy biurku. Popołudniowa sesja podwaja produktywność, gdy twój mózg odpocznie.

Sobota po południu: Tkanka łączna (3-4 godziny)

Główna funkcja działa. Teraz spraw, żeby to wyglądało jak produkt.

Godziny 6-7: Baza danych (jeśli potrzebna)

Nie każde MVP potrzebuje bazy danych — ustrukturyzowanego miejsca do przechowywania i pobierania danych. Kalkulator nie. Katalog tak.

Jeśli twoje potrzebuje, powiedz Claude Code:

Ustaw Supabase:
1. Zaprojektuj minimalny schemat — tylko tabele dla głównego flow
2. Ustaw klienta w lib/supabase.ts
3. Dodaj podstawowy CRUD dla głównego typu danych
4. Bez RLS, bez złożonych zapytań — niech po prostu działa

CRUD to Create, Read, Update, Delete — cztery podstawowe operacje na danych. RLS (Row Level Security) kontroluje, kto widzi które wiersze. Na razie to pomiń.

Darmowy tier Supabase daje ci 500 MB PostgreSQL — potężnej open-source'owej bazy danych. Na MVP zużyjesz jakieś 1 MB. To zapas na 500 MVP-ek. 💰

// lib/supabase.ts — to wszystko, czego potrzebujesz
import { createClient } from '@supabase/supabase-js'

export const supabase = createClient(
  process.env.NEXT_PUBLIC_SUPABASE_URL!,
  process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)

Godziny 7-8: Auth (jeśli potrzebny)

Auth (uwierzytelnianie) — czyli logowanie użytkowników, żeby wiedzieć, kto jest kto. Kalkulator spotkań tego nie potrzebuje. Personalny dashboard tak.

Dodaj Supabase Auth:
1. Rejestracja/logowanie email + hasło
2. Prosty komponent formularza auth
3. Chroniona ścieżka do dashboardu
4. Zarządzanie sesją przez middleware
5. Bez social login, bez MFA — tylko email i hasło

MFA (uwierzytelnianie wieloskładnikowe) to ten drugi kod z telefonu. Supabase Auth obsługuje 50 000 aktywnych użytkowników miesięcznie za darmo. Tego limitu nie trafisz podczas weekendowego MVP.

Godziny 8-9: Landing page

Twój landing page potrzebuje dokładnie czterech rzeczy:

  1. Nagłówek — co robi (5-8 słów)
  2. Podtytuł — dla kogo (1 zdanie)
  3. Przycisk CTA — "Wypróbuj za darmo" / "Zacznij teraz"
  4. Jeden screenshot — pokaż produkt w akcji
Stwórz landing page:
- Hero section z nagłówkiem, podtytułem i CTA
- Jedna sekcja pokazująca główną funkcję
- Prosty footer z danymi kontaktowymi
- Bez testimoniali, bez cennika, responsywny na mobile

Żadnej tabeli porównania funkcji. Żadnych logotypów "zaufali nam". Żadnych animowanych gradientów. Wyshipuj prawdziwy produkt, a nie stronę marketingową o prawdziwym produkcie.

Niedziela: Polerowanie i launch (6-8 godzin)

Rano: Napraw wszystko, co zignorowałeś ⚡

Otwórz notatki z soboty. Wrzuć je do Claude Code hurtem:

Napraw w kolejności:
1. Nawigacja nie podświetla aktywnej strony
2. Menu mobilne nie zamyka się po kliknięciu linku
3. Stan ładowania pokazuje pusty ekran — dodaj skeleton
4. Brak walidacji formularza na polu email
5. Linki w footerze prowadzą donikąd — dodaj strony albo usuń linki

Każdy fix jest mały. Razem zamieniają "demo" w "produkt."

Popołudnie: Checklista launchowa

### Działa
- [ ] Główna funkcja działa na desktopowym Chrome
- [ ] Główna funkcja działa na mobilnym Safari
- [ ] Wszystkie linki gdzieś prowadzą
- [ ] Formularze walidują input
- [ ] Błędy pokazują przyjazne komunikaty

### Wygląda dobrze
- [ ] Favicon istnieje
- [ ] Tytuł strony i meta description ustawione
- [ ] OG image do udostępniania w social media
- [ ] Brak tekstu zastępczego ("Lorem ipsum")
- [ ] Spójne odstępy i typografia

### Gotowe na produkcję
- [ ] Zmienne środowiskowe ustawione na produkcji
- [ ] HTTPS działa
- [ ] Czas ładowania poniżej 3 sekund
- [ ] Brak błędów w konsoli
- [ ] Strona 404 istnieje

Powiedz Claude Code: "Przejdź przez tę checklistę w kontekście naszego codebase'u. Powiedz mi, co przechodzi, co nie, napraw to, co nie przechodzi." Ogarna to w minuty.

Wieczór: Shipuj

Wrzuć na X/Twittera, odpowiednie serwery Discord, jeden wątek na Reddicie, Hacker News "Show HN" jeśli pasuje. Format posta, który działa:

Zbudowałem [nazwa produktu] w weekend — [robi rzecz] dla [odbiorców]. [URL] Stack: Next.js + Supabase + Claude Code. Czekam na feedback.

Nie pisz eseju na 2000 słów o weekendowym projekcie. Produkt mówi sam za siebie albo nie.

Pożeracze czasu, które zabijają weekendowe MVP 🗑️

Pożeracz czasu Dlaczego kusi Dlaczego to pułapka
Własny design system "Powinno wyglądać profesjonalnie" Domyślny Tailwind wygląda ok
Auth od zera "Nie ufam third-party" Supabase Auth to 10 minut
Optymalizacja bazy "A co jak się przeskalujemy?" Masz 0 userów. Optymalizuj przy 1000
Pipeline CI/CD "Best practices" Pushuj na main. Vercel auto-deployuje
Suite testów "Powinienem mieć testy" Przetestuj ręcznie weekendowe MVP
Integracja płatności "Muszę monetyzować" Najpierw zdobądź userów. Stripe w tygodniu 2
Panel admina "Muszę zarządzać danymi" Użyj dashboardu Supabase

CI/CD (Continuous Integration/Continuous Deployment) to automatyczne testowanie i deployowanie za każdym razem, gdy pushasz kod. Wartościowe we właściwym momencie. Ten weekend to nie ten moment.

Realistyczny timeline

Piątek 21:00:     Specyfikacja, setup repo               (1h)
Sobota 9:00:      Scaffold + główna funkcja               (4h)
Sobota 13:00:     Przerwa obiadowa                        (1h)
Sobota 14:00:     Baza + auth + landing page              (4h)
Sobota 20:00:     Koniec na dziś
Niedziela 10:00:  Polerowanie + bug fixy                  (3h)
Niedziela 14:00:  Checklista + deploy                     (2h)
Niedziela 17:00:  Post online + zbieranie feedbacku       (1h)
Niedziela 18:00:  Weekendowe MVP wyshipowane

Łączny czas skupionego kodowania:                        ~14h

14 godzin skupionej pracy. Nie 48 godzin bezsennego szaleństwa. Śpisz obie noce. Ćwiczysz w niedzielny poranek. Wypoczęty kod bije zmęczony kod za każdym razem.

🦝 Zdanie Schnappsa

Weekendowe MVP to stress test twojego pomysłu, nie twojej wytrzymałości. Jeśli nie potrafisz wyjaśnić, co robi produkt, w jednym zdaniu — nie zbudujesz go w weekend. Jeśli nie potrafisz zbudować głównej funkcji w 4 godziny z pomocą Claude Code — ta funkcja jest zbyt skomplikowana na MVP.

Projekty, które shipują, mają jedną wspólną cechę: builder ciął scope bezlitośnie. Jedna sekcja na landing page. Jedna funkcja w appce. Dwie tabele w bazie. I wyshipował.

Projekty, które nie shipują, mają inną wspólną cechę: builder spędził sobotnie popołudnie na researchu, którą bibliotekę do animacji użyć przy przejściach między stronami. W MVP nie ma przejść między stronami. Jest strona i ona działa. Shipuj to. 🚀