SaaS · getlazyposting - produkt własny · 2026 · 2 tygodnie do startu na własnej domenie, potem rozwijany

getlazyposting - generator postów z publikacją na Instagramie

Jedno zdanie tematu, około minuty czekania i gotowa karuzela ze zdjęciami, opisem i hashtagami. Panel sam czyta stronę i logo firmy, a o ustawionej godzinie publikuje post bez Postiza i bez żadnego zewnętrznego planera.

  • Python
  • Flask
  • Gemini
  • Nano Banana
  • Gemini TTS
  • Meta Graph API
  • Remotion
  • React
  • ffmpeg
  • Pillow
  • Docker
  • Caddy
Zobacz stronę live ↗
getlazyposting - generator postów z publikacją na Instagramie

Wyzwanie

Mała firma, która chce regularnie wrzucać karuzele na Instagram, potrzebuje do tego grafika, copywritera i kogoś, kto pamięta o godzinie publikacji. Gotowe generatory AI dają posty, po których od razu widać, że zrobiła je maszyna: obce kolory, przypadkowe zdjęcia, angielskie wtrącenia. Do tego publikację trzeba i tak ustawić w osobnym narzędziu. Chcieliśmy jednego panelu, który robi wszystko od tematu do opublikowanego posta i wygląda jak marka klienta, a nie jak szablon.

Nasze rozwiązanie

Aplikacja w Pythonie (Flask) z kolejką zadań w tle. Gemini planuje post i pisze teksty, Nano Banana generuje zdjęcia pod każdy slajd, a pierwszy slajd służy za wzór stylu dla pozostałych. Przy zakładaniu marki panel czyta jej stronę (tekst, kolory z CSS, logo, linki do social mediów) i szuka w Google, co internet wie o firmie. Wbudowany harmonogram publikuje karuzele przez oficjalne Graph API Mety. Rolki składa Remotion, opcjonalnie z lektorem AI i muzyką. Całość stoi w Dockerze na naszym VPS-ie za Caddym.

2 tygodnie

Od generatora do własnej domeny

ok. 1 min

Czas wygenerowania karuzeli

10

Motywów wyglądu postów

0 zł

Plan startowy

Co zbudowaliśmy

  • 01 Karuzela z jednego tematu: plan slajdów, teksty, zdjęcia, opis i hashtagi
  • 02 5 propozycji hooka na pierwszy slajd: model wybiera najlepszą, resztę można podmienić w edytorze
  • 03 Profil marki budowany automatycznie ze strony firmy, logo, social mediów i wyników Google
  • 04 10 motywów wyglądu postów, zmiana motywu w edytorze bez kosztów API
  • 05 Poprawka jednego slajdu: tekst, przepisanie przez AI, korekta albo nowe zdjęcie, z cofaniem zmian
  • 06 Kalendarz z przeciąganiem postów i automatyczne rozplanowanie, np. co 2 dni o 18:00
  • 07 Publikacja na Instagramie i Facebooku przez Graph API Mety, bez zewnętrznego planera
  • 08 Link do podglądu posta wyglądającego jak post na Instagramie, do akceptacji przez klienta
  • 09 Rolki 9:16: z gotowej karuzeli, animowane w Remotion albo montaż własnych nagrań wybranych przez AI
  • 10 Lektor AI (Gemini TTS) dobierany do stylu montażu i biblioteka muzyki
  • 11 Auto blog: artykuł SEO z tematu albo z gotowego posta
  • 12 Wycena przy każdym przycisku AI liczona z prawdziwych kosztów poprzednich operacji
  • 13 Panel admina: koszty API z twardym limitem, użytkownicy z limitami, dziennik aktywności, kopia zapasowa
  • 14 Strona produktu z cennikiem 0 / 59 / 179 zł, przykładami z panelu i FAQ, przebudowywana z panelu
Spis treści +

Punkt wyjścia

Na początku był skrypt. generate_slideshow.py brał temat z linii poleceń, prosił Gemini o tekst slajdów i składał z nich karuzelę. Robił to, co miał robić, ale korzystać z niego mógł tylko ktoś, kto otwiera terminal. Nie było też nic, co by taki post opublikowało.

getlazyposting to ten sam silnik zamknięty w produkcie: panel w przeglądarce, kalendarz, edytor, publikacja i strona, na której można się zapisać. Cel ustawiliśmy prosto. Właściciel kawiarni wpisuje „3 błędy przy parzeniu kawy”, po minucie ma gotową karuzelę w kolorach swojej marki, przesuwa ją na czwartek i więcej o niej nie myśli.

Decyzje, które ukształtowały projekt

Styl marki zbierany automatycznie

Najsłabszym miejscem generatorów AI jest to, że każdy post wygląda tak samo. Dlatego przy zakładaniu marki panel sam czyta jej stronę: tekst strony głównej i podstron typu „o nas” czy „oferta”, kolory wyciągnięte z arkuszy CSS, logo, zdjęcia, linki do profili i dane z JSON-LD. Potem pyta Gemini z wyszukiwarką Google, co internet wie o firmie: opinie, ceny, lokalizację, styl komunikacji. Z tego powstaje brief marki, który trafia do każdego kolejnego posta. Właściciel niczego nie musi wypełniać, a może poprawić każde pole.

Pierwszy slajd jako wzór dla reszty

Zdjęcia generuje Nano Banana z promptów opisujących obiekt, akcję, tło, kompozycję, aparat i światło. Zdjęcie pierwszego slajdu idzie jako wzór do kolejnych, więc karuzela trzyma jedno światło i jedną paletę, zamiast wyglądać jak sześć obrazków z sześciu różnych banków zdjęć. Model proponuje pięć hooków na pierwszy slajd i sam wybiera najmocniejszy. Pozostałe cztery czekają w edytorze, gdyby właściciel wolał inny.

Poprawka jednego slajdu, nie całego posta

Najczęstsza prośba po wygenerowaniu posta to „ten jeden slajd jest zły”. Edytor zmienia tylko ten slajd: tekst, przepisanie przez AI, korektę zdjęcia w rodzaju „usuń dłoń z kadru” albo całkiem nowe zdjęcie. Każda zmiana zapisuje wersję, więc „Cofnij” zawsze wraca do poprzedniej. Motyw wyglądu zmienia się od ręki, bez ponownego wołania API, bo tekst nakładany jest na zdjęcie lokalnie w Pillow.

Własna publikacja zamiast zewnętrznego planera

Mogliśmy podpiąć Postiza albo inny planer. Wybraliśmy oficjalne Graph API Mety i własny harmonogram w aplikacji. Klient wkleja token, panel sam znajduje jego konta na Instagramie i Facebooku, a włączony post wychodzi o swojej godzinie. Jeśli serwer stał w chwili publikacji, zaległe posty idą zaraz po jego starcie. Jedno narzędzie mniej to jedno konto mniej do opłacenia i jedno miejsce mniej, w którym coś może się rozjechać.

Koszt widać przed kliknięciem

Każdy przycisk, który woła AI, pokazuje szacowany koszt operacji. Na starcie wycena pochodzi z cennika modeli, a po dwóch generacjach to mediana prawdziwych kosztów z ostatnich operacji. W panelu admina ustawia się miesięczny limit wydatków, a twardy limit blokuje generowanie, zanim rachunek za API przerośnie przychód. Przy produkcie z planem za 0 zł to warunek przeżycia, a nie dodatek.

Rolki w kodzie

Animowane rolki składa Remotion, czyli React renderowany do wideo. Dzięki temu styl rolek (szklane karty, pisany tekst, liczniki, checklisty) jest komponentem, który da się poprawić jak każdy inny kod, a podgląd w panelu korzysta z tego samego źródła co końcowy render. Lektor to Gemini TTS z głosem dobieranym do stylu montażu. Przy montażu własnych nagrań AI ogląda klipy, wybiera najlepsze momenty i robi napisy z tego, co mówisz.

Co z tego wyszło

Na start getlazyposting działał na własnej domenie: ze stroną, cennikiem, panelem, publikacją i rolkami. Do dziś repozytorium ma 68 commitów i 19 zmian wprowadzonych przez pull requesty.

Karuzela powstaje w około minutę. Plan Start pozwala sprawdzić produkt za 0 zł (jedna marka, 8 karuzel miesięcznie), Pro kosztuje 59 zł, a Agencja 179 zł miesięcznie bez limitu marek.

Strona produktu odchodzi od tego, jak zwykle wyglądają strony narzędzi AI. Zamiast makiet telefonów są obrazy olejne i przejścia rastrem, a szeryfowa typografia kojarzy się z filmem, nie z dashboardem. Przykłady na stronie pochodzą z prawdziwych postów wygenerowanych w panelu.

Technicznie

Backend to jedna aplikacja Flask z kolejką zadań w tle, więc generowanie nie blokuje panelu i można w tym czasie robić co innego. Gemini obsługuje planowanie i teksty (z ograniczonym „myśleniem” tam, gdzie nie jest potrzebne, i tańszym modelem do drobnych zadań), Nano Banana zdjęcia, a Gemini TTS lektora. Rolki z karuzeli składa ffmpeg, animowane renderuje Remotion. Stronę produktu buduje własny generator w Pythonie z jednego pliku JSON, który edytuje się w panelu admina.

Aplikacja stoi w kontenerze Docker na tym samym VPS-ie co sklep whywepray. Ruch przyjmuje Caddy, a dane (posty, marki, tokeny Mety) leżą poza katalogiem kodu, więc aktualizacja to git pull i przebudowa kontenera. Logowanie blokuje konto na 10 minut po pięciu nieudanych próbach, a każda akcja trafia do dziennika aktywności.

Jeśli myślisz o aplikacji webowej, która łączy AI z twoimi procesami, to jest ten sam zestaw decyzji: koszty pod kontrolą, jedno narzędzie zamiast pięciu i wynik, który wygląda jak twoja firma.

Zrzuty ekranu

Hero: obraz olejny zamiast makiety telefonu, jedno zdanie o tym, co robi produkt, i plan za 0 zł.
Hero: obraz olejny zamiast makiety telefonu, jedno zdanie o tym, co robi produkt, i plan za 0 zł. (telefon)

Hero: obraz olejny zamiast makiety telefonu, jedno zdanie o tym, co robi produkt, i plan za 0 zł.