{"id":78752,"date":"2025-11-26T11:51:48","date_gmt":"2025-11-26T19:51:48","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=78752"},"modified":"2026-01-12T12:08:33","modified_gmt":"2026-01-12T20:08:33","slug":"nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/","title":{"rendered":"Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o)"},"content":{"rendered":"<div class=\"tldr-block\" style=\"display: none;\">\n\t<div class=\"svg\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 119.25 37.8\">\n\t<g>\n\t\t<g>\n\t\t\t<path fill=\"#ffffff\" d=\"M23.4,6.93h-8.1v24.57h-7.2V6.93H0V0h23.4v6.93Z\" \/>\n\t\t\t<path fill=\"#ffffff\" d=\"M45,24.57v6.93h-18.45V0h7.2v24.57h11.25Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M90.9,15.75c0,8.91-6.61,15.75-15.3,15.75h-12.6V0h12.6c8.68,0,15.3,6.84,15.3,15.75ZM83.97,15.75c0-5.4-3.42-8.82-8.37-8.82h-5.4v17.64h5.4c4.95,0,8.37-3.42,8.37-8.82Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M105.57,21.15h-3.42v10.35h-7.2V0h12.6c5.98,0,10.8,4.81,10.8,10.8,0,3.87-2.34,7.38-5.81,9.13l6.71,11.56h-7.74l-5.94-10.35ZM102.15,14.85h5.4c1.98,0,3.6-1.75,3.6-4.05s-1.62-4.05-3.6-4.05h-5.4v8.1Z\" \/>\n\t\t<\/g>\n\t\t<path\n\t\t\tfill=\"#0173ec\"\n\t\t\td=\"M53.97,37.8h-5.4l1.8-13.27h7.2l-3.6,13.27ZM49.02,12.55c0-2.34,1.93-4.27,4.27-4.27s4.27,1.94,4.27,4.27-1.93,4.27-4.27,4.27-4.27-1.94-4.27-4.27Z\"\n\t\t \/>\n\t<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"tldr-wrap\">\n\t\t\n\n<ul class=\"wp-block-list\">\n<li>Kodowanie za pomoc\u0105 Vibe pozwala ka\u017cdemu tworzy\u0107 funkcjonalne aplikacje poprzez rozmow\u0119 z SI, ale <a href=\"https:\/\/cset.georgetown.edu\/publication\/cybersecurity-risks-of-ai-generated-code\/\">48%<\/a> kodu generowanego przez SI zawiera b\u0142\u0119dy bezpiecze\u0144stwa.<\/li>\n\n\n\n<li>Uczenie mojej babci, jak zbudowa\u0107 aplikacj\u0119 do \u015bledzenia ogrodu, pokaza\u0142o dok\u0142adnie, gdzie kodowanie Vibe odnosi sukcesy i gdzie katastrofalnie zawodzi.<\/li>\n\n\n\n<li>Wyciek z aplikacji TEA z 2025 roku pokaza\u0142, jak szybki rozw\u00f3j bez przegl\u0105du bezpiecze\u0144stwa tworzy aplikacje, kt\u00f3re dzia\u0142aj\u0105 pi\u0119knie, jednocze\u015bnie ukrywaj\u0105c podatno\u015bci.<\/li>\n\n\n\n<li>Mo\u017cesz szybko tworzy\u0107 prototypy. Przygotowanie ich do produkcji wymaga ekspertyzy.<\/li>\n\n\n<\/ul>\n\n\n\n\n\t<\/div>\n<\/div>\n\n<p>Moja babcia zarz\u0105dza\u0142a arkuszami inwentaryzacyjnymi dla firmy tekstylnej przez 40 lat. Oblicza skomplikowane rabaty w g\u0142owie szybciej ni\u017c wi\u0119kszo\u015b\u0107 ludzi z kalkulatorami, ale nie ma \u017cadnego do\u015bwiadczenia w programowaniu.&nbsp;<\/p>\n\n\n<p>Kiedy zaproponowa\u0142em wsp\u00f3lne budowanie aplikacji do \u015bledzenia ogrodu z wykorzystaniem SI, jej sceptycyzm by\u0142 niemal natychmiastowy.<\/p>\n\n\n<p>Po dw\u00f3ch godzinach mia\u0142a dzia\u0142aj\u0105c\u0105 aplikacj\u0119 internetow\u0105, dop\u00f3ki nie poprosili\u015bmy o jedn\u0105 rzecz wi\u0119cej, a aplikacja si\u0119 zepsu\u0142a. To bardzo cz\u0119sta historia o kodowaniu na wyczucie.&nbsp;<\/p>\n\n\n<p>Teraz mam struktur\u0119, kt\u00f3ra pozwala zrozumie\u0107, co faktycznie oferuje kodowanie vibe w por\u00f3wnaniu do tego, co obiecuje, wi\u0119c mo\u017cesz spojrze\u0107 poza marketingowy szum i faktycznie wykorzysta\u0107 produkt.&nbsp;<\/p>\n\n\n<h2 id=\"h-first-what-is-vibe-coding\" class=\"wp-block-heading\">Po pierwsze, czym jest Vibe Coding?<\/h2>\n\n\n<p>Vibe coding to <strong>tworzenie oprogramowania poprzez opisywanie, czego chcesz w prostym j\u0119zyku angielskim i pozwolenie SI na napisanie kodu za ciebie.&nbsp;<\/strong><\/p>\n\n\n<p>By\u0142y dyrektor AI firmy Tesla i wsp\u00f3\u0142za\u0142o\u017cyciel OpenAI, Andrej Karpathy, wymy\u015bli\u0142 ten termin w lutym 2025 roku, kiedy to <a href=\"https:\/\/x.com\/karpathy\/status\/1886192184808149383?lang=en\">napisa\u0142 na Twitterze<\/a>: &#8220;<em>Jest nowy rodzaj kodowania, kt\u00f3ry nazywam &#8216;kodowaniem na wibracje&#8217;, gdzie ca\u0142kowicie poddajesz si\u0119 wibracjom, przyjmujesz eksponenty i zapominasz, \u017ce kod w og\u00f3le istnieje<\/em>.&#8221;&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1291\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding.webp\" alt=\"Tweet od Andrej Karpathy opisuj\u0105cy podej\u015bcie do kodowania vibe, gdzie opiera si\u0119 g\u0142\u00f3wnie na asystentach kodowania AI i kopiowaniu-wklejaniu zamiast zrozumienia kodu.\" class=\"wp-image-77857 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-300x242.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1024x826.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-768x620.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1536x1239.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-600x484.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1200x968.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-730x589.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1460x1178.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-784x633.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1568x1265.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-877x708.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1291;\" \/><\/figure>\n\n\n<p>Post zyska\u0142 ponad 5 milion\u00f3w wy\u015bwietle\u0144, uchwyci\u0142 podej\u015bcie do rozwoju, kt\u00f3re ju\u017c rozprzestrzenia\u0142o si\u0119 w spo\u0142eczno\u015bci technologicznej.&nbsp;<\/p>\n\n\n<p>Zamiast uczy\u0107 si\u0119 j\u0119zyk\u00f3w programowania i mierzy\u0107 si\u0119 ze sk\u0142adni\u0105, po prostu m\u00f3wisz SI, co chcesz zbudowa\u0107. SI generuje kod. Stajesz si\u0119 mened\u017cerem produktu, a nie programist\u0105, skupiaj\u0105c si\u0119 na tym, co aplikacja powinna robi\u0107, zamiast na tym, jak to dzia\u0142a.<\/p>\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n<h3 class=\"wp-block-heading\" id=\"h-why-does-vibe-coding-matter-now\">Dlaczego Teraz Ma Znaczenie Kodowanie Vibe?<\/h3>\n\n\n<p><a href=\"https:\/\/www.mckinsey.com\/capabilities\/people-and-organizational-performance\/our-insights\/five-fifty-the-skillful-corporation\">87% firm<\/a> boryka si\u0119 z brakami kadrowymi lub spodziewa si\u0119 ich w ci\u0105gu najbli\u017cszych kilku lat, wed\u0142ug McKinsey.<a href=\"https:\/\/qubit-labs.com\/it-talent-gap-still-growing\/\">&nbsp;<\/a><\/p>\n\n\n<p>Narz\u0119dzia do kodowania SI takie jak Bolt.new, Lovable, Replit Agent i Cursor obiecuj\u0105 rozwi\u0105zanie tego problemu poprzez zwi\u0119kszenie produktywno\u015bci obecnych programist\u00f3w oraz umo\u017cliwienie osobom nieb\u0119d\u0105cym deweloperami szybkiego testowania swoich pomys\u0142\u00f3w.<\/p>\n\n\n<p>Liczby potwierdzaj\u0105 szum:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>W marcu 2025 roku Y Combinator ujawni\u0142, \u017ce <a href=\"https:\/\/techcrunch.com\/2025\/03\/06\/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated\/\">25% ich zimowej grupy 2025<\/a> mia\u0142o 95% kodu wygenerowanego przez SI.<\/li>\n\n\n\n<li>W kwietniu 2025 roku dyrektor generalny Microsoftu, Satya Nadella, ujawni\u0142, \u017ce <a href=\"https:\/\/www.cnbc.com\/2025\/04\/29\/satya-nadella-says-as-much-as-30percent-of-microsoft-code-is-written-by-ai.html\">20\u201330%<\/a> kodu zosta\u0142o napisane przez SI.<\/li>\n\n\n\n<li>Czwarta cz\u0119\u015b\u0107 startup\u00f3w <a href=\"https:\/\/techcrunch.com\/2025\/03\/06\/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated\/\">w obecnej grupie YC<\/a> ma kod prawie w ca\u0142o\u015bci wygenerowany przez SI.<\/li>\n\n\n\n<li>Dyrektor generalny Google, Sundar Pichai, poda\u0142 podobne dane, stwierdzaj\u0105c, \u017ce <a href=\"https:\/\/blog.google\/inside-google\/message-ceo\/alphabet-earnings-q3-2024\/#search:~:text=Today%2C%20more%20than%20a%20quarter%20of%20all%20new%20code%20at%20Google%20is%20generated%20by%20AI%2C%20then%20reviewed%20and%20accepted%20by%20engineers.%20This%20helps%20our%20engineers%20do%20more%20and%20move%20faster\">ponad 25% kodu Google<\/a> jest generowane przez SI.<\/li>\n\n\n<\/ul>\n\n\n<p>Przeszli\u015bmy od podstawowego autouzupe\u0142niania do pisania ca\u0142ych aplikacji przy minimalnym wk\u0142adzie ludzkim.&nbsp;<\/p>\n\n\n<p>Ale te same funkcje, kt\u00f3re czyni\u0105 programowanie vibe dost\u0119pnym, takie jak wprowadzanie w j\u0119zyku naturalnym, autonomiczne generowanie kodu i automatyczne zarz\u0105dzanie z\u0142o\u017cono\u015bci\u0105, stwarzaj\u0105 powa\u017cne problemy, gdy Twoja aplikacja musi wyj\u015b\u0107 poza pierwsz\u0105 wersj\u0119.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-can-you-actually-build-with-vibe-coding\">Co Mo\u017cesz Naprawd\u0119 Zbudowa\u0107 z Kodowaniem Vibe?<\/h3>\n\n\n<p>Kiedy mo\u017cesz faktycznie budowa\u0107 przy u\u017cyciu kodowania vibe zale\u017cy od trzech rzeczy:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Jak skomplikowana musi by\u0107 twoja aplikacja<\/li>\n\n\n\n<li>Czy potrafisz rozpozna\u0107 z\u0142y kod i luki w zabezpieczeniach<\/li>\n\n\n\n<li>Czy wiesz, kiedy przesta\u0107 dodawa\u0107 funkcjonalno\u015bci<\/li>\n\n\n<\/ul>\n\n\n<p>Je\u015bli wymagania twojej aplikacji s\u0105 proste, potrafisz zidentyfikowa\u0107 braki techniczne i oprze\u0107 si\u0119 dodawaniu niepotrzebnych funkcjonalno\u015bci, vibe coding mo\u017ce pom\u00f3c ci szybko osi\u0105gn\u0105\u0107 funkcjonalne rezultaty.<\/p>\n\n\n<p>Jednak w miar\u0119 wzrostu z\u0142o\u017cono\u015bci lub gdy musisz budowa\u0107 aplikacje produkcyjne, profesjonalna recenzja i planowanie architektury staj\u0105 si\u0119 niezb\u0119dne.<\/p>\n\n\n<p>Do\u015bwiadczenie mojej babci w budowaniu aplikacji do \u015bledzenia ogrodu pokaza\u0142o dok\u0142adnie, gdzie s\u0105 te granice.<\/p>\n\n\n<h2 id=\"h-what-happened-in-hour-one-simple-instructions-worked\" class=\"wp-block-heading\">Co Si\u0119 Wydarzy\u0142o W Pierwszej Godzinie? Proste Instrukcje Zadzia\u0142a\u0142y<\/h2>\n\n\n<p>Jest przynajmniej kilkana\u015bcie platform kodowania o klimacie SI, takich jak Bolt, Lovable, OpenAI Code, Claude Code, Google Opal, itp.&nbsp;<\/p>\n\n\n<p>Zacz\u0119li\u015bmy od <a href=\"https:\/\/developers.openai.com\/codex\/ide\/\">rozszerzenia OpenAI Codex w VS Code<\/a>, poniewa\u017c ju\u017c mia\u0142em subskrypcj\u0119, ale poleci\u0142bym zacz\u0105\u0107 od Bolt.new, Lovable lub Vercel dla bardziej wizualnego do\u015bwiadczenia podczas kodowania.&nbsp;<\/p>\n\n\n<p>Nasza pierwsza propozycja:<em> &#8220;Stw\u00f3rz aplikacj\u0119 do \u015bledzenia ogrodu, gdzie b\u0119d\u0119 m\u00f3g\u0142 zapisa\u0107, co zasadzi\u0142em, kiedy to zasadzi\u0142em i ile zebra\u0142em. Zawrzyj spos\u00f3b na sprawdzenie, kt\u00f3re ro\u015bliny sprawdzi\u0142y si\u0119 najlepiej w ka\u017cdym sezonie.&#8221;<\/em><\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1525\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex.webp\" alt=\"Kursor AI IDE pokazuj\u0105cy wieloetapowy plan tworzenia aplikacji do \u015bledzenia ogrodu z list\u0105 zada\u0144 i interfejsem czatu dla wsparcia AI.\" class=\"wp-image-77858 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-300x286.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1024x976.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-768x732.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1536x1464.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-600x572.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1200x1144.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-730x696.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1460x1392.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-784x747.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1568x1495.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-877x836.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1525;\" \/><\/figure>\n\n\n<p><strong>Ten monit zadzia\u0142a\u0142, poniewa\u017c zawiera\u0142 trzy kluczowe elementy:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Jasna struktura danych<\/strong> (nazwa ro\u015bliny, data sadzenia, ilo\u015b\u0107 zbior\u00f3w, sezon)<\/li>\n\n\n\n<li><strong>Zdefiniowany wynik<\/strong> (por\u00f3wnanie wydajno\u015bci wed\u0142ug sezonu)<\/li>\n\n\n\n<li><strong>Konkretny kontekst zastosowania<\/strong> (monitorowanie prywatnego ogrodu)<\/li>\n\n\n<\/ul>\n\n\n<p>W ci\u0105gu kilku minut, Codex wygenerowa\u0142 kompletn\u0105 aplikacj\u0119. Posiada\u0142a baz\u0119 danych SQLite z tabelami dla <em>ro\u015blin, sadzonek i zbior\u00f3w<\/em>, punkty ko\u0144cowe API REST dla operacji CRUD, frontend w Pythonie z tabelami danych i formularzami wprowadzania oraz podstawowe style CSS.<\/p>\n\n\n<p>Domy\u015blnie zawiera\u0142o nawet dane demo.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1301\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default.webp\" alt=\"Interfejs aplikacji Garden Tracker pokazuj\u0105cy cztery karty ro\u015blin z detalami dla Truskawki, Og\u00f3rka, Pomidora i Bazylii, w tym daty sadzenia i zapisy zbior\u00f3w.\" class=\"wp-image-77859 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-300x244.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1024x833.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-768x624.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1536x1249.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-600x488.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1200x976.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-730x594.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1460x1187.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-784x637.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1568x1275.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-877x713.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1301;\" \/><\/figure>\n\n\n<p>Webowa aplikacja <em>wygl\u0105da\u0142a<\/em> dobrze. To supermoc i jednocze\u015bnie najwi\u0119ksze niebezpiecze\u0144stwo kodowania na wyczucie. Ale zanim to om\u00f3wi\u0119, pozw\u00f3l, \u017ce wyja\u015bni\u0119, co tak naprawd\u0119 dzieje si\u0119 za kulisami my\u015blenia Codex. Bawi\u0142em si\u0119 aplikacj\u0105, zrozumia\u0142em, co mamy i czego jeszcze potrzebujemy.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-happened-behind-the-interface\">Co Dzia\u0142o Si\u0119 Za Interfejsem<\/h3>\n\n\n<p>Wygenerowany kod podj\u0105\u0142 decyzje architektoniczne dla aplikacji jednou\u017cytkownikowej. Schemat bazy danych m\u00f3g\u0142 \u0142atwo obs\u0142u\u017cy\u0107 nowe wpisy. API stosowa\u0142o konwencje RESTful. Komponenty frontendowe by\u0142y logicznie oddzielone.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"802\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface.webp\" alt=\"Edytor Visual Studio Code pokazuj\u0105cy kod TypeScript dla aplikacji do \u015bledzenia ogrodu z otwartym plikiem models.ts wy\u015bwietlaj\u0105cym interfejsy Plant i PlantLog.\" class=\"wp-image-77860 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-300x150.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1024x513.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-768x385.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1536x770.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-600x301.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1200x602.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-730x366.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1460x732.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-784x393.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1568x786.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-877x440.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/802;\" \/><\/figure>\n\n\n<p>Jednak zauwa\u017cy\u0142em, \u017ce domy\u015blnie nie uwzgl\u0119dniono kluczowych kwestii bezpiecze\u0144stwa. Brak by\u0142o walidacji danych wej\u015bciowych, warstwy autentykacji, limitowania cz\u0119stotliwo\u015bci zapyta\u0144, uwzgl\u0119dnienia podatno\u015bci na ataki SQL Injection oraz szyfrowania.<\/p>\n\n\n<p><strong>Architektura agenta SI zak\u0142ada\u0142a zaufanego pojedynczego u\u017cytkownika w kontrolowanym \u015brodowisku.<\/strong><\/p>\n\n\n<p>Bior\u0105c pod uwag\u0119, \u017ce by\u0142 to projekt dla mojej babci i dla nikogo wi\u0119cej, te pomini\u0119cia s\u0105 do zaakceptowania. Jednak dla ka\u017cdego, kto rozwa\u017ca kodowanie z wykorzystaniem vibe do stworzenia wielou\u017cytkownikowej aplikacji internetowej, s\u0105 to kluczowe zagro\u017cenia bezpiecze\u0144stwa, kt\u00f3rych po prostu nie mo\u017cna ignorowa\u0107.&nbsp;<\/p>\n\n\n<p>Cz\u0119sto widz\u0119 dyskusje na ten temat na Reddit lub PostStatus: deweloperzy skutecznie rozwijaj\u0105 kod generowany przez SI, poniewa\u017c identyfikuj\u0105 te luki i wdra\u017caj\u0105 odpowiednie warstwy zabezpiecze\u0144. U\u017cytkownicy nietechniczni widz\u0105 dzia\u0142aj\u0105c\u0105 aplikacj\u0119 i zak\u0142adaj\u0105, \u017ce jest gotowa do produkcji.<\/p>\n\n\n<h2 id=\"h-what-happened-in-hour-two-feature-creep-became-obvious\" class=\"wp-block-heading\">Co Wydarzy\u0142o Si\u0119 W Drugiej Godzinie? Przejawienie Rozszerzania Funkcjonalno\u015bci<\/h2>\n\n\n<p>Aplikacja dzia\u0142a\u0142a zgodnie z przeznaczeniem, a ten prze\u0142omowy moment pom\u00f3g\u0142 mojej babci zbudowa\u0107 pewno\u015b\u0107 siebie. Moja babcia zacz\u0119\u0142a my\u015ble\u0107 o ulepszeniach. Tutaj staj\u0105 si\u0119 widoczne ograniczenia kodowania vibe.<\/p>\n\n\n<p>Pr\u00f3bowali\u015bmy funkcjonalno\u015bci na pro\u015bb\u0119: <em>&#8220;Dodaj mo\u017cliwo\u015b\u0107 przesy\u0142ania zdj\u0119\u0107 ka\u017cdej ro\u015bliny, abym m\u00f3g\u0142 zobaczy\u0107, jak wygl\u0105da\u0142a na r\u00f3\u017cnych etapach wzrostu.&#8221;<\/em><\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1298\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex.webp\" alt=\"Interfejs Cursor AI pokazuj\u0105cy post\u0119p w implementacji funkcji przesy\u0142ania zdj\u0119\u0107 ro\u015blin z podzia\u0142em zada\u0144 i statusem uko\u0144czenia.\" class=\"wp-image-77861 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-300x243.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1024x831.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-768x623.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1536x1246.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-600x487.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1200x974.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-730x592.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1460x1184.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-784x636.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1568x1272.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-877x711.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1298;\" \/><\/figure>\n\n\n<p>Ta pozornie prosta pro\u015bba wywo\u0142a\u0142a kaskad\u0119 architektonicznej z\u0142o\u017cono\u015bci.<\/p>\n\n\n<p><strong>Zmiany schematu bazy danych i modu\u0142u aplikacji wymagane:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Nowa tabela zdj\u0119\u0107 z kolumnami: id, plant_id (klucz obcy), photo_url, upload_date, growth_stage<\/li>\n\n\n\n<li>Definicja relacji mi\u0119dzy ro\u015blinami a zdj\u0119ciami (relacja jeden-do-wielu)<\/li>\n\n\n\n<li>Strategia migracji istniej\u0105cych danych<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Potrzebne modyfikacje backendu:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Punkt ko\u0144cowy przesy\u0142ania plik\u00f3w z obs\u0142ug\u0105 formularza wielocz\u0119\u015bciowego<\/li>\n\n\n\n<li>Rozwi\u0105zanie do przechowywania plik\u00f3w (lokalny system plik\u00f3w vs. magazyn w chmurze)<\/li>\n\n\n\n<li>Nowe punkty ko\u0144cowe API do operacji CRUD na zdj\u0119ciach<\/li>\n\n\n\n<li>Aktualizacja istniej\u0105cych punkt\u00f3w ko\u0144cowych ro\u015blin w celu do\u0142\u0105czenia danych zdj\u0119ciowych<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Zmiany Wymagane Na Frontendzie:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Komponent wczytywania plik\u00f3w z funkcj\u0105 przeci\u0105gania i upuszczania<\/li>\n\n\n\n<li>Funkcjonalno\u015b\u0107 podgl\u0105du obraz\u00f3w<\/li>\n\n\n\n<li>Wy\u015bwietlanie galerii zdj\u0119\u0107 dla ka\u017cdej ro\u015bliny<\/li>\n\n\n\n<li>Aktualizacja istniej\u0105cych kart ro\u015blin o miniaturki<\/li>\n\n\n\n<li>Stany \u0142adowania podczas post\u0119pu przesy\u0142ania<\/li>\n\n\n<\/ul>\n\n\n<p>OpenAI Codex podj\u0105\u0142 pr\u00f3b\u0119 wykonania wszystkiego jednocze\u015bnie. Najnowszy model GPT5-Codex-High by\u0142 w stanie to osi\u0105gn\u0105\u0107 w ci\u0105gu ~5 minut od wprowadzenia polecenia.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1774\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity.webp\" alt=\"Szczeg\u00f3\u0142owa strona ro\u015bliny Garden Tracker dla Og\u00f3rka pokazuj\u0105ca histori\u0119 zbior\u00f3w z dwoma wpisami, \u0142\u0105czny zbi\u00f3r 5,60 funta oraz sekcj\u0119 przesy\u0142ania zdj\u0119\u0107.\" class=\"wp-image-77862 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-271x300.webp 271w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-924x1024.webp 924w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-768x852.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1385x1536.webp 1385w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-600x665.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1200x1331.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-730x809.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1460x1619.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-784x869.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1568x1739.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-877x972.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1774;\" \/><\/figure>\n\n\n<p>Problem polega na tym, \u017ce stworzy\u0142o to b\u0142\u0119dny i niezabezpieczony kod. Oto co si\u0119 popsu\u0142o:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Zmieni\u0142a si\u0119 pierwotna struktura tabeli <em>ro\u015bliny<\/em><\/li>\n\n\n\n<li>Sk\u0142adniki frontendu odnosz\u0105ce si\u0119 do starego schematu przesta\u0142y dzia\u0142a\u0107<\/li>\n\n\n\n<li>Pojawi\u0142y si\u0119 konflikty CSS mi\u0119dzy nowymi komponentami zdj\u0119\u0107 a istniej\u0105cym interfejsem u\u017cytkownika (widoczne na zrzucie ekranu)<\/li>\n\n\n<\/ul>\n\n\n<p>A potem pojawi\u0142 si\u0119 problem nadmiernego in\u017cynierowania: Codex wygenerowa\u0142 z\u0142o\u017cony system z niepotrzebnym przetwarzaniem obrazu i danymi pobranymi dla ka\u017cdego zdj\u0119cia, itd.&nbsp;<\/p>\n\n\n<p>Ka\u017cda pr\u00f3ba naprawy wprowadza\u0142a nowe problemy. Aktualizuj schemat bazy danych, psuj API. Napraw API, psuj frontend. Rozwi\u0105\u017c problemy z frontem, odkryj nowe b\u0142\u0119dy backendu. Kod, kt\u00f3ry dzia\u0142a\u0142 idealnie przy 200 liniach kodu, teraz rozci\u0105ga si\u0119 na 1500 linii z powi\u0105zanymi zale\u017cno\u015bciami.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-non-extensible-architecture-trap\">Pu\u0142apka Architektury Nieprzystosowanej Do Rozszerze\u0144<\/h3>\n\n\n<p>Architektura aplikacji zosta\u0142a zoptymalizowana <em>wy\u0142\u0105cznie<\/em> dla tego, o co prosili\u015bmy w pierwszej godzinie. Przy programowaniu z wibracjami musisz by\u0107 bardzo konkretny, a to jest trudne dla os\u00f3b, kt\u00f3re nie s\u0105 programistami.<\/p>\n\n\n<p>Nie wiedzia\u0142by\u015b, co oznacza rozszerzalna architektura, gdyby zaimplementowa\u0142a j\u0105 SI.<\/p>\n\n\n<p>Je\u015bli masz ju\u017c gotow\u0105 prost\u0105 aplikacj\u0119, a potem potrzebujesz j\u0105 rozbudowa\u0107, brak elastycznej architektury oznacza\u0142by konieczno\u015b\u0107 napisania kodu od nowa dla SI.&nbsp;<\/p>\n\n\n<p><strong>Za\u0142o\u017cenia architektoniczne od pierwszej godziny:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Pojedynczy projekt tabeli (rozs\u0105dny dla prostych danych)<\/li>\n\n\n\n<li>Bezpo\u015brednie zapytania API do bazy danych (szybkie dla operacji z du\u017c\u0105 ilo\u015bci\u0105 odczyt\u00f3w)<\/li>\n\n\n\n<li>Zagnie\u017cd\u017cone definicje komponent\u00f3w (akceptowalne dla ma\u0142ych interfejs\u00f3w u\u017cytkownika)<\/li>\n\n\n\n<li>Brak rozdzielenia logiki biznesowej i dost\u0119pu do danych (odpowiednie dla prostych operacji CRUD)<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Dlaczego te za\u0142o\u017cenia sta\u0142y si\u0119 ograniczeniami:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Jednotablicowy projekt uniemo\u017cliwia\u0142 odpowiednie modelowanie relacyjne danych dla zdj\u0119\u0107<\/li>\n\n\n\n<li>Bezpo\u015brednie zapytania wymaga\u0142y ca\u0142kowitego przepisania przy zmianie schematu<\/li>\n\n\n\n<li>Komponenty wbudowane powodowa\u0142y, \u017ce zmiany przenosi\u0142y si\u0119 na ca\u0142\u0105 baz\u0119 kodu<\/li>\n\n\n\n<li>Brak warstwy logiki biznesowej oznacza\u0142, \u017ce ka\u017cda funkcja bezpo\u015brednio oddzia\u0142ywa\u0142a na baz\u0119 danych<\/li>\n\n\n<\/ul>\n\n\n<p>Min\u0119li\u015bmy punkt bez powrotu. Zbyt wiele kodu powsta\u0142o, aby go porzuci\u0107. Ka\u017cda pr\u00f3ba naprawy poch\u0142ania\u0142a wi\u0119cej token\u00f3w, staraj\u0105c si\u0119 uratowa\u0107 architektur\u0119, kt\u00f3ra nie mog\u0142a wspiera\u0107 nowych wymaga\u0144.<\/p>\n\n\n<h2 id=\"h-what-happened-in-hour-three-token-exhaustion-and-barely-functional-code-emerged\" class=\"wp-block-heading\">Co Wydarzy\u0142o Si\u0119 W Trzeciej Godzinie? Wyczerpanie Token\u00f3w I Ledwo Funkcjonuj\u0105cy Kod<\/h2>\n\n\n<p>Po tym, jak funkcja przesy\u0142ania zdj\u0119\u0107 zacz\u0119\u0142a dzia\u0142a\u0107, pr\u00f3bowali\u015bmy wprowadzi\u0107 dodatkowe ulepszenia.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Dodaj kategorie dla typ\u00f3w ro\u015blin (warzywa, zio\u0142a, kwiaty)&#8221;<\/li>\n\n\n\n<li>&#8220;Poka\u017c rekomendacje sadzenia w zale\u017cno\u015bci od pory roku&#8221;<\/li>\n\n\n\n<li>&#8220;Pozw\u00f3l mi oznaczy\u0107 ro\u015bliny jako ulubione&#8221;<\/li>\n\n\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1030\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code.webp\" alt=\"Cursor AI pokazuj\u0105cy uko\u0144czenie budowy aplikacji do monitorowania ogrodu z dodatkowymi funkcjami, w tym kategoriami ro\u015blin, sezonowymi rekomendacjami i ulubionymi z widocznym kodem.\" class=\"wp-image-77863 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-300x193.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1024x659.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-768x494.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1536x989.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-600x386.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1200x773.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-730x470.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1460x940.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-784x505.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1568x1009.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-877x565.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1030;\" \/><\/figure>\n\n\n<p>Ka\u017cde zapytanie pod\u0105\u017ca\u0142o za tym samym wzorcem: Codex pr\u00f3bowa\u0142 dok\u0142adnie wdro\u017cy\u0107 rozwi\u0105zania dla pozornie prostych zada\u0144, wprowadza\u0142 zmiany powoduj\u0105ce b\u0142\u0119dy, tworzy\u0142 przekombinowane rozwi\u0105zania i zu\u017cywa\u0142 tysi\u0105ce token\u00f3w, pr\u00f3buj\u0105c naprawi\u0107 wynikaj\u0105ce b\u0142\u0119dy.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"932\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1024x932.webp\" alt=\"Panel Garden Tracker pokazuj\u0105cy sezonowe rekomendacje, list\u0119 ro\u015blin z warzywami i dzia\u0142aniami oraz twoj\u0105 sekcj\u0119 zasadze\u0144 z kartami Og\u00f3rka i Bazylii.\" class=\"wp-image-77864 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1024x932.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-300x273.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-768x699.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1536x1399.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-600x546.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1200x1093.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-730x665.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1460x1330.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-784x714.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1568x1428.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-877x799.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/932;\" \/><\/figure>\n\n\n<p>Aplikacja dzia\u0142a \u015bwietnie, a moja babcia by\u0142a zadowolona z wyniku.&nbsp;<\/p>\n\n\n<p>Jako programista jednak wyra\u017anie widzia\u0142em, \u017ce jeste\u015bmy na ostatniej prostej pod wzgl\u0119dem kodu. Jeszcze kilka funkcji i aplikacja by\u0142aby ba\u0142aganem.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"620\" height=\"421\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/IMAGE-9.png\" alt=\"Meme z SpongeBobem przedstawiaj\u0105ce Patryka sfrustrowanego przy komputerze z tekstem Dzia\u0142a? i Nie, to zepsute, ale tego nie psuj.\" class=\"wp-image-77865 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/IMAGE-9.png.webp 620w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/IMAGE-9-300x204.png 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/IMAGE-9-600x407.png.webp 600w\" data-sizes=\"(max-width: 620px) 100vw, 620px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 620px; --smush-placeholder-aspect-ratio: 620\/421;\" \/><\/figure>\n\n\n<p>za po\u015brednictwem <a href=\"https:\/\/imgflip.com\/i\/tc9hy\">Imgflip<\/a><\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-why-is-this-such-a-common-problem\">Dlaczego Jest To Tak Powszechny Problem?<\/h3>\n\n\n<p>Agenci programuj\u0105cy to po prostu du\u017ce modele j\u0119zykowe \u201estymulowane\u201d do generowania kodu.&nbsp;<\/p>\n\n\n<p>Wi\u0119c maj\u0105 wszystkie problemy, kt\u00f3re dotycz\u0105 regularnych du\u017cych modeli j\u0119zykowych, w tym:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Nieokre\u015blanie jasnych oczekiwa\u0144<\/li>\n\n\n\n<li>Wymy\u015blanie losowych wywo\u0142a\u0144 funkcji (halucynacje)<\/li>\n\n\n\n<li>Pisanie skomplikowanego kodu do prostych zada\u0144<\/li>\n\n\n<\/ul>\n\n\n<p>Ponadto, w miar\u0119 jak historia czatu si\u0119 rozrasta, agenci koduj\u0105cy osi\u0105gaj\u0105 swoje <a href=\"https:\/\/www.ibm.com\/think\/topics\/context-window\">limity okna kontekstowego<\/a>.&nbsp;<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Pierwotne decyzje architektoniczne i ich uzasadnienie<\/li>\n\n\n\n<li>Kolejne modyfikacje i ich wzajemne zale\u017cno\u015bci<\/li>\n\n\n\n<li>Aktualne b\u0142\u0119dy i ich podstawowe przyczyny<\/li>\n\n\n\n<li>Po\u017c\u0105dana funkcjonalno\u015b\u0107 dla nowych funkcji<\/li>\n\n\n<\/ul>\n\n\n<p>Ka\u017cde nowe polecenie by\u0142o interpretowane oddzielnie, bez pe\u0142nego zrozumienia historii architektury. SI proponowa\u0142o rozwi\u0105zania, kt\u00f3re mia\u0142y sens dla poszczeg\u00f3lnych funkcji, ale stwarza\u0142y systemowe konflikty, gdy by\u0142y integrowane z istniej\u0105cym kodem.<\/p>\n\n\n<p>Ten <a href=\"https:\/\/www.reddit.com\/r\/ClaudeAI\/comments\/1kivv0w\/the_ultimate_vibe_coding_guide\/\">przewodnik na Reddicie podkre\u015bla<\/a>: <em>&#8220;Gdy rozmowa stanie si\u0119 bardzo du\u017ca, po prostu otw\u00f3rz now\u0105. Okno kontekstowe SI jest ograniczone. Je\u015bli rozmowa b\u0119dzie bardzo du\u017ca, zapomni wszystko, co by\u0142o wcze\u015bniej, zapomni wszelkich wzorc\u00f3w i projekt\u00f3w, i zacznie produkowa\u0107 z\u0142e wyniki.&#8221;<\/em><\/p>\n\n\n<p>Ale otwieranie nowego czatu oznacza\u0142o utrat\u0119 ca\u0142ego kontekstu dotycz\u0105cego tego, co istnia\u0142o. Zapewnienie tego kontekstu zajmowa\u0142o tokeny. Nawet z &#8220;streszczonym&#8221; kontekstem wci\u0105\u017c brakuje nam wa\u017cnych szczeg\u00f3\u0142\u00f3w, je\u015bli chodzi o kod.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-we-faced-the-tea-app-problem-at-a-smaller-scale\">Zmagali\u015bmy Si\u0119 Z Problemem Aplikacji TEA Na Mniejsz\u0105 Skal\u0119<\/h3>\n\n\n<p>Aplikacja TEA zademonstrowa\u0142a ten dok\u0142adny wzorzec awarii na skal\u0119 produkcyjn\u0105. Uruchomiona w 2023 roku jako platforma bezpiecze\u0144stwa kobiet, szybko zyska\u0142a 1,6 miliona u\u017cytkownik\u00f3w.&nbsp;<\/p>\n\n\n<p><strong>Nast\u0119pnie, w lipcu 2025 roku, nast\u0105pi\u0142a katastrofalna awaria:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Naruszenie:<\/strong> Badacze ds. bezpiecze\u0144stwa odkryli niezabezpieczony bucket Firebase przechowuj\u0105cy 72,000 zdj\u0119\u0107 u\u017cytkownik\u00f3w, w tym 13,000 zdj\u0119\u0107 do weryfikacji i dokument\u00f3w to\u017csamo\u015bci. Druga baza danych ujawni\u0142a 1,1 miliona prywatnych wiadomo\u015bci.<\/li>\n\n\n\n<li><strong>Niepowodzenia techniczne:<\/strong> Klucze API zakodowane na sta\u0142e w kodzie \u017ar\u00f3d\u0142owym, bucket Firebase publicznie dost\u0119pny bez autoryzacji, brak ochron przed wykonaniem i brak warstwy przegl\u0105du bezpiecze\u0144stwa. Eksperci powi\u0105zali te podatno\u015bci z praktykami kodowania na wibracje, gdzie pr\u0119dko\u015b\u0107 funkcji przys\u0142oni\u0142a architektur\u0119 bezpiecze\u0144stwa.<\/li>\n\n\n\n<li><strong>Wynik:<\/strong> Anonimowy u\u017cytkownik 4chan odkry\u0142 i udost\u0119pni\u0142 narz\u0119dzia do pobierania. Pozwy zbiorowe z\u0142o\u017cone w ci\u0105gu 48 godzin. Platforma zosta\u0142a zamkni\u0119ta. \u015aredni koszt naruszenia: 4,88 miliona dolar\u00f3w.<\/li>\n\n\n<\/ul>\n\n\n<p>Poraszka TEA ma taki sam wzorzec, jakiego do\u015bwiadczyli\u015bmy na tak ma\u0142\u0105 skal\u0119, co sprawia, \u017ce zastanawiam si\u0119, dlaczego ludzie nie weryfikuj\u0105 kodu generowanego przez SI.&nbsp;<\/p>\n\n\n<p>Mieli\u015bmy pocz\u0105tkow\u0105 implementacj\u0119, kt\u00f3ra dzia\u0142a\u0142a dobrze; jednak dodatki funkcjonalno\u015bci skomplikowa\u0142y architektur\u0119, kwestie bezpiecze\u0144stwa zosta\u0142y przeoczone dla nowych funkcji, a systemowe podatno\u015bci pozosta\u0142y nie\u015bwiadomie otwarte na wykorzystanie.<\/p>\n\n\n<h2 id=\"h-how-to-vibe-code-without-experiencing-the-same-problems-we-did\" class=\"wp-block-heading\">Jak Pracowa\u0107 Z Kodem, Nie Napotykaj\u0105c Tych Samych Problem\u00f3w Co My<\/h2>\n\n\n<p>Je\u015bli nie jeste\u015b programist\u0105, nie da si\u0119 ca\u0142kowicie unikn\u0105\u0107 problem\u00f3w. Istniej\u0105 jednak sposoby, aby zminimalizowa\u0107 problemy.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-start-with-ruthless-feature-minimalism\">1. Zacznij Od Bezwzgl\u0119dnego Minimalizmu Funkcjonalno\u015bci<\/h3>\n\n\n<p>Okre\u015bl absolutne minimum funkcjonalno\u015bci przed napisaniem pierwszego polecenia, ale zawsze oprzyj si\u0119 pokusie dodawania funkcji w trakcie pocz\u0105tkowego rozwoju.<\/p>\n\n\n<p><strong>Skuteczne ramy zasi\u0119gu:<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Wypisz wszystkie wymagane funkcjonalno\u015bci<\/li>\n\n\n\n<li>Zidentyfikuj 3\u20135 funkcjonalno\u015bci, kt\u00f3re potwierdzaj\u0105 twoj\u0105 g\u0142\u00f3wn\u0105 hipotez\u0119<\/li>\n\n\n\n<li>Buduj tylko te funkcjonalno\u015bci w pierwszej wersji<\/li>\n\n\n\n<li>Wydaj, potwierd\u017a i iteruj<\/li>\n\n\n<\/ol>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Nie dawaj polece\u0144 typu &#8220;Zbuduj mi t\u0119 ca\u0142\u0105 funkcj\u0119&#8221;. AI zacznie halucynowa\u0107 i wyprodukuje okropny kod. Podziel ka\u017cd\u0105 funkcj\u0119 na co najmniej 3\u20135 kolejnych \u017c\u0105da\u0144.<\/em><\/p>\n\n\n<\/blockquote>\n\n\n<p>Je\u015bli nie mo\u017cesz zidentyfikowa\u0107 minimalnego zestawu funkcji, u\u017cyj opcji &#8220;<strong>Tryb planowania<\/strong>&#8221; lub &#8220;<strong>Tryb czatu<\/strong>&#8221; dost\u0119pnych w wi\u0119kszo\u015bci narz\u0119dzi do kodowania AI.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1715\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode.webp\" alt=\"Interfejs Claude Code prezentuj\u0105cy pusty stan z postaci\u0105 pixel art i zach\u0119t\u0105 do wpisania \/model w celu wybrania narz\u0119dzia AI do kodowania.\" class=\"wp-image-77866 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-280x300.webp 280w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-955x1024.webp 955w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-768x823.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1433x1536.webp 1433w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-600x643.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1200x1286.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-730x782.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1460x1565.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-784x840.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1568x1681.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-877x940.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1715;\" \/><\/figure>\n\n\n<p>To pozwala ci powiedzie\u0107 agentowi, czego chcesz w naturalnym j\u0119zyku i umo\u017cliwia AI rozk\u0142adanie aplikacji na pojedyncze funkcje lub pliki.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-commit-to-git-after-every-working-feature\">2. Zatwierd\u017a W Git Po Ka\u017cdej Dzia\u0142aj\u0105cej Funkcjonalno\u015bci<\/h3>\n\n\n<p>Dla osoby, kt\u00f3ra nie jest programist\u0105, kontrola wersji mo\u017ce brzmie\u0107 skomplikowanie, ale jest to niezb\u0119dne narz\u0119dzie. Git to narz\u0119dzie do kontroli wersji, kt\u00f3re tworzy punkty przywracania, gdy dodanie nowych funkcji zak\u0142\u00f3ca funkcjonowanie istniej\u0105cych.&nbsp;<\/p>\n\n\n<p><strong>Przep\u0142yw pracy Git dla kodowania vibe:<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Zainicjuj repozytorium przed pierwszym monitem<\/li>\n\n\n\n<li>Zatwierd\u017a po pocz\u0105tkowej dzia\u0142aj\u0105cej wersji<\/li>\n\n\n\n<li>Utw\u00f3rz now\u0105 ga\u0142\u0105\u017a dla ka\u017cdego dodatku funkcji<\/li>\n\n\n\n<li>Zatwierdzaj cz\u0119sto podczas rozwijania funkcji<\/li>\n\n\n\n<li>Przetestuj dok\u0142adnie przed scaleniem z g\u0142\u00f3wn\u0105 ga\u0142\u0119zi\u0105<\/li>\n\n\n<\/ol>\n\n\n<p>Mo\u017cesz poprosi\u0107 wybranego agenta programistycznego, aby zrobi\u0142 to za ciebie, je\u015bli nie czujesz si\u0119 komfortowo z <a href=\"https:\/\/www.dreamhost.com\/blog\/git-commands\/\">komendami Git<\/a>.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-design-for-extension-in-initial-prompts\">3. Projektowanie Rozszerze\u0144 W Pocz\u0105tkowych Monitach<\/h3>\n\n\n<p>Twoja pierwsza komenda definiuje baz\u0119 kodu. Proste polecenia pozwol\u0105 ci uzyska\u0107 dzia\u0142aj\u0105c\u0105 aplikacj\u0119, dop\u00f3ki nie zaczniesz prosi\u0107 o nowe funkcje.&nbsp;<\/p>\n\n\n<p>Zamiast tego popro\u015b o elastyczn\u0105 architektur\u0119 ju\u017c na pocz\u0105tku.&nbsp;<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Nieskuteczna Pierwsza Komenda:<\/strong> &#8220;Zbuduj aplikacj\u0119 do \u015bledzenia ogrodu, gdzie b\u0119d\u0119 m\u00f3g\u0142 zapisywa\u0107 co zasadzi\u0142em i co zebra\u0142em.&#8221;<\/li>\n\n\n\n<li><strong>Skuteczna Pierwsza Komenda:<\/strong> &#8220;Zbuduj aplikacj\u0119 do \u015bledzenia ogrodu z rozszerzalnym schematem bazy danych, kt\u00f3ry mo\u017ce pomie\u015bci\u0107 przysz\u0142e funkcje. U\u017cyj modu\u0142owej architektury, gdzie komponenty frontendowe, punkty ko\u0144cowe API i dost\u0119p do bazy danych s\u0105 oddzielone. Do\u0142\u0105cz jasn\u0105 dokumentacj\u0119 schematu i struktury API dla przysz\u0142ych modyfikacji.&#8221;<\/li>\n\n\n<\/ul>\n\n\n<p>To pocz\u0105tkowo zwi\u0119ksza zu\u017cycie token\u00f3w. Jednak\u017ce, gdy zaczniesz dodawa\u0107 nowe funkcje, SI nie b\u0119dzie musia\u0142a marnowa\u0107 token\u00f3w na refaktoryzacj\u0119 starego kodu, aby dostosowa\u0107 si\u0119 do \u017c\u0105da\u0144.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-choose-tools-based-on-architectural-stability\">4. Wybieraj Narz\u0119dzia Na Podstawie Stabilno\u015bci Architektonicznej<\/h3>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bolt.new, Replit agent, i Lovable:<\/strong> Doskona\u0142e do jednosesyjnych prototyp\u00f3w i \u0142atwej instalacji. S\u0142abe przy dodawaniu funkcji wielosesyjnych. Architektura staje si\u0119 coraz bardziej krucha przy ka\u017cdej modyfikacji.<\/li>\n\n\n\n<li><strong>Claude\/OpenAI\/Gemini coding agents:<\/strong> Czasami przydatne przy skomplikowanym kodowaniu, ale mog\u0105 wydawa\u0107 si\u0119 bardziej skomplikowane w por\u00f3wnaniu z wizualnymi aplikacjami internetowymi, kt\u00f3re widzieli\u015bmy wcze\u015bniej.<\/li>\n\n\n\n<li><strong>DreamHost Liftoff:<\/strong> \u015awietne jako fundament WordPressa z udowodnionymi wzorcami rozszerzalno\u015bci. Architektura WordPressa jest zaprojektowana z my\u015bl\u0105 o modyfikacji i dodawaniu wtyczek. Rozwi\u0105zuje to problem nieelastycznej architektury, zaczynaj\u0105c od sprawdzonej, elastycznej podstawy.<\/li>\n\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-implement-security-from-hour-one\">5. Wprowad\u017a Zabezpieczenia Od Pierwszej Godziny<\/h3>\n\n\n<p>Podobnie jak w przypadku rozszerzalno\u015bci, chcesz integrowa\u0107 bezpiecze\u0144stwo ju\u017c od pierwszego momentu. Dlatego, wraz z pro\u015bb\u0105 o rozszerzaln\u0105, modu\u0142ow\u0105 architektur\u0119, chcesz r\u00f3wnie\u017c doda\u0107 komponenty zorientowane na bezpiecze\u0144stwo do pocz\u0105tkowego polecenia.<\/p>\n\n\n<p><strong>Oto przyk\u0142ad, jak doda\u0142bym zabezpieczenia w pierwszym poleceniu:<\/strong> <em>&#8220;Zbuduj aplikacj\u0119 do \u015bledzenia ogrodu z hashowaniem hase\u0142 bcrypt, walidacj\u0105 wszystkich p\u00f3l, parametryzowanymi zapytaniami SQL w celu zapobiegania atakom iniekcji, ograniczeniem liczby zapyta\u0144 do wszystkich punkt\u00f3w ko\u0144cowych API oraz sekretami przechowywanymi w zmiennych \u015brodowiskowych, kt\u00f3re nigdy nie s\u0105 ujawniane w kodzie frontend.&#8221;<\/em><\/p>\n\n\n<p><strong>Je\u015bli tworzysz aplikacj\u0119 skierowan\u0105 do klienta, oto kilka rzeczy, kt\u00f3re warto mie\u0107 na uwadze:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Nigdy nie ufaj danym klienta\u2014waliduj i oczyszczaj po stronie serwera<\/li>\n\n\n\n<li>Przechowuj tajemnice w zmiennych \u015brodowiskowych<\/li>\n\n\n\n<li>Weryfikuj uprawnienia do ka\u017cdej akcji<\/li>\n\n\n\n<li>U\u017cywaj og\u00f3lnych komunikat\u00f3w b\u0142\u0119d\u00f3w\u2014szczeg\u00f3\u0142owe logi tylko dla programist\u00f3w<\/li>\n\n\n\n<li>Wprowad\u017a kontrol\u0119 w\u0142a\u015bcicielsk\u0105, aby zapobiec nieautoryzowanemu dost\u0119powi do danych<\/li>\n\n\n\n<li>Ochrona API za pomoc\u0105 limit\u00f3w szybko\u015bci<\/li>\n\n\n<\/ul>\n\n\n<p>Zrozumienie <a href=\"https:\/\/www.dreamhost.com\/blog\/guide-to-generative-ai\/\">jak dzia\u0142a generatywna SI<\/a> pomaga ci rozpozna\u0107, kiedy SI formu\u0142uje za\u0142o\u017cenia bezpiecze\u0144stwa, kt\u00f3re tworz\u0105 podatno\u015bci.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-6-know-when-to-start-fresh-vs-continue\">6. Wiedz, Kiedy Zacz\u0105\u0107 Od Nowa a Kiedy Kontynuowa\u0107<\/h3>\n\n\n<p>Rozpoznaj znaki, \u017ce kontynuowanie spowoduje zmarnowanie token\u00f3w.<\/p>\n\n\n<p><strong>Zacznij od nowa, gdy:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Zu\u017cycie token\u00f3w przekracza 300k bez dzia\u0142aj\u0105cych funkcji<\/li>\n\n\n\n<li>Ka\u017cda poprawka wprowadza dwa nowe b\u0142\u0119dy<\/li>\n\n\n\n<li>Modyfikacje architektoniczne psuj\u0105 wiele istniej\u0105cych funkcji<\/li>\n\n\n\n<li>Historia czatu przekracza 30 wymian<\/li>\n\n\n\n<li>Nie mo\u017cesz wyja\u015bni\u0107 obecnej architektury bazy kodu<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Kontynuuj, gdy:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Nowe funkcjonalno\u015bci integruj\u0105 si\u0119 p\u0142ynnie z istniej\u0105cym kodem<\/li>\n\n\n\n<li>Naprawy b\u0142\u0119d\u00f3w rozwi\u0105zuj\u0105 problemy bez skutk\u00f3w ubocznych<\/li>\n\n\n\n<li>Zu\u017cycie token\u00f3w mie\u015bci si\u0119 w bud\u017cetach<\/li>\n\n\n\n<li>Architektura pozostaje zrozumia\u0142a<\/li>\n\n\n<\/ul>\n\n\n<p>Kiedy SI pope\u0142ni b\u0142\u0105d i p\u00f3jdzie w z\u0142ym kierunku, powr\u00f3t, zmiana polecenia i ponowne wys\u0142anie b\u0119dzie du\u017co lepszym rozwi\u0105zaniem ni\u017c doko\u0144czenie tego bezu\u017cytecznego kodu.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-7-review-with-ai-security-analysis\">7. Przegl\u0105d Z Analiz\u0105 Bezpiecze\u0144stwa AI<\/h3>\n\n\n<p>Po zbudowaniu podstawowej funkcjonalno\u015bci, skopiuj ca\u0142\u0105 baz\u0119 kod\u00f3w do Gemini 2.5 Pro w celu kompleksowej analizy zabezpiecze\u0144. Preferuj\u0119 ten model j\u0119zykowy z powodu jego du\u017cej ilo\u015bci kontekstu wynosz\u0105cej dwa miliony token\u00f3w, dzi\u0119ki czemu mo\u017cesz przenie\u015b\u0107 ca\u0142\u0105 baz\u0119 kod\u00f3w do niego.&nbsp;<\/p>\n\n\n<p><strong>Monit przegl\u0105du bezpiecze\u0144stwa:<\/strong> <em>&#8220;Zachowaj si\u0119 jak ekspert ds. bezpiecze\u0144stwa. Przeanalizuj t\u0119 kompletn\u0105 baz\u0119 kod\u00f3w pod k\u0105tem podatno\u015bci. Zidentyfikuj ryzyko iniekcji SQL, podatno\u015bci XSS, s\u0142abo\u015bci uwierzytelniania, wady autoryzacji, nara\u017cenie po\u015bwiadcze\u0144 oraz wszelkie problemy z pierwszej dziesi\u0105tki OWASP. Podaj konkretne lokalizacje kodu i rekomendacje dotycz\u0105ce napraw.&#8221;<\/em><\/p>\n\n\n<p>To jest przybli\u017cenie profesjonalnego przegl\u0105du bezpiecze\u0144stwa za u\u0142amek ceny.&nbsp;<\/p>\n\n\n<p>Jest niewystarczaj\u0105ce do wdro\u017cenia produkcyjnego, ale identyfikuje katastrofalne wady w prototypach, zanim dotr\u0105 do u\u017cytkownik\u00f3w.<\/p>\n\n\n<h2 id=\"h-when-does-vibe-coding-make-business-sense\" class=\"wp-block-heading\">Kiedy Kodowanie Vibe Ma Sens Biznesowy?<\/h2>\n\n\n<p>Nie musisz ca\u0142kowicie rezygnowa\u0107 z kodowania wibracji tylko dlatego, \u017ce obecnie nie jest w stanie tworzy\u0107 skomplikowanych aplikacji. Oto kilka przypadk\u00f3w, kiedy uwa\u017cam, \u017ce prototyp lub aplikacja zakodowana wibracjami faktycznie ma sens.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Szybka Weryfikacja Koncepcji:<\/strong> Buduj prototypy w ci\u0105gu godzin, aby testowa\u0107 zainteresowanie rynku. \u015aredni koszt weryfikacji spad\u0142 z 15 000\u2013100 000+ do poni\u017cej 500. U\u017cyj kodowania wibracji, aby odpowiedzie\u0107 na pytanie: &#8220;Czy klienci chc\u0105 tego na tyle, aby z tego korzysta\u0107?&#8221;<\/li>\n\n\n\n<li><strong>Automatyzacja Proces\u00f3w Wewn\u0119trznych:<\/strong> Zapewnij narz\u0119dzia dla swojego zespo\u0142u, gdzie kontrolujesz dost\u0119p i akceptujesz wy\u017csz\u0105 tolerancj\u0119 na ryzyko, poniewa\u017c promie\u0144 wybuchu pozostaje ograniczony. Wewn\u0119trzne narz\u0119dzia mog\u0105 ewoluowa\u0107 w kierunku bezpiecze\u0144stwa, zamiast wymaga\u0107 go od pierwszego dnia.<\/li>\n\n\n\n<li><strong>Specyfikacja Przed Rozwojem:<\/strong> Zrozum wymagania przed <a href=\"https:\/\/www.dreamhost.com\/blog\/how-to-hire-web-developer\/\">zatrudnieniem programist\u00f3w<\/a>, aby zmniejszy\u0107 kosztowne nieporozumienia. Prototypy skodowane wibracjami s\u0142u\u017c\u0105 jako interaktywne dokumenty wymaga\u0144.<\/li>\n\n\n\n<li><strong>MVP Dla Zbierania Funduszy:<\/strong> Demonstruj funkcjonalno\u015b\u0107 inwestorom, b\u0119d\u0105c przejrzystym co do dojrza\u0142o\u015bci technicznej. Wiele startup\u00f3w u\u017cywa MVP skodowanych wibracjami, aby zabezpieczy\u0107 pocz\u0105tkowe finansowanie, a nast\u0119pnie w\u0142a\u015bciwie odbudowa\u0107 z profesjonalnymi zespo\u0142ami.<\/li>\n\n\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-when-professional-development-becomes-non-negotiable\">Kiedy Rozw\u00f3j Zawodowy Staje Si\u0119 Obowi\u0105zkowy<\/h3>\n\n\n<p>Aplikacje obs\u0142uguj\u0105ce klient\u00f3w, kt\u00f3re przetwarzaj\u0105 jakiekolwiek dane u\u017cytkownik\u00f3w, wymagaj\u0105 profesjonalnego przegl\u0105du bezpiecze\u0144stwa. Koszt b\u0142\u0119dnej implementacji zabezpiecze\u0144 przewy\u017csza wszelkie oszcz\u0119dno\u015bci wynikaj\u0105ce z pisania kodu na luzie.<\/p>\n\n\n<p>Niekt\u00f3re przypadki, w kt\u00f3rych potrzebujesz profesjonalnej weryfikacji to:&nbsp;<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Autentykacja wielu u\u017cytkownik\u00f3w<\/li>\n\n\n\n<li>Przetwarzanie p\u0142atno\u015bci<\/li>\n\n\n\n<li>Przechowywanie danych osobowych<\/li>\n\n\n\n<li>Publiczne wdro\u017cenia<\/li>\n\n\n\n<li>Sytuacje wymagaj\u0105ce zgodno\u015bci z przepisami (takie jak GDPR, CCPA, HIPAA)<\/li>\n\n\n<\/ul>\n\n\n<p>CEO Microsoftu ujawni\u0142, \u017ce <a href=\"https:\/\/www.cnbc.com\/2025\/04\/29\/satya-nadella-says-as-much-as-30percent-of-microsoft-code-is-written-by-ai.html\">30% kodu firmy<\/a> jest obecnie generowane przez SI. Google poda\u0142o <a href=\"https:\/\/abc.xyz\/investor\/events\/event-details\/2025\/2025-Q1-Earnings-Call\/\">podobne dane<\/a>. Obie firmy utrzymuj\u0105 rozbudowane procesy przegl\u0105du bezpiecze\u0144stwa, automatyczne testowanie i nadz\u00f3r ludzki.&nbsp;<\/p>\n\n\n<p>Wdro\u017cenie produkcyjne wymaga podobnych zabezpiecze\u0144 niezale\u017cnie od metody generowania kodu.<\/p>\n\n\n<p>Zrozumienie, <a href=\"https:\/\/www.dreamhost.com\/blog\/will-ai-replace-developers\/\">czy SI zast\u0105pi programist\u00f3w<\/a>, pomaga ustali\u0107 realistyczne oczekiwania co do tego, co mo\u017cesz bezpiecznie budowa\u0107 i wdra\u017ca\u0107 samodzielnie. Odkryj <a href=\"https:\/\/www.dreamhost.com\/blog\/best-online-resources-learn-to-code\/\">najlepsze internetowe zasoby do nauki programowania<\/a>, aby zniwelowa\u0107 r\u00f3\u017cnic\u0119 mi\u0119dzy prototypami a systemami gotowymi do produkcji.<\/p>\n\n\n<h2 id=\"h-faqs-about-vibe-coding\" class=\"wp-block-heading\">Najcz\u0119stsze Pytania O Vibe Coding<\/h2>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-is-vibe-coding-and-how-is-it-different-from-traditional-programming\">Czym jest vibe coding i czym r\u00f3\u017cni si\u0119 od tradycyjnego programowania?<\/h3>\n\n\n<p>Vibe coding to proces tworzenia aplikacji poprzez opisywanie wymaga\u0144 w prostym j\u0119zyku angielskim dla SI, kt\u00f3ra generuje kod za Ciebie. W przeciwie\u0144stwie do tradycyjnego programowania, kt\u00f3re wymaga znajomo\u015bci j\u0119zyk\u00f3w programowania, vibe coding przesuwa uwag\u0119 na zarz\u0105dzanie produktem i intencje, a nie na r\u0119czne kodowanie.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-can-non-developers-build-production-ready-apps-using-vibe-coding\">Czy osoby nieb\u0119d\u0105ce programistami mog\u0105 tworzy\u0107 gotowe aplikacje za pomoc\u0105 vibe coding?<\/h3>\n\n\n<p>Chocia\u017c programowanie vibe pozwala osobom nieb\u0119d\u0105cym programistami na szybkie tworzenie prototyp\u00f3w funkcjonalnych aplikacji, wi\u0119kszo\u015b\u0107 kodu generowanego przez SI nie ma wystarczaj\u0105cego zabezpieczenia i niezawodno\u015bci potrzebnej do wdro\u017cenia produkcyjnego. Mimo to, prototypy stworzone metod\u0105 vibe s\u0105 \u015bwietne do weryfikacji koncepcji.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-are-the-biggest-risks-of-using-ai-generated-code-for-app-development\">Jakie s\u0105 najwi\u0119ksze ryzyka zwi\u0105zane z u\u017cyciem kodu generowanego przez SI do tworzenia aplikacji?<\/h3>\n\n\n<p>Najwa\u017cniejsze ryzyka obejmuj\u0105 wady bezpiecze\u0144stwa (takie jak brak walidacji, uwierzytelnienia, limitowania cz\u0119stotliwo\u015bci i ochrony przed atakami SQL injection), nieelastyczn\u0105 architektur\u0119 oraz narastanie funkcji, kt\u00f3re prowadz\u0105 do kruchych lub uszkodzonych system\u00f3w. Naruszenie aplikacji TEA jest przyk\u0142adem szybkiego rozwoju bez odpowiedniego przegl\u0105du bezpiecze\u0144stwa, co skutkowa\u0142o katastrofalnymi konsekwencjami.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-when-does-it-make-sense-to-use-vibe-coding-for-real-business-projects\">Kiedy ma sens u\u017cywanie vibe coding w rzeczywistych projektach biznesowych?<\/h3>\n\n\n<p>Kodowanie z wykorzystaniem Vibe jest idealne do szybkiego prototypowania, narz\u0119dzi wewn\u0119trznych, specyfikacji przedrozwojowej (zbierania wymaga\u0144) i MVP do pozyskiwania funduszy. Jednak w przypadku aplikacji skierowanych do klient\u00f3w lub przetwarzaj\u0105cych wra\u017cliwe dane, zawsze warto inwestowa\u0107 w profesjonalny rozw\u00f3j i przegl\u0105dy bezpiecze\u0144stwa.<\/p>\n\n\n<h2 id=\"h-the-bottom-line-know-your-architectural-limits\" class=\"wp-block-heading\">Podsumowanie: Poznaj Swoje Architektoniczne Ograniczenia<\/h2>\n\n\n<p>Moja babcia prowadzi sw\u00f3j uproszczony rejestrator ogrodu do u\u017cytku osobistego. Doda\u0142a r\u00f3wnie\u017c funkcjonalne analizy (przycisk na pasku nawigacyjnym wcze\u015bniej nigdzie nie prowadzi\u0142), aby zobaczy\u0107, jak jej ogr\u00f3d si\u0119 sprawuje.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1572\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics.webp\" alt=\"Panel sterowania przedstawiaj\u0105cy analizy wydajno\u015bci ro\u015blin z danymi z dw\u00f3ch sezon\u00f3w, podkre\u015blaj\u0105cy 22 zbiory bazylii wiosn\u0105 i 5,6 funta og\u00f3rk\u00f3w latem\" class=\"wp-image-77867 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-300x295.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1024x1006.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-768x755.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1536x1509.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-600x590.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1200x1179.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-730x717.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1460x1434.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-784x770.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1568x1541.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-877x862.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1572;\" \/><\/figure>\n\n\n<p>To dzia\u0142a jako aplikacja dla pojedynczego u\u017cytkownika. Je\u015bli tworzysz platform\u0119 dla wielu klient\u00f3w, mo\u017cesz nadal tworzy\u0107 prototypy, MVP itp. zakodowane wibracjami, aby rozpocz\u0105\u0107 prace. Ale poleganie wy\u0142\u0105cznie na kodowaniu wibracji bez zrozumienia, co si\u0119 dzieje, to po prostu powtarzanie historii aplikacji TEA.&nbsp;<\/p>\n\n\n<p>Vibe coding demokratyzuje tworzenie oprogramowania, wprowadzaj\u0105c jednocze\u015bnie nowe obowi\u0105zki. Mo\u017cesz zbudowa\u0107 aplikacje w 30 minut. Jednak musisz zrozumie\u0107 ograniczenia architektoniczne, implikacje bezpiecze\u0144stwa oraz wzorce zu\u017cycia token\u00f3w przed udost\u0119pnieniem ich u\u017cytkownikom.<\/p>\n\n\n<p>Przysz\u0142o\u015b\u0107 nale\u017cy do budowniczych, kt\u00f3rzy rozumiej\u0105 luk\u0119 mi\u0119dzy prototypem a produkcj\u0105.&nbsp;<\/p>\n\n\n<p>Gotowy do zbudowania swojej pierwszej aplikacji internetowej? Zacznij od <a href=\"https:\/\/www.dreamhost.com\/features\/ai-website-builder\/\">DreamHost Liftoff<\/a> dla kodowania z nap\u0119dem WordPress, kt\u00f3re obejmuje rozszerzaln\u0105 architektur\u0119, zarz\u0105dzany hosting, infrastruktur\u0119 bezpiecze\u0144stwa i sprawdzon\u0105 skalowalno\u015b\u0107 od pierwszego dnia. Buduj szybko. Rozszerzaj bezpiecznie. Miej w\u0142asno\u015b\u0107 nad swoim kodem.<\/p>\n\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-pro-services-design-877x586.webp 1x, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-pro-services-design.webp 2x\"  \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/pro-services\/design\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>Pro Services &#8211; Design<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tBeautiful Websites, Designed From Scratch\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tStand out from the crowd with a modern WordPress website that\u2019s 100% unique to you.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/pro-services\/design\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            See More                    <\/a>\n\n\t<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Moja babcia zarz\u0105dza\u0142a arkuszami kontroli zapas\u00f3w w firmie tekstylnej przez 40 lat. Oblicza z\u0142o\u017cone rabaty w g\u0142owie szybciej ni\u017c wi\u0119kszo\u015b\u0107 ludzi z kalkulatorami, ale nie ma \u017cadnego do\u015bwiadczenia w programowaniu. Kiedy zaproponowa\u0142em jej wsp\u00f3lne tworzenie aplikacji do \u015bledzenia ogrodu z wykorzystaniem AI, jej sceptycyzm by\u0142 niemal natychmiastowy. Po dw\u00f3ch godzinach mia\u0142a dzia\u0142aj\u0105c\u0105 stron\u0119 internetow\u0105 [\u2026]<\/p>\n","protected":false},"author":1058,"featured_media":77870,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"","toc_headlines":"[[\"h-first-what-is-vibe-coding\",\"Po pierwsze, czym jest Vibe Coding?\"],[\"h-what-happened-in-hour-one-simple-instructions-worked\",\"Co Si\u0119 Wydarzy\u0142o W Pierwszej Godzinie? Proste Instrukcje Zadzia\u0142a\u0142y\"],[\"h-what-happened-in-hour-two-feature-creep-became-obvious\",\"Co Wydarzy\u0142o Si\u0119 W Drugiej Godzinie? Przejawienie Rozszerzania Funkcjonalno\u015bci\"],[\"h-what-happened-in-hour-three-token-exhaustion-and-barely-functional-code-emerged\",\"Co Wydarzy\u0142o Si\u0119 W Trzeciej Godzinie? Wyczerpanie Token\u00f3w I Ledwo Funkcjonuj\u0105cy Kod\"],[\"h-how-to-vibe-code-without-experiencing-the-same-problems-we-did\",\"Jak Pracowa\u0107 Z Kodem, Nie Napotykaj\u0105c Tych Samych Problem\u00f3w Co My\"],[\"h-when-does-vibe-coding-make-business-sense\",\"Kiedy Kodowanie Vibe Ma Sens Biznesowy?\"],[\"h-faqs-about-vibe-coding\",\"Najcz\u0119stsze Pytania O Vibe Coding\"],[\"h-the-bottom-line-know-your-architectural-limits\",\"Podsumowanie: Poznaj Swoje Architektoniczne Ograniczenia\"]]","hide_toc":false,"footnotes":""},"categories":[14860],"tags":[],"class_list":["post-78752","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-pl"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o) - DreamHost Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o)\" \/>\n<meta property=\"og:description\" content=\"Moja babcia zarz\u0105dza\u0142a arkuszami kontroli zapas\u00f3w w firmie tekstylnej przez 40 lat. Oblicza z\u0142o\u017cone rabaty w g\u0142owie szybciej ni\u017c wi\u0119kszo\u015b\u0107 ludzi z kalkulatorami, ale nie ma \u017cadnego do\u015bwiadczenia w programowaniu. Kiedy zaproponowa\u0142em jej wsp\u00f3lne tworzenie aplikacji do \u015bledzenia ogrodu z wykorzystaniem AI, jej sceptycyzm by\u0142 niemal natychmiastowy. Po dw\u00f3ch godzinach mia\u0142a dzia\u0142aj\u0105c\u0105 stron\u0119 internetow\u0105 [\u2026]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-26T19:51:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-12T20:08:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"1095\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Ian Hernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ian Hernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o) - DreamHost Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/","og_locale":"en_US","og_type":"article","og_title":"Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o)","og_description":"Moja babcia zarz\u0105dza\u0142a arkuszami kontroli zapas\u00f3w w firmie tekstylnej przez 40 lat. Oblicza z\u0142o\u017cone rabaty w g\u0142owie szybciej ni\u017c wi\u0119kszo\u015b\u0107 ludzi z kalkulatorami, ale nie ma \u017cadnego do\u015bwiadczenia w programowaniu. Kiedy zaproponowa\u0142em jej wsp\u00f3lne tworzenie aplikacji do \u015bledzenia ogrodu z wykorzystaniem AI, jej sceptycyzm by\u0142 niemal natychmiastowy. Po dw\u00f3ch godzinach mia\u0142a dzia\u0142aj\u0105c\u0105 stron\u0119 internetow\u0105 [\u2026]","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2025-11-26T19:51:48+00:00","article_modified_time":"2026-01-12T20:08:33+00:00","og_image":[{"width":1460,"height":1095,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","type":"image\/webp"}],"author":"Ian Hernandez","twitter_card":"summary_large_image","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Ian Hernandez","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/"},"author":{"name":"Ian Hernandez","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96"},"headline":"Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o)","datePublished":"2025-11-26T19:51:48+00:00","dateModified":"2026-01-12T20:08:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/"},"wordCount":4195,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","articleSection":["AI"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/","name":"Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o) - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","datePublished":"2025-11-26T19:51:48+00:00","dateModified":"2026-01-12T20:08:33+00:00","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","width":1460,"height":1095,"caption":"I Taught My Grandma To Vibe Code (What Happened)"},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/nauczylem-moja-babcie-kodowac-vibe-oto-co-sie-stalo-pl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Nauczy\u0142em Moj\u0105 Babci\u0119 Kodowa\u0107 Vibe (Oto, Co Si\u0119 Sta\u0142o)"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96","name":"Ian Hernandez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","caption":"Ian Hernandez"},"description":"Ian is a Product Designer based in Los Angeles, California. He is responsible for driving brand and product design at DreamHost, developing and maintaining our internal design system, and writing frontend code when he can. In his free time, he enjoys walking his dog, learning history, and discovering new music online and irl. Connect with him on LinkedIn: https:\/\/www.linkedin.com\/in\/ianhernandez23\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/ianh\/"}]}},"lang":"pl","translations":{"pl":78752,"es":77777,"en":77844,"de":78687,"it":78701,"pt":78730,"fr":78738,"nl":78760,"uk":78899,"ru":78968},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/78752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1058"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=78752"}],"version-history":[{"count":3,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/78752\/revisions"}],"predecessor-version":[{"id":78815,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/78752\/revisions\/78815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/77870"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=78752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=78752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=78752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}