{"id":14351,"date":"2023-02-03T09:16:24","date_gmt":"2023-02-03T08:16:24","guid":{"rendered":"https:\/\/vived.io\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/"},"modified":"2023-02-03T12:51:14","modified_gmt":"2023-02-03T11:51:14","slug":"netlify-kupilo-gatsby-frontend-weekly-vol-123","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/","title":{"rendered":"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123"},"content":{"rendered":"\n<h2 id=\"1-netlify-przejmuje-gatsby\" data-num=1>1. Netlify przejmuje Gatsby<\/h2>\n\n\n\n<p>Dewelopment Gatsby rozpocz\u0105\u0142 si\u0119 w 2015 roku i po prawie dw\u00f3ch latach rozwoju doczekali\u015bmy si\u0119 stablilnej wersji 1.0. W swoim czasie Gatsby by\u0142 jednym z pierwszych framework\u00f3w, kt\u00f3ry pozwala\u0142 na kompilacj\u0119 Reacta do statycznego HTMLa. Powiedzie\u0107, \u017ce Gatsby zdoby\u0142 pewn\u0105 popularno\u015b\u0107 to tak jakby nie powiedzie\u0107 nic. Spo\u0142eczno\u015b\u0107 oszala\u0142a na jego punkcie. Do dzi\u015b Gatsby pozostaje jednym z najbardziej rozpoznawalnych framework\u00f3w, o kt\u00f3rym s\u0142ysza\u0142 niemal ka\u017cdy React deweloper.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"501\" height=\"498\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-2.jpeg\" alt=\"\" class=\"wp-image-14311\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-2.jpeg 501w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-2-300x298.jpeg 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-2-150x150.jpeg 150w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" \/><\/figure><\/div>\n\n\n<p>Ostatnie lata nie by\u0142y jednak \u0142atwe dla Gatsbiego. Konkurenci tacy jak Next.js czy Remix zaprezentowali znacznie bardziej z\u0142o\u017cone strategie renderowania po stronie serwera. Oczywi\u015bcie Gatsby nie pozostawa\u0142 bezczynny. W pa\u017adzierniku 2021 roku <a href=\"https:\/\/www.gatsbyjs.com\/blog\/whats-new-in-gatsby-4\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ukaza\u0142 si\u0119 Gatsby 4.0,<\/a> kt\u00f3ry wprowadza\u0142 takie funkcje jak Deffered Static Generation czy renderowanie na \u017c\u0105danie. W listopadzie 2022 roku <a href=\"https:\/\/www.gatsbyjs.com\/blog\/gatsby-5\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ukaza\u0142 si\u0119 Gatsby 5.0<\/a>. kt\u00f3ry przyni\u00f3s\u0142 eksperymentalne wsparcie dla Partial Hydration i React Server Components. Niestety, w tym momencie przepa\u015b\u0107 mi\u0119dzy Next.js by\u0142a ju\u017c bardzo du\u017ca. Z moich obserwacji wynika te\u017c, \u017ce Gatsby wci\u0105\u0107 walczy o pozbycie si\u0119 etykiety prostego generatora statycznych stron.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-41.jpeg\" alt=\"\" class=\"wp-image-14313\" width=\"708\" height=\"398\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-41.jpeg 888w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-41-300x169.jpeg 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-41-768x432.jpeg 768w\" sizes=\"auto, (max-width: 708px) 100vw, 708px\" \/><figcaption class=\"wp-element-caption\">A Gatsby jako pierwszy znalaz\u0142 z\u0142oto&#8230;<\/figcaption><\/figure><\/div>\n\n\n<p>Szczerze m\u00f3wi\u0105c, bezpo\u015brednie por\u00f3wnanie Gatsby do Next.js jest troch\u0119 niesprawiedliwe. Zesp\u00f3\u0142 rozwijaj\u0105cy Gatsby zbudowa\u0142 kilka interesuj\u0105cy narz\u0119dzi wok\u00f3\u0142 swojego frameworku. <a href=\"https:\/\/www.gatsbyjs.com\/products\/valhalla-content-hub\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Projekt Valhalla<\/a> jest tego \u015bwietnym przyk\u0142adem. Ma on zapewni\u0107 warstw\u0119 danych nad wieloma systemami CMS i wyeksponowa\u0107 j\u0105 poprzez sp\u00f3jne GraphQL API. W ten spos\u00f3b mo\u017cemy ca\u0142kowicie oddzieli\u0107 CMS od frontendu. Chcesz zmigrowa\u0107 sw\u00f3j CMS? \u017badne zmiany na froncie nie s\u0105 wymagane! Chcesz zmieni\u0107 framework na frontendzie? \u017badne zmiany w warstwie pobieraniu danych nie s\u0105 wymagane! Vhcesz stopniowo migrowa\u0107 do innego CMS? R\u00f3wnie\u017c nie ma problemu.<\/p>\n\n\n\n<p>Wszystkie opisane powy\u017cej osi\u0105gni\u0119cia nie by\u0142yby mo\u017cliwe <a href=\"https:\/\/www.crunchbase.com\/organization\/gatsby-e828\/company_financials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">bez odpowiedniego finansowania<\/a>. W 2018 roku powsta\u0142o  Gatsby Inc. Na start uda\u0142o si\u0119 zgromadzi\u0107 od inwestor\u00f3w prawie 4M$. W kolejnych latach Gatsby Inc. pozyska\u0142o r\u00f3wnie\u017c dalsze finansowanie z serii A (15M$) oraz serii B (28M$). Podsumowuj\u0105c, firma pozyska\u0142a prawie 40M$ na budow\u0119 czego\u015b, co nazwano content-mesh, a co p\u00f3\u017aniej sta\u0142o si\u0119 projektem Valhalla.<\/p>\n\n\n\n<p>W zesz\u0142ym tygodniu og\u0142oszono, \u017ce <a href=\"https:\/\/www.gatsbyjs.com\/blog\/gatsby-is-joining-netlify\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Gatsby Inc. zosta\u0142o przej\u0119te przez Netlify<\/a>. Je\u015bli jeszcze nie s\u0142ysza\u0142e\u015b o Netlify, jest to platforma kt\u00f3ra zapewnia hosting stron internetowych, funkcjonalno\u015bci Continous Integration i Continous Deployment oraz Serverless Functions. Nadrz\u0119dn\u0105 misj\u0105 Netlify jest u\u0142atwienie programistom budowania, wdra\u017cania i zarz\u0105dzania ich aplikacjam poprzez integracj\u0119 z szeregiem zewn\u0119trzych us\u0142ug. Netlify pozyska\u0142 te\u017c ca\u0142kiem spore finansowanie &#8211; <a href=\"https:\/\/www.crunchbase.com\/organization\/netlify\/company_financials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ponad 200M$ w 7 rundach<\/a>.<\/p>\n\n\n\n<p>Netlify ma d\u0142ug\u0105 histori\u0119 inwestowania w technologie Open Source powi\u0105zane z JAMStack. <a href=\"https:\/\/www.11ty.dev\/blog\/eleventy-oss\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">W lutym 2022 roku zatrudnili Zacha Leathermana<\/a> do pracy w pe\u0142nym wymiarze godzin nad jego generatorem stron statycznych o nazwie Eleventy. <a href=\"https:\/\/dev.to\/ryansolid\/when-netlify-asks-you-to-full-time-oss-you-say-yes-5ccf\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">W maju 2022 roku zatrudnili Ryana Carniato<\/a> do pe\u0142noetatowej pracy nad SolidJS &#8211; frameworkiem podobnym do Reacta, ale dzia\u0142aj\u0105cym bez VirtualDOM imaj\u0105cym  bardzo ciekawe podej\u015bcie do renderowania po stronie serwera.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"747\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-3.jpeg\" alt=\"\" class=\"wp-image-14319\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-3.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-3-201x300.jpeg 201w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Na pierwszy rzut oka mo\u017cna pomy\u015ble\u0107, \u017ce Gatsby to tylko kolejny framework w portfolio Netlify. Cho\u0107 Netlify obiecuje, \u017ce rozw\u00f3j Gatsby b\u0119dzie kontynuowany, wydaje mi si\u0119, \u017ce przej\u0119cie to dotyczy\u0142o bardziej Gatsby Cloud i Project Valhalla. Niestety, kwota transakcji nie zosta\u0142a publicznie ujawniona.<\/p>\n\n\n\n<p>Na zako\u0144czenie tej cz\u0119\u015bci chcia\u0142bym podzieli\u0107 si\u0119 z Wami moj\u0105 ma\u0142\u0105 obserwacj\u0105. Ma\u0142e startupy budowane w ostatnich latach wok\u00f3\u0142 technologii Open Source powoli zaczynaj\u0105 szuka\u0107 parasola w postaci wi\u0119kszych i lepiej ugruntownaych firm. Wystarczy spojrze\u0107 na <a href=\"https:\/\/shopify.engineering\/remix-joins-shopify\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie Remix przez Shopify<\/a>, <a href=\"https:\/\/www.outsystems.com\/news\/outsystems-acquires-ionic\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie Ionic przez OutSystems<\/a>, czy <a href=\"https:\/\/vercel.com\/blog\/vercel-acquires-turborepo\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie TurboRepo przez Vercel<\/a>. Wszystkie te przej\u0119cia maj\u0105 sporo sensu, ale gdzie\u015b w g\u0142\u0119bi duszy czuj\u0119, \u017ce \u017cadne z nich nie mia\u0142oby miejsca kilka lat temu, gdy globalna gospodarka kwit\u0142a. Z drugiej strony, nie jestem ekonomist\u0105 ani badaczem rynku, wi\u0119c nie przyk\u0142adajcie do mojej opinii zbyt du\u017cej wagi.<\/p>\n\n\n\n<h2 id=\"2-przyszlosc-create-react-app\" data-num=2>2. Przysz\u0142o\u015bc Create React App<\/h2>\n\n\n\n<p>Create React App to narz\u0119dzie CLI, kt\u00f3re umo\u017cliwia skonfigurowanie nowoczesnej aplikacji internetowej poprzez uruchomienie jednego polecenia (nie bijcie &#8211; to cytat z oficjalnej strony CRA). Niestety, przez ostatnie kilka lat narz\u0119dzie zosta\u0142o mocno porzucone. Oko\u0142o 2 tygodnie temu popularny celebryta JavaScript Theo Browne tweetowa\u0142 tak:<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">Should I file a PR on the React docs to remove the Create React App recommendation?<\/p>&mdash; Theo &#8211; t3.gg (@t3dotgg) <a href=\"https:\/\/twitter.com\/t3dotgg\/status\/1616933234478309378?ref_src=twsrc%5Etfw\">January 21, 2023<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>Tweet dosta\u0142 tak du\u017co reakcji, \u017ce Theo naprawd\u0119 postanowi\u0142 otworzy\u0107<a href=\"https:\/\/github.com\/reactjs\/reactjs.org\/pull\/5487\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"> Pull Request do repozytorium React<\/a> zmieniaj\u0105c rekomendacj\u0119 z Create React App na Vite. Wywo\u0142a\u0142o to ogromn\u0105 fal\u0119 dyskusji.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/giphy-2.gif\" alt=\"\" class=\"wp-image-14315\" width=\"365\" height=\"365\"\/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>&#8222;Theo zrobi\u0142 ten PR tylko po to, \u017ceby zyska\u0107 wi\u0119cej obserwator\u00f3w. Wszystkie poruszane tu kwestie zosta\u0142y ju\u017c om\u00f3wione gdzie indziej&#8221;<\/li>\n\n\n\n<li>&#8222;Create React App nie jest najlepszym narz\u0119dziem, ale pomaga pocz\u0105tkuj\u0105cym wykona\u0107 prac\u0119 bez wchodzenia w szczeg\u00f3\u0142y skomplkowancy narz\u0119dzi&#8221;<\/li>\n\n\n\n<li>&#8222;Zesp\u00f3\u0142 React nie powinien wybiera\u0107 swoich faworyt\u00f3w &#8211; Rollup to r\u00f3wnie dobra propozycja jak Vite, a Remix to dobra alternatywa dla Next.js&#8221;<\/li>\n\n\n\n<li>&#8222;Dokumentacja React powinna by\u0107 prosta dla zupe\u0142nie pocz\u0105tkuj\u0105cych, kt\u00f3rzy nie wiedz\u0105 jeszcze, czym s\u0105 narz\u0119dzia do budowania aplikacji czy meta frameworki&#8221;<\/li>\n\n\n\n<li>&#8222;React nie powinien poleca\u0107 przestarza\u0142ych narz\u0119dzi. \u017badna rekomendacja jest lepsza od przestarza\u0142ej rekomendacji&#8221;<\/li>\n<\/ul>\n\n\n\n<p>Jak wida\u0107, problem nie jest prosty, a rozwi\u0105zanie nie jest oczywiste. W tym tygodniu Dan Abramov (cz\u0142onek zespo\u0142u React Core i facet stoj\u0105cy za React Hoosk i React Server Components) postanowi\u0142 zabra\u0107 g\u0142os. <a href=\"https:\/\/github.com\/reactjs\/reactjs.org\/pull\/5487#issuecomment-1409720741\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Jego komentarz m\u00f3g\u0142by z \u0142atwo\u015bci\u0105 s\u0142u\u017cy\u0107 za RFC lub by\u0107 osobnym wpisem na blogu.<\/a> Przechodzi on przez histori\u0119 Create React App, wymienia wszystkie jego problemy i proponuje r\u00f3\u017cne ich rozwi\u0105zania. Je\u015bli masz troch\u0119 wolnego czasu to naprawd\u0119 polecam przeczyta\u0107. TLDR dla wszystkich wyj\u0105tkowo zaj\u0119tych. Create React App stanie si\u0119 &#8222;App Launcherem&#8221; zadaj\u0105cym deweloperom pytania o poszczeg\u00f3lne narz\u0119dzia. Obecna implementacja b\u0119dzie dost\u0119pna jako opcja &#8222;klasyczna&#8221; i zaoferuje pocz\u0105tkuj\u0105cym \u0142atwy punkt startowy. W nadchodz\u0105cych miesi\u0105cach mo\u017cemy si\u0119 spodziewa\u0107 pe\u0142nego szczeg\u00f3\u0142\u00f3w RFC.<\/p>\n\n\n\n<h2 id=\"3-evan-you-opowiada-o-vue-w-2023\" data-num=3>3. Evan You opowiada o Vue w 2023<\/h2>\n\n\n\n<p>Zacznijmy od tego, \u017ce <a href=\"https:\/\/vuejsnation.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">nagrania z Vue.js Nation s\u0105 ju\u017c publicznie dost\u0119pne w sieci<\/a>! Je\u015bli jeste\u015b Vue Developerem to na pewno znajdziesz tu co\u015b dla siebie. Ja napomkn\u0119 tu tylko o kilku prelekcjach, kt\u00f3re rzuci\u0142y mi si\u0119 w oczy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8222;You\u2019re probably using Lighthouse wrong: How we misuse most common tool to measure web performance?&#8221; by Filip Rakowski<\/li>\n\n\n\n<li>&#8222;Decoding web accessibility through testing&#8221; by Anuradha Kumari<\/li>\n\n\n\n<li>&#8222;Let&#8217;s talk about Security in Vue &amp; Nuxt&#8221; by Jakub Andrzejewski<\/li>\n<\/ul>\n\n\n\n<p>Nie jeste\u015bmy tutaj jednak, aby porozmawia\u0107 o Vue.js Nation i chcia\u0142bym skupi\u0107 si\u0119 na keynote  od Evana You na temat Vue w 2023 roku. Zacznijmy od tego, \u017ce <strong>\u017cegnamy si\u0119 z Reactivity Transform<\/strong>. Je\u015bli nie s\u0142ysza\u0142e\u015b wcze\u015bniej tego terminu, Reactivity Transform by\u0142 spor\u0105 paczk\u0105 usprawnie\u0144 do Reactivity API. Zasadniczo wszystkie metody, takie jak <code>ref<\/code> czy <code>computed<\/code>, mia\u0142y otrzyma\u0107 wersj\u0119 poprzedzon\u0105 $, kt\u00f3ra nie wymaga\u0142aby wywo\u0142a\u0144 <code>.value<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Without Reactivity Transform\n&lt;script setup&gt;\nimport { ref } from &#039;vue&#039;\n\nlet count = ref(0)\n\nconsole.log(count.value)\n\nfunction increment() {\n  count.value++\n}\n&lt;\/script&gt;\n\n&lt;template&gt;\n  &lt;button @click=&quot;increment&quot;&gt;{{ count }}&lt;\/button&gt;\n&lt;\/template&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ With Reactivity Transform\n&lt;script setup&gt;\nlet count = $ref(0)\n\nconsole.log(count)\n\nfunction increment() {\n  count++\n}\n&lt;\/script&gt;\n\n&lt;template&gt;\n  &lt;button @click=&quot;increment&quot;&gt;{{ count }}&lt;\/button&gt;\n&lt;\/template&gt;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\"><p lang=\"zxx\" dir=\"ltr\"><a href=\"https:\/\/t.co\/Ftq1q4tFBK\">pic.twitter.com\/Ftq1q4tFBK<\/a><\/p>&mdash; Kevin Deng \u2022 \u4e09\u54b2\u667a\u5b50 (@sanxiaozhizi) <a href=\"https:\/\/twitter.com\/sanxiaozhizi\/status\/1618261882883969024?ref_src=twsrc%5Etfw\">January 25, 2023<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>Po zebraniu opinii od spo\u0142eczno\u015bci zesp\u00f3\u0142 Vue postanowi\u0142 zrezygnowa\u0107 z Reactivity Transform. Wielu osobom nie spodoba\u0142a si\u0119 nowa funkcjonalno\u015b\u0107, co skolei wywo\u0142a\u0142o obawy o potencjaln\u0105 fragmentacj\u0119 spo\u0142eczno\u015bci. Je\u015bli ju\u017c u\u017cywasz Reactivity Transform nie masz si\u0119 jednak czym martwi\u0107. Istniej\u0105ca implementacja zostanie wyeksportowana do osobnego pakietu\/pluginu. Eksperymentalne API b\u0119dzie wspierane w Vue Core a\u017c do Vue 3.4. Na koniec warto wspomnie\u0107 jeszcze, \u017ce jest jedna funkcja z Reactivity Transform, kt\u00f3ra zostanie wydzielona i wyl\u0105duje w Vue 3.3. Jest ni\u0105 <strong>Reactive Props Destructure<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.2\nconst props = withDefaults(\n  defineProps({ foo: number }&gt;(),\n  { foo: 1 }\n)\n\nprops.foo<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.3 (Reactive Props Descructure)\nconst {\n  foo = 1\n} = defineProps({ foo: number }&gt;();\n\nfoo \/\/stays reacitve!<\/code><\/pre>\n\n\n\n<p><strong>W pierwszym kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue chce skupi\u0107 si\u0119 na <strong>naprawianiu b\u0142\u0119d\u00f3w i dostarczeniu Vue 3.3<\/strong>. Og\u00f3lnie rzecz bior\u0105c, w 2023 roku zesp\u00f3\u0142 chcia\u0142by dostarcza\u0107 wi\u0119cej mniejszych i bardziej inkrementalnych wyda\u0144. Spore op\u00f3\u017anienie Vue 3.3 ujawni\u0142o problemy z obecnym procesem releas\u00f3w i w 2024 Vue chcia\u0142oby ich unikn\u0105\u0107.<\/p>\n\n\n\n<p><strong>W drugim kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue skupi si\u0119 na <strong>usprawnieniach renderowania po stronie serwera<\/strong>. Jedyn\u0105 wspomnian\u0105 na ten moment funkcjonalno\u015bci\u0105 jest Lazy Hydration. Niestety, aby uzyska\u0107 wi\u0119cej szczeg\u00f3\u0142\u00f3w na ten temat, b\u0119dziemy musieli poczeka\u0107 na RFC.<\/p>\n\n\n\n<p><strong>W trzecim i czwartym kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue chce si\u0119 skupi\u0107 na <strong>Vapor Mode<\/strong> &#8211; kompilatorze inspirowanym Solid. Wykorzyszta on format Vue Single File i skompiluje go do bardziej optymalnego formatu. W efekcie nasz kod b\u0119dzie szybszy, b\u0119dzie zu\u017cywa mniej pami\u0119ci i b\u0119dzie wymaga mniej kodu w runtime (przynajmniej w por\u00f3wnaniu do obecnego rozwiazania opartego na Virtual DOM). Przed Vapor Mode jest jeszcze d\u0142uga droga, ale na pewno us\u0142yszycie o nim w niejednym z naszych weekly.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"431\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-4.jpeg\" alt=\"\" class=\"wp-image-14317\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-4.jpeg 579w, https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-4-300x223.jpeg 300w\" sizes=\"auto, (max-width: 579px) 100vw, 579px\" \/><\/figure><\/div>\n\n\n<h2 id=\"bonus-dont-use-return-types\" data-num=4>Bonus: Don&#8217;t use return types (?)<\/h2>\n\n\n\n<p>Przez ostatnie kilka dni w mojej ba\u0144ce Twittera m\u00f3wi si\u0119 o jednej rzeczy &#8211; o filmie Matta Pottocka &#8222;Don&#8217;t use return types, unless&#8230;&#8221;. Teza jest do\u015b\u0107 prosta: Je\u015bli twoja funkcja ma tylko jeden <code>return<\/code>, to nie powiniene\u015b dla niej deklarowa\u0107 typ\u00f3w i pozwoli\u0107 TypeScriptowi zrobi\u0107 to za Ciebie.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"Should you use return types?\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/nwSe95uFN8E?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p>Spo\u0142eczno\u015b\u0107 Twittera wybuch\u0142a. Niekt\u00f3rzy zupe\u0142nie nie zgadzali si\u0119 z postawion\u0105 tez\u0105 i sugerowali, \u017ce zawsze pownni\u015bmy deklarowa\u0107 zwracane typy:<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">I hate this.<br><br>I hate this so much.  <br><br>Not specifying a return type is an anti pattern that people who copium&#39;ing hard with typescript<br><br>1. if you don&#39;t say what you are returning you can return the wrong thing and typescript is fine with it<br><br>&#8230; (next tweet) <a href=\"https:\/\/t.co\/qw3f3SJAfn\">https:\/\/t.co\/qw3f3SJAfn<\/a><\/p>&mdash; ThePrimeagen (@ThePrimeagen) <a href=\"https:\/\/twitter.com\/ThePrimeagen\/status\/1620808334562697217?ref_src=twsrc%5Etfw\">February 1, 2023<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>Inni poszli o krok dalej i rozszerzyli tez\u0119 do: &#8222;Nigdy nie deklaruj zwracanych typ\u00f3w&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">Hate seeing good engs post Ls like this <a href=\"https:\/\/t.co\/LZL8PuRJrP\">https:\/\/t.co\/LZL8PuRJrP<\/a><\/p>&mdash; Theo &#8211; t3.gg (@t3dotgg) <a href=\"https:\/\/twitter.com\/t3dotgg\/status\/1620865488569118720?ref_src=twsrc%5Etfw\">February 1, 2023<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>Je\u015bli chcecie zanurzy\u0107 si\u0119 troch\u0119 bardziej w temacie, to polecam fragment poni\u017cszego streama na kt\u00f3rym Theo i Prime wdaj\u0105 si\u0119 w prawie godzinn\u0105 dyskusj\u0119 na temat preferowanego rozwi\u0105zania.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"STREAM VOD: Theo VS Prime + TWO BIG ANNOUNCEMENTS\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/bJc9UYva46I?start=1488&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p>Niekt\u00f3rzy z was mog\u0105 mie\u0107 wra\u017cenie, \u017ce takie dyskusje s\u0105 nieco toksyczne. Ja osobi\u015bcie czuj\u0119, \u017ce \u015bledzenie tej dramy nauczy\u0142o mnie troch\u0119 o TypeScript i jeszcze wi\u0119cej o perspektywach innych ludzi. No i bez tej dramy nie byliby\u015bmy \u015bwiadkami pierwszej TypeScriptowej bitwy na memy.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\"><p lang=\"zxx\" dir=\"ltr\"><a href=\"https:\/\/t.co\/4JE6Nv9La4\">https:\/\/t.co\/4JE6Nv9La4<\/a> <a href=\"https:\/\/t.co\/BACY9fppVY\">pic.twitter.com\/BACY9fppVY<\/a><\/p>&mdash; Theo &#8211; t3.gg (@t3dotgg) <a href=\"https:\/\/twitter.com\/t3dotgg\/status\/1620887210521415680?ref_src=twsrc%5Etfw\">February 1, 2023<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Gatsby zosta\u0142o przej\u0119te przez Netlify! Cho\u0107 mo\u017ce si\u0119 wydawa\u0107, \u017ce ta transakcja dotyczy frameworka Server Side Rendering, to jednak prawda le\u017cy gdzie indziej.<\/p>\n","protected":false},"author":12,"featured_media":14302,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273],"tags":[],"class_list":["post-14351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-frontend-pl"],"acf":{"estimated_reading_time":"8","feature_image_visible":false,"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png","feature_image_blog":{"ID":14304,"id":14304,"title":"grid_0 (1)","filename":"grid_0-1.png","filesize":1600939,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1.png","link":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/grid_0-1-2-2\/","alt":"","author":"12","description":"","caption":"","name":"grid_0-1-2-2","status":"inherit","uploaded_to":14351,"date":"2023-02-02 15:03:25","modified":"2023-02-03 10:54:06","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1536,"height":1024,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1-150x150.png","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1-300x200.png","medium-width":300,"medium-height":200,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1-768x512.png","medium_large-width":768,"medium_large-height":512,"large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1-1024x683.png","large-width":1024,"large-height":683,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1.png","1536x1536-width":1536,"1536x1536-height":1024,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1.png","2048x2048-width":1536,"2048x2048-height":1024,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1.png","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":200,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1.png","gform-image-choice-md-width":400,"gform-image-choice-md-height":267,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/grid_0-1.png","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":400}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123 - Vived<\/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:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123 - Vived\" \/>\n<meta property=\"og:description\" content=\"Gatsby zosta\u0142o przej\u0119te przez Netlify! Cho\u0107 mo\u017ce si\u0119 wydawa\u0107, \u017ce ta transakcja dotyczy frameworka Server Side Rendering, to jednak prawda le\u017cy gdzie indziej.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-03T08:16:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-03T11:51:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tomasz Borowicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123\",\"datePublished\":\"2023-02-03T08:16:24+00:00\",\"dateModified\":\"2023-02-03T11:51:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/\"},\"wordCount\":1684,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/\",\"url\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/\",\"name\":\"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png\",\"datePublished\":\"2023-02-03T08:16:24+00:00\",\"dateModified\":\"2023-02-03T11:51:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\",\"name\":\"Tomasz Borowicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"caption\":\"Tomasz Borowicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123 - Vived","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:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/","og_locale":"pl_PL","og_type":"article","og_title":"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123 - Vived","og_description":"Gatsby zosta\u0142o przej\u0119te przez Netlify! Cho\u0107 mo\u017ce si\u0119 wydawa\u0107, \u017ce ta transakcja dotyczy frameworka Server Side Rendering, to jednak prawda le\u017cy gdzie indziej.","og_url":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/","og_site_name":"Vived","article_published_time":"2023-02-03T08:16:24+00:00","article_modified_time":"2023-02-03T11:51:14+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png","type":"image\/png"}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123","datePublished":"2023-02-03T08:16:24+00:00","dateModified":"2023-02-03T11:51:14+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/"},"wordCount":1684,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png","articleSection":["Frontend"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/","url":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/","name":"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png","datePublished":"2023-02-03T08:16:24+00:00","dateModified":"2023-02-03T11:51:14+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/Frontend-Weekly-1200x628_V2.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/netlify-kupilo-gatsby-frontend-weekly-vol-123\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Netlify kupi\u0142o Gatsby | Frontend Weekly vol. 123"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb","name":"Tomasz Borowicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","caption":"Tomasz Borowicz"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Netlify przejmuje Gatsby<\/h2>\n","innerContent":["\n<h2>1. Netlify przejmuje Gatsby<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dewelopment Gatsby rozpocz\u0105\u0142 si\u0119 w 2015 roku i po prawie dw\u00f3ch latach rozwoju doczekali\u015bmy si\u0119 stablilnej wersji 1.0. W swoim czasie Gatsby by\u0142 jednym z pierwszych framework\u00f3w, kt\u00f3ry pozwala\u0142 na kompilacj\u0119 Reacta do statycznego HTMLa. Powiedzie\u0107, \u017ce Gatsby zdoby\u0142 pewn\u0105 popularno\u015b\u0107 to tak jakby nie powiedzie\u0107 nic. Spo\u0142eczno\u015b\u0107 oszala\u0142a na jego punkcie. Do dzi\u015b Gatsby pozostaje jednym z najbardziej rozpoznawalnych framework\u00f3w, o kt\u00f3rym s\u0142ysza\u0142 niemal ka\u017cdy React deweloper.<\/p>\n","innerContent":["\n<p>Dewelopment Gatsby rozpocz\u0105\u0142 si\u0119 w 2015 roku i po prawie dw\u00f3ch latach rozwoju doczekali\u015bmy si\u0119 stablilnej wersji 1.0. W swoim czasie Gatsby by\u0142 jednym z pierwszych framework\u00f3w, kt\u00f3ry pozwala\u0142 na kompilacj\u0119 Reacta do statycznego HTMLa. Powiedzie\u0107, \u017ce Gatsby zdoby\u0142 pewn\u0105 popularno\u015b\u0107 to tak jakby nie powiedzie\u0107 nic. Spo\u0142eczno\u015b\u0107 oszala\u0142a na jego punkcie. Do dzi\u015b Gatsby pozostaje jednym z najbardziej rozpoznawalnych framework\u00f3w, o kt\u00f3rym s\u0142ysza\u0142 niemal ka\u017cdy React deweloper.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14311,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-2.jpeg\" alt=\"\" class=\"wp-image-14311\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-2.jpeg\" alt=\"\" class=\"wp-image-14311\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatnie lata nie by\u0142y jednak \u0142atwe dla Gatsbiego. Konkurenci tacy jak Next.js czy Remix zaprezentowali znacznie bardziej z\u0142o\u017cone strategie renderowania po stronie serwera. Oczywi\u015bcie Gatsby nie pozostawa\u0142 bezczynny. W pa\u017adzierniku 2021 roku <a href=\"https:\/\/www.gatsbyjs.com\/blog\/whats-new-in-gatsby-4\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ukaza\u0142 si\u0119 Gatsby 4.0,<\/a> kt\u00f3ry wprowadza\u0142 takie funkcje jak Deffered Static Generation czy renderowanie na \u017c\u0105danie. W listopadzie 2022 roku <a href=\"https:\/\/www.gatsbyjs.com\/blog\/gatsby-5\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ukaza\u0142 si\u0119 Gatsby 5.0<\/a>. kt\u00f3ry przyni\u00f3s\u0142 eksperymentalne wsparcie dla Partial Hydration i React Server Components. Niestety, w tym momencie przepa\u015b\u0107 mi\u0119dzy Next.js by\u0142a ju\u017c bardzo du\u017ca. Z moich obserwacji wynika te\u017c, \u017ce Gatsby wci\u0105\u0107 walczy o pozbycie si\u0119 etykiety prostego generatora statycznych stron.<\/p>\n","innerContent":["\n<p>Ostatnie lata nie by\u0142y jednak \u0142atwe dla Gatsbiego. Konkurenci tacy jak Next.js czy Remix zaprezentowali znacznie bardziej z\u0142o\u017cone strategie renderowania po stronie serwera. Oczywi\u015bcie Gatsby nie pozostawa\u0142 bezczynny. W pa\u017adzierniku 2021 roku <a href=\"https:\/\/www.gatsbyjs.com\/blog\/whats-new-in-gatsby-4\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ukaza\u0142 si\u0119 Gatsby 4.0,<\/a> kt\u00f3ry wprowadza\u0142 takie funkcje jak Deffered Static Generation czy renderowanie na \u017c\u0105danie. W listopadzie 2022 roku <a href=\"https:\/\/www.gatsbyjs.com\/blog\/gatsby-5\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ukaza\u0142 si\u0119 Gatsby 5.0<\/a>. kt\u00f3ry przyni\u00f3s\u0142 eksperymentalne wsparcie dla Partial Hydration i React Server Components. Niestety, w tym momencie przepa\u015b\u0107 mi\u0119dzy Next.js by\u0142a ju\u017c bardzo du\u017ca. Z moich obserwacji wynika te\u017c, \u017ce Gatsby wci\u0105\u0107 walczy o pozbycie si\u0119 etykiety prostego generatora statycznych stron.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14313,"width":708,"height":398,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-41.jpeg\" alt=\"\" class=\"wp-image-14313\" width=\"708\" height=\"398\"\/><figcaption class=\"wp-element-caption\">A Gatsby jako pierwszy znalaz\u0142 z\u0142oto...<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-41.jpeg\" alt=\"\" class=\"wp-image-14313\" width=\"708\" height=\"398\"\/><figcaption class=\"wp-element-caption\">A Gatsby jako pierwszy znalaz\u0142 z\u0142oto...<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Szczerze m\u00f3wi\u0105c, bezpo\u015brednie por\u00f3wnanie Gatsby do Next.js jest troch\u0119 niesprawiedliwe. Zesp\u00f3\u0142 rozwijaj\u0105cy Gatsby zbudowa\u0142 kilka interesuj\u0105cy narz\u0119dzi wok\u00f3\u0142 swojego frameworku. <a href=\"https:\/\/www.gatsbyjs.com\/products\/valhalla-content-hub\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Projekt Valhalla<\/a> jest tego \u015bwietnym przyk\u0142adem. Ma on zapewni\u0107 warstw\u0119 danych nad wieloma systemami CMS i wyeksponowa\u0107 j\u0105 poprzez sp\u00f3jne GraphQL API. W ten spos\u00f3b mo\u017cemy ca\u0142kowicie oddzieli\u0107 CMS od frontendu. Chcesz zmigrowa\u0107 sw\u00f3j CMS? \u017badne zmiany na froncie nie s\u0105 wymagane! Chcesz zmieni\u0107 framework na frontendzie? \u017badne zmiany w warstwie pobieraniu danych nie s\u0105 wymagane! Vhcesz stopniowo migrowa\u0107 do innego CMS? R\u00f3wnie\u017c nie ma problemu.<\/p>\n","innerContent":["\n<p>Szczerze m\u00f3wi\u0105c, bezpo\u015brednie por\u00f3wnanie Gatsby do Next.js jest troch\u0119 niesprawiedliwe. Zesp\u00f3\u0142 rozwijaj\u0105cy Gatsby zbudowa\u0142 kilka interesuj\u0105cy narz\u0119dzi wok\u00f3\u0142 swojego frameworku. <a href=\"https:\/\/www.gatsbyjs.com\/products\/valhalla-content-hub\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Projekt Valhalla<\/a> jest tego \u015bwietnym przyk\u0142adem. Ma on zapewni\u0107 warstw\u0119 danych nad wieloma systemami CMS i wyeksponowa\u0107 j\u0105 poprzez sp\u00f3jne GraphQL API. W ten spos\u00f3b mo\u017cemy ca\u0142kowicie oddzieli\u0107 CMS od frontendu. Chcesz zmigrowa\u0107 sw\u00f3j CMS? \u017badne zmiany na froncie nie s\u0105 wymagane! Chcesz zmieni\u0107 framework na frontendzie? \u017badne zmiany w warstwie pobieraniu danych nie s\u0105 wymagane! Vhcesz stopniowo migrowa\u0107 do innego CMS? R\u00f3wnie\u017c nie ma problemu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wszystkie opisane powy\u017cej osi\u0105gni\u0119cia nie by\u0142yby mo\u017cliwe <a href=\"https:\/\/www.crunchbase.com\/organization\/gatsby-e828\/company_financials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">bez odpowiedniego finansowania<\/a>. W 2018 roku powsta\u0142o  Gatsby Inc. Na start uda\u0142o si\u0119 zgromadzi\u0107 od inwestor\u00f3w prawie 4M$. W kolejnych latach Gatsby Inc. pozyska\u0142o r\u00f3wnie\u017c dalsze finansowanie z serii A (15M$) oraz serii B (28M$). Podsumowuj\u0105c, firma pozyska\u0142a prawie 40M$ na budow\u0119 czego\u015b, co nazwano content-mesh, a co p\u00f3\u017aniej sta\u0142o si\u0119 projektem Valhalla.<\/p>\n","innerContent":["\n<p>Wszystkie opisane powy\u017cej osi\u0105gni\u0119cia nie by\u0142yby mo\u017cliwe <a href=\"https:\/\/www.crunchbase.com\/organization\/gatsby-e828\/company_financials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">bez odpowiedniego finansowania<\/a>. W 2018 roku powsta\u0142o  Gatsby Inc. Na start uda\u0142o si\u0119 zgromadzi\u0107 od inwestor\u00f3w prawie 4M$. W kolejnych latach Gatsby Inc. pozyska\u0142o r\u00f3wnie\u017c dalsze finansowanie z serii A (15M$) oraz serii B (28M$). Podsumowuj\u0105c, firma pozyska\u0142a prawie 40M$ na budow\u0119 czego\u015b, co nazwano content-mesh, a co p\u00f3\u017aniej sta\u0142o si\u0119 projektem Valhalla.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W zesz\u0142ym tygodniu og\u0142oszono, \u017ce <a href=\"https:\/\/www.gatsbyjs.com\/blog\/gatsby-is-joining-netlify\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Gatsby Inc. zosta\u0142o przej\u0119te przez Netlify<\/a>. Je\u015bli jeszcze nie s\u0142ysza\u0142e\u015b o Netlify, jest to platforma kt\u00f3ra zapewnia hosting stron internetowych, funkcjonalno\u015bci Continous Integration i Continous Deployment oraz Serverless Functions. Nadrz\u0119dn\u0105 misj\u0105 Netlify jest u\u0142atwienie programistom budowania, wdra\u017cania i zarz\u0105dzania ich aplikacjam poprzez integracj\u0119 z szeregiem zewn\u0119trzych us\u0142ug. Netlify pozyska\u0142 te\u017c ca\u0142kiem spore finansowanie - <a href=\"https:\/\/www.crunchbase.com\/organization\/netlify\/company_financials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ponad 200M$ w 7 rundach<\/a>.<\/p>\n","innerContent":["\n<p>W zesz\u0142ym tygodniu og\u0142oszono, \u017ce <a href=\"https:\/\/www.gatsbyjs.com\/blog\/gatsby-is-joining-netlify\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Gatsby Inc. zosta\u0142o przej\u0119te przez Netlify<\/a>. Je\u015bli jeszcze nie s\u0142ysza\u0142e\u015b o Netlify, jest to platforma kt\u00f3ra zapewnia hosting stron internetowych, funkcjonalno\u015bci Continous Integration i Continous Deployment oraz Serverless Functions. Nadrz\u0119dn\u0105 misj\u0105 Netlify jest u\u0142atwienie programistom budowania, wdra\u017cania i zarz\u0105dzania ich aplikacjam poprzez integracj\u0119 z szeregiem zewn\u0119trzych us\u0142ug. Netlify pozyska\u0142 te\u017c ca\u0142kiem spore finansowanie - <a href=\"https:\/\/www.crunchbase.com\/organization\/netlify\/company_financials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ponad 200M$ w 7 rundach<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Netlify ma d\u0142ug\u0105 histori\u0119 inwestowania w technologie Open Source powi\u0105zane z JAMStack. <a href=\"https:\/\/www.11ty.dev\/blog\/eleventy-oss\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">W lutym 2022 roku zatrudnili Zacha Leathermana<\/a> do pracy w pe\u0142nym wymiarze godzin nad jego generatorem stron statycznych o nazwie Eleventy. <a href=\"https:\/\/dev.to\/ryansolid\/when-netlify-asks-you-to-full-time-oss-you-say-yes-5ccf\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">W maju 2022 roku zatrudnili Ryana Carniato<\/a> do pe\u0142noetatowej pracy nad SolidJS - frameworkiem podobnym do Reacta, ale dzia\u0142aj\u0105cym bez VirtualDOM imaj\u0105cym  bardzo ciekawe podej\u015bcie do renderowania po stronie serwera.<\/p>\n","innerContent":["\n<p>Netlify ma d\u0142ug\u0105 histori\u0119 inwestowania w technologie Open Source powi\u0105zane z JAMStack. <a href=\"https:\/\/www.11ty.dev\/blog\/eleventy-oss\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">W lutym 2022 roku zatrudnili Zacha Leathermana<\/a> do pracy w pe\u0142nym wymiarze godzin nad jego generatorem stron statycznych o nazwie Eleventy. <a href=\"https:\/\/dev.to\/ryansolid\/when-netlify-asks-you-to-full-time-oss-you-say-yes-5ccf\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">W maju 2022 roku zatrudnili Ryana Carniato<\/a> do pe\u0142noetatowej pracy nad SolidJS - frameworkiem podobnym do Reacta, ale dzia\u0142aj\u0105cym bez VirtualDOM imaj\u0105cym  bardzo ciekawe podej\u015bcie do renderowania po stronie serwera.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14319,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-3.jpeg\" alt=\"\" class=\"wp-image-14319\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-3.jpeg\" alt=\"\" class=\"wp-image-14319\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na pierwszy rzut oka mo\u017cna pomy\u015ble\u0107, \u017ce Gatsby to tylko kolejny framework w portfolio Netlify. Cho\u0107 Netlify obiecuje, \u017ce rozw\u00f3j Gatsby b\u0119dzie kontynuowany, wydaje mi si\u0119, \u017ce przej\u0119cie to dotyczy\u0142o bardziej Gatsby Cloud i Project Valhalla. Niestety, kwota transakcji nie zosta\u0142a publicznie ujawniona.<\/p>\n","innerContent":["\n<p>Na pierwszy rzut oka mo\u017cna pomy\u015ble\u0107, \u017ce Gatsby to tylko kolejny framework w portfolio Netlify. Cho\u0107 Netlify obiecuje, \u017ce rozw\u00f3j Gatsby b\u0119dzie kontynuowany, wydaje mi si\u0119, \u017ce przej\u0119cie to dotyczy\u0142o bardziej Gatsby Cloud i Project Valhalla. Niestety, kwota transakcji nie zosta\u0142a publicznie ujawniona.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na zako\u0144czenie tej cz\u0119\u015bci chcia\u0142bym podzieli\u0107 si\u0119 z Wami moj\u0105 ma\u0142\u0105 obserwacj\u0105. Ma\u0142e startupy budowane w ostatnich latach wok\u00f3\u0142 technologii Open Source powoli zaczynaj\u0105 szuka\u0107 parasola w postaci wi\u0119kszych i lepiej ugruntownaych firm. Wystarczy spojrze\u0107 na <a href=\"https:\/\/shopify.engineering\/remix-joins-shopify\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie Remix przez Shopify<\/a>, <a href=\"https:\/\/www.outsystems.com\/news\/outsystems-acquires-ionic\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie Ionic przez OutSystems<\/a>, czy <a href=\"https:\/\/vercel.com\/blog\/vercel-acquires-turborepo\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie TurboRepo przez Vercel<\/a>. Wszystkie te przej\u0119cia maj\u0105 sporo sensu, ale gdzie\u015b w g\u0142\u0119bi duszy czuj\u0119, \u017ce \u017cadne z nich nie mia\u0142oby miejsca kilka lat temu, gdy globalna gospodarka kwit\u0142a. Z drugiej strony, nie jestem ekonomist\u0105 ani badaczem rynku, wi\u0119c nie przyk\u0142adajcie do mojej opinii zbyt du\u017cej wagi.<\/p>\n","innerContent":["\n<p>Na zako\u0144czenie tej cz\u0119\u015bci chcia\u0142bym podzieli\u0107 si\u0119 z Wami moj\u0105 ma\u0142\u0105 obserwacj\u0105. Ma\u0142e startupy budowane w ostatnich latach wok\u00f3\u0142 technologii Open Source powoli zaczynaj\u0105 szuka\u0107 parasola w postaci wi\u0119kszych i lepiej ugruntownaych firm. Wystarczy spojrze\u0107 na <a href=\"https:\/\/shopify.engineering\/remix-joins-shopify\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie Remix przez Shopify<\/a>, <a href=\"https:\/\/www.outsystems.com\/news\/outsystems-acquires-ionic\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie Ionic przez OutSystems<\/a>, czy <a href=\"https:\/\/vercel.com\/blog\/vercel-acquires-turborepo\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">przej\u0119cie TurboRepo przez Vercel<\/a>. Wszystkie te przej\u0119cia maj\u0105 sporo sensu, ale gdzie\u015b w g\u0142\u0119bi duszy czuj\u0119, \u017ce \u017cadne z nich nie mia\u0142oby miejsca kilka lat temu, gdy globalna gospodarka kwit\u0142a. Z drugiej strony, nie jestem ekonomist\u0105 ani badaczem rynku, wi\u0119c nie przyk\u0142adajcie do mojej opinii zbyt du\u017cej wagi.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Przysz\u0142o\u015bc Create React App<\/h2>\n","innerContent":["\n<h2>2. Przysz\u0142o\u015bc Create React App<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Create React App to narz\u0119dzie CLI, kt\u00f3re umo\u017cliwia skonfigurowanie nowoczesnej aplikacji internetowej poprzez uruchomienie jednego polecenia (nie bijcie - to cytat z oficjalnej strony CRA). Niestety, przez ostatnie kilka lat narz\u0119dzie zosta\u0142o mocno porzucone. Oko\u0142o 2 tygodnie temu popularny celebryta JavaScript Theo Browne tweetowa\u0142 tak:<\/p>\n","innerContent":["\n<p>Create React App to narz\u0119dzie CLI, kt\u00f3re umo\u017cliwia skonfigurowanie nowoczesnej aplikacji internetowej poprzez uruchomienie jednego polecenia (nie bijcie - to cytat z oficjalnej strony CRA). Niestety, przez ostatnie kilka lat narz\u0119dzie zosta\u0142o mocno porzucone. Oko\u0142o 2 tygodnie temu popularny celebryta JavaScript Theo Browne tweetowa\u0142 tak:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/twitter.com\/t3dotgg\/status\/1616933234478309378","type":"rich","providerNameSlug":"twitter","responsive":true,"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/t3dotgg\/status\/1616933234478309378\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/t3dotgg\/status\/1616933234478309378\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tweet dosta\u0142 tak du\u017co reakcji, \u017ce Theo naprawd\u0119 postanowi\u0142 otworzy\u0107<a href=\"https:\/\/github.com\/reactjs\/reactjs.org\/pull\/5487\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"> Pull Request do repozytorium React<\/a> zmieniaj\u0105c rekomendacj\u0119 z Create React App na Vite. Wywo\u0142a\u0142o to ogromn\u0105 fal\u0119 dyskusji.<\/p>\n","innerContent":["\n<p>Tweet dosta\u0142 tak du\u017co reakcji, \u017ce Theo naprawd\u0119 postanowi\u0142 otworzy\u0107<a href=\"https:\/\/github.com\/reactjs\/reactjs.org\/pull\/5487\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"> Pull Request do repozytorium React<\/a> zmieniaj\u0105c rekomendacj\u0119 z Create React App na Vite. Wywo\u0142a\u0142o to ogromn\u0105 fal\u0119 dyskusji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14315,"width":365,"height":365,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/giphy-2.gif\" alt=\"\" class=\"wp-image-14315\" width=\"365\" height=\"365\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/giphy-2.gif\" alt=\"\" class=\"wp-image-14315\" width=\"365\" height=\"365\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"Theo zrobi\u0142 ten PR tylko po to, \u017ceby zyska\u0107 wi\u0119cej obserwator\u00f3w. Wszystkie poruszane tu kwestie zosta\u0142y ju\u017c om\u00f3wione gdzie indziej\"<\/li>\n","innerContent":["\n<li>\"Theo zrobi\u0142 ten PR tylko po to, \u017ceby zyska\u0107 wi\u0119cej obserwator\u00f3w. Wszystkie poruszane tu kwestie zosta\u0142y ju\u017c om\u00f3wione gdzie indziej\"<\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"Create React App nie jest najlepszym narz\u0119dziem, ale pomaga pocz\u0105tkuj\u0105cym wykona\u0107 prac\u0119 bez wchodzenia w szczeg\u00f3\u0142y skomplkowancy narz\u0119dzi\"<\/li>\n","innerContent":["\n<li>\"Create React App nie jest najlepszym narz\u0119dziem, ale pomaga pocz\u0105tkuj\u0105cym wykona\u0107 prac\u0119 bez wchodzenia w szczeg\u00f3\u0142y skomplkowancy narz\u0119dzi\"<\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"Zesp\u00f3\u0142 React nie powinien wybiera\u0107 swoich faworyt\u00f3w - Rollup to r\u00f3wnie dobra propozycja jak Vite, a Remix to dobra alternatywa dla Next.js\"<\/li>\n","innerContent":["\n<li>\"Zesp\u00f3\u0142 React nie powinien wybiera\u0107 swoich faworyt\u00f3w - Rollup to r\u00f3wnie dobra propozycja jak Vite, a Remix to dobra alternatywa dla Next.js\"<\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"Dokumentacja React powinna by\u0107 prosta dla zupe\u0142nie pocz\u0105tkuj\u0105cych, kt\u00f3rzy nie wiedz\u0105 jeszcze, czym s\u0105 narz\u0119dzia do budowania aplikacji czy meta frameworki\"<\/li>\n","innerContent":["\n<li>\"Dokumentacja React powinna by\u0107 prosta dla zupe\u0142nie pocz\u0105tkuj\u0105cych, kt\u00f3rzy nie wiedz\u0105 jeszcze, czym s\u0105 narz\u0119dzia do budowania aplikacji czy meta frameworki\"<\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"React nie powinien poleca\u0107 przestarza\u0142ych narz\u0119dzi. \u017badna rekomendacja jest lepsza od przestarza\u0142ej rekomendacji\"<\/li>\n","innerContent":["\n<li>\"React nie powinien poleca\u0107 przestarza\u0142ych narz\u0119dzi. \u017badna rekomendacja jest lepsza od przestarza\u0142ej rekomendacji\"<\/li>\n"]}],"innerHTML":"\n<ul>\n\n\n\n\n\n\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"\n\n",null,"\n\n",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jak wida\u0107, problem nie jest prosty, a rozwi\u0105zanie nie jest oczywiste. W tym tygodniu Dan Abramov (cz\u0142onek zespo\u0142u React Core i facet stoj\u0105cy za React Hoosk i React Server Components) postanowi\u0142 zabra\u0107 g\u0142os. <a href=\"https:\/\/github.com\/reactjs\/reactjs.org\/pull\/5487#issuecomment-1409720741\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Jego komentarz m\u00f3g\u0142by z \u0142atwo\u015bci\u0105 s\u0142u\u017cy\u0107 za RFC lub by\u0107 osobnym wpisem na blogu.<\/a> Przechodzi on przez histori\u0119 Create React App, wymienia wszystkie jego problemy i proponuje r\u00f3\u017cne ich rozwi\u0105zania. Je\u015bli masz troch\u0119 wolnego czasu to naprawd\u0119 polecam przeczyta\u0107. TLDR dla wszystkich wyj\u0105tkowo zaj\u0119tych. Create React App stanie si\u0119 \"App Launcherem\" zadaj\u0105cym deweloperom pytania o poszczeg\u00f3lne narz\u0119dzia. Obecna implementacja b\u0119dzie dost\u0119pna jako opcja \"klasyczna\" i zaoferuje pocz\u0105tkuj\u0105cym \u0142atwy punkt startowy. W nadchodz\u0105cych miesi\u0105cach mo\u017cemy si\u0119 spodziewa\u0107 pe\u0142nego szczeg\u00f3\u0142\u00f3w RFC.<\/p>\n","innerContent":["\n<p>Jak wida\u0107, problem nie jest prosty, a rozwi\u0105zanie nie jest oczywiste. W tym tygodniu Dan Abramov (cz\u0142onek zespo\u0142u React Core i facet stoj\u0105cy za React Hoosk i React Server Components) postanowi\u0142 zabra\u0107 g\u0142os. <a href=\"https:\/\/github.com\/reactjs\/reactjs.org\/pull\/5487#issuecomment-1409720741\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Jego komentarz m\u00f3g\u0142by z \u0142atwo\u015bci\u0105 s\u0142u\u017cy\u0107 za RFC lub by\u0107 osobnym wpisem na blogu.<\/a> Przechodzi on przez histori\u0119 Create React App, wymienia wszystkie jego problemy i proponuje r\u00f3\u017cne ich rozwi\u0105zania. Je\u015bli masz troch\u0119 wolnego czasu to naprawd\u0119 polecam przeczyta\u0107. TLDR dla wszystkich wyj\u0105tkowo zaj\u0119tych. Create React App stanie si\u0119 \"App Launcherem\" zadaj\u0105cym deweloperom pytania o poszczeg\u00f3lne narz\u0119dzia. Obecna implementacja b\u0119dzie dost\u0119pna jako opcja \"klasyczna\" i zaoferuje pocz\u0105tkuj\u0105cym \u0142atwy punkt startowy. W nadchodz\u0105cych miesi\u0105cach mo\u017cemy si\u0119 spodziewa\u0107 pe\u0142nego szczeg\u00f3\u0142\u00f3w RFC.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Evan You opowiada o Vue w 2023<\/h2>\n","innerContent":["\n<h2>3. Evan You opowiada o Vue w 2023<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy od tego, \u017ce <a href=\"https:\/\/vuejsnation.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">nagrania z Vue.js Nation s\u0105 ju\u017c publicznie dost\u0119pne w sieci<\/a>! Je\u015bli jeste\u015b Vue Developerem to na pewno znajdziesz tu co\u015b dla siebie. Ja napomkn\u0119 tu tylko o kilku prelekcjach, kt\u00f3re rzuci\u0142y mi si\u0119 w oczy:<\/p>\n","innerContent":["\n<p>Zacznijmy od tego, \u017ce <a href=\"https:\/\/vuejsnation.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">nagrania z Vue.js Nation s\u0105 ju\u017c publicznie dost\u0119pne w sieci<\/a>! Je\u015bli jeste\u015b Vue Developerem to na pewno znajdziesz tu co\u015b dla siebie. Ja napomkn\u0119 tu tylko o kilku prelekcjach, kt\u00f3re rzuci\u0142y mi si\u0119 w oczy:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"You\u2019re probably using Lighthouse wrong: How we misuse most common tool to measure web performance?\" by Filip Rakowski<\/li>\n","innerContent":["\n<li>\"You\u2019re probably using Lighthouse wrong: How we misuse most common tool to measure web performance?\" by Filip Rakowski<\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"Decoding web accessibility through testing\" by Anuradha Kumari<\/li>\n","innerContent":["\n<li>\"Decoding web accessibility through testing\" by Anuradha Kumari<\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>\"Let's talk about Security in Vue &amp; Nuxt\" by Jakub Andrzejewski<\/li>\n","innerContent":["\n<li>\"Let's talk about Security in Vue &amp; Nuxt\" by Jakub Andrzejewski<\/li>\n"]}],"innerHTML":"\n<ul>\n\n\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nie jeste\u015bmy tutaj jednak, aby porozmawia\u0107 o Vue.js Nation i chcia\u0142bym skupi\u0107 si\u0119 na keynote  od Evana You na temat Vue w 2023 roku. Zacznijmy od tego, \u017ce <strong>\u017cegnamy si\u0119 z Reactivity Transform<\/strong>. Je\u015bli nie s\u0142ysza\u0142e\u015b wcze\u015bniej tego terminu, Reactivity Transform by\u0142 spor\u0105 paczk\u0105 usprawnie\u0144 do Reactivity API. Zasadniczo wszystkie metody, takie jak <code>ref<\/code> czy <code>computed<\/code>, mia\u0142y otrzyma\u0107 wersj\u0119 poprzedzon\u0105 $, kt\u00f3ra nie wymaga\u0142aby wywo\u0142a\u0144 <code>.value<\/code>.<\/p>\n","innerContent":["\n<p>Nie jeste\u015bmy tutaj jednak, aby porozmawia\u0107 o Vue.js Nation i chcia\u0142bym skupi\u0107 si\u0119 na keynote  od Evana You na temat Vue w 2023 roku. Zacznijmy od tego, \u017ce <strong>\u017cegnamy si\u0119 z Reactivity Transform<\/strong>. Je\u015bli nie s\u0142ysza\u0142e\u015b wcze\u015bniej tego terminu, Reactivity Transform by\u0142 spor\u0105 paczk\u0105 usprawnie\u0144 do Reactivity API. Zasadniczo wszystkie metody, takie jak <code>ref<\/code> czy <code>computed<\/code>, mia\u0142y otrzyma\u0107 wersj\u0119 poprzedzon\u0105 $, kt\u00f3ra nie wymaga\u0142aby wywo\u0142a\u0144 <code>.value<\/code>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Without Reactivity Transform\n&lt;script setup>\nimport { ref } from 'vue'\n\nlet count = ref(0)\n\nconsole.log(count.value)\n\nfunction increment() {\n  count.value++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Without Reactivity Transform\n&lt;script setup>\nimport { ref } from 'vue'\n\nlet count = ref(0)\n\nconsole.log(count.value)\n\nfunction increment() {\n  count.value++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ With Reactivity Transform\n&lt;script setup>\nlet count = $ref(0)\n\nconsole.log(count)\n\nfunction increment() {\n  count++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ With Reactivity Transform\n&lt;script setup>\nlet count = $ref(0)\n\nconsole.log(count)\n\nfunction increment() {\n  count++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/twitter.com\/sanxiaozhizi\/status\/1618261882883969024","type":"rich","providerNameSlug":"twitter","responsive":true,"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/sanxiaozhizi\/status\/1618261882883969024\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/sanxiaozhizi\/status\/1618261882883969024\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Po zebraniu opinii od spo\u0142eczno\u015bci zesp\u00f3\u0142 Vue postanowi\u0142 zrezygnowa\u0107 z Reactivity Transform. Wielu osobom nie spodoba\u0142a si\u0119 nowa funkcjonalno\u015b\u0107, co skolei wywo\u0142a\u0142o obawy o potencjaln\u0105 fragmentacj\u0119 spo\u0142eczno\u015bci. Je\u015bli ju\u017c u\u017cywasz Reactivity Transform nie masz si\u0119 jednak czym martwi\u0107. Istniej\u0105ca implementacja zostanie wyeksportowana do osobnego pakietu\/pluginu. Eksperymentalne API b\u0119dzie wspierane w Vue Core a\u017c do Vue 3.4. Na koniec warto wspomnie\u0107 jeszcze, \u017ce jest jedna funkcja z Reactivity Transform, kt\u00f3ra zostanie wydzielona i wyl\u0105duje w Vue 3.3. Jest ni\u0105 <strong>Reactive Props Destructure<\/strong>.<\/p>\n","innerContent":["\n<p>Po zebraniu opinii od spo\u0142eczno\u015bci zesp\u00f3\u0142 Vue postanowi\u0142 zrezygnowa\u0107 z Reactivity Transform. Wielu osobom nie spodoba\u0142a si\u0119 nowa funkcjonalno\u015b\u0107, co skolei wywo\u0142a\u0142o obawy o potencjaln\u0105 fragmentacj\u0119 spo\u0142eczno\u015bci. Je\u015bli ju\u017c u\u017cywasz Reactivity Transform nie masz si\u0119 jednak czym martwi\u0107. Istniej\u0105ca implementacja zostanie wyeksportowana do osobnego pakietu\/pluginu. Eksperymentalne API b\u0119dzie wspierane w Vue Core a\u017c do Vue 3.4. Na koniec warto wspomnie\u0107 jeszcze, \u017ce jest jedna funkcja z Reactivity Transform, kt\u00f3ra zostanie wydzielona i wyl\u0105duje w Vue 3.3. Jest ni\u0105 <strong>Reactive Props Destructure<\/strong>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.2\nconst props = withDefaults(\n  defineProps({ foo: number }>(),\n  { foo: 1 }\n)\n\nprops.foo<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.2\nconst props = withDefaults(\n  defineProps({ foo: number }>(),\n  { foo: 1 }\n)\n\nprops.foo<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.3 (Reactive Props Descructure)\nconst {\n  foo = 1\n} = defineProps({ foo: number }>();\n\nfoo \/\/stays reacitve!<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.3 (Reactive Props Descructure)\nconst {\n  foo = 1\n} = defineProps({ foo: number }>();\n\nfoo \/\/stays reacitve!<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><strong>W pierwszym kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue chce skupi\u0107 si\u0119 na <strong>naprawianiu b\u0142\u0119d\u00f3w i dostarczeniu Vue 3.3<\/strong>. Og\u00f3lnie rzecz bior\u0105c, w 2023 roku zesp\u00f3\u0142 chcia\u0142by dostarcza\u0107 wi\u0119cej mniejszych i bardziej inkrementalnych wyda\u0144. Spore op\u00f3\u017anienie Vue 3.3 ujawni\u0142o problemy z obecnym procesem releas\u00f3w i w 2024 Vue chcia\u0142oby ich unikn\u0105\u0107.<\/p>\n","innerContent":["\n<p><strong>W pierwszym kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue chce skupi\u0107 si\u0119 na <strong>naprawianiu b\u0142\u0119d\u00f3w i dostarczeniu Vue 3.3<\/strong>. Og\u00f3lnie rzecz bior\u0105c, w 2023 roku zesp\u00f3\u0142 chcia\u0142by dostarcza\u0107 wi\u0119cej mniejszych i bardziej inkrementalnych wyda\u0144. Spore op\u00f3\u017anienie Vue 3.3 ujawni\u0142o problemy z obecnym procesem releas\u00f3w i w 2024 Vue chcia\u0142oby ich unikn\u0105\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><strong>W drugim kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue skupi si\u0119 na <strong>usprawnieniach renderowania po stronie serwera<\/strong>. Jedyn\u0105 wspomnian\u0105 na ten moment funkcjonalno\u015bci\u0105 jest Lazy Hydration. Niestety, aby uzyska\u0107 wi\u0119cej szczeg\u00f3\u0142\u00f3w na ten temat, b\u0119dziemy musieli poczeka\u0107 na RFC.<\/p>\n","innerContent":["\n<p><strong>W drugim kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue skupi si\u0119 na <strong>usprawnieniach renderowania po stronie serwera<\/strong>. Jedyn\u0105 wspomnian\u0105 na ten moment funkcjonalno\u015bci\u0105 jest Lazy Hydration. Niestety, aby uzyska\u0107 wi\u0119cej szczeg\u00f3\u0142\u00f3w na ten temat, b\u0119dziemy musieli poczeka\u0107 na RFC.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><strong>W trzecim i czwartym kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue chce si\u0119 skupi\u0107 na <strong>Vapor Mode<\/strong> - kompilatorze inspirowanym Solid. Wykorzyszta on format Vue Single File i skompiluje go do bardziej optymalnego formatu. W efekcie nasz kod b\u0119dzie szybszy, b\u0119dzie zu\u017cywa mniej pami\u0119ci i b\u0119dzie wymaga mniej kodu w runtime (przynajmniej w por\u00f3wnaniu do obecnego rozwiazania opartego na Virtual DOM). Przed Vapor Mode jest jeszcze d\u0142uga droga, ale na pewno us\u0142yszycie o nim w niejednym z naszych weekly.<\/p>\n","innerContent":["\n<p><strong>W trzecim i czwartym kwartale 2023<\/strong> roku zesp\u00f3\u0142 Vue chce si\u0119 skupi\u0107 na <strong>Vapor Mode<\/strong> - kompilatorze inspirowanym Solid. Wykorzyszta on format Vue Single File i skompiluje go do bardziej optymalnego formatu. W efekcie nasz kod b\u0119dzie szybszy, b\u0119dzie zu\u017cywa mniej pami\u0119ci i b\u0119dzie wymaga mniej kodu w runtime (przynajmniej w por\u00f3wnaniu do obecnego rozwiazania opartego na Virtual DOM). Przed Vapor Mode jest jeszcze d\u0142uga droga, ale na pewno us\u0142yszycie o nim w niejednym z naszych weekly.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":14317,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-4.jpeg\" alt=\"\" class=\"wp-image-14317\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/02\/download-4.jpeg\" alt=\"\" class=\"wp-image-14317\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>Bonus: Don't use return types (?)<\/h2>\n","innerContent":["\n<h2>Bonus: Don't use return types (?)<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przez ostatnie kilka dni w mojej ba\u0144ce Twittera m\u00f3wi si\u0119 o jednej rzeczy - o filmie Matta Pottocka \"Don't use return types, unless...\". Teza jest do\u015b\u0107 prosta: Je\u015bli twoja funkcja ma tylko jeden <code>return<\/code>, to nie powiniene\u015b dla niej deklarowa\u0107 typ\u00f3w i pozwoli\u0107 TypeScriptowi zrobi\u0107 to za Ciebie.<\/p>\n","innerContent":["\n<p>Przez ostatnie kilka dni w mojej ba\u0144ce Twittera m\u00f3wi si\u0119 o jednej rzeczy - o filmie Matta Pottocka \"Don't use return types, unless...\". Teza jest do\u015b\u0107 prosta: Je\u015bli twoja funkcja ma tylko jeden <code>return<\/code>, to nie powiniene\u015b dla niej deklarowa\u0107 typ\u00f3w i pozwoli\u0107 TypeScriptowi zrobi\u0107 to za Ciebie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=nwSe95uFN8E","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=nwSe95uFN8E\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=nwSe95uFN8E\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Spo\u0142eczno\u015b\u0107 Twittera wybuch\u0142a. Niekt\u00f3rzy zupe\u0142nie nie zgadzali si\u0119 z postawion\u0105 tez\u0105 i sugerowali, \u017ce zawsze pownni\u015bmy deklarowa\u0107 zwracane typy:<\/p>\n","innerContent":["\n<p>Spo\u0142eczno\u015b\u0107 Twittera wybuch\u0142a. Niekt\u00f3rzy zupe\u0142nie nie zgadzali si\u0119 z postawion\u0105 tez\u0105 i sugerowali, \u017ce zawsze pownni\u015bmy deklarowa\u0107 zwracane typy:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/twitter.com\/ThePrimeagen\/status\/1620808334562697217","type":"rich","providerNameSlug":"twitter","responsive":true,"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/ThePrimeagen\/status\/1620808334562697217\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/ThePrimeagen\/status\/1620808334562697217\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Inni poszli o krok dalej i rozszerzyli tez\u0119 do: \"Nigdy nie deklaruj zwracanych typ\u00f3w\"<\/p>\n","innerContent":["\n<p>Inni poszli o krok dalej i rozszerzyli tez\u0119 do: \"Nigdy nie deklaruj zwracanych typ\u00f3w\"<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/twitter.com\/t3dotgg\/status\/1620865488569118720?cxt=HHwWgMDRrd-kvP4sAAAA","type":"rich","providerNameSlug":"twitter","responsive":true},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/t3dotgg\/status\/1620865488569118720?cxt=HHwWgMDRrd-kvP4sAAAA\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/t3dotgg\/status\/1620865488569118720?cxt=HHwWgMDRrd-kvP4sAAAA\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli chcecie zanurzy\u0107 si\u0119 troch\u0119 bardziej w temacie, to polecam fragment poni\u017cszego streama na kt\u00f3rym Theo i Prime wdaj\u0105 si\u0119 w prawie godzinn\u0105 dyskusj\u0119 na temat preferowanego rozwi\u0105zania.<\/p>\n","innerContent":["\n<p>Je\u015bli chcecie zanurzy\u0107 si\u0119 troch\u0119 bardziej w temacie, to polecam fragment poni\u017cszego streama na kt\u00f3rym Theo i Prime wdaj\u0105 si\u0119 w prawie godzinn\u0105 dyskusj\u0119 na temat preferowanego rozwi\u0105zania.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=bJc9UYva46I&t=1488s","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=bJc9UYva46I&amp;t=1488s\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=bJc9UYva46I&amp;t=1488s\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Niekt\u00f3rzy z was mog\u0105 mie\u0107 wra\u017cenie, \u017ce takie dyskusje s\u0105 nieco toksyczne. Ja osobi\u015bcie czuj\u0119, \u017ce \u015bledzenie tej dramy nauczy\u0142o mnie troch\u0119 o TypeScript i jeszcze wi\u0119cej o perspektywach innych ludzi. No i bez tej dramy nie byliby\u015bmy \u015bwiadkami pierwszej TypeScriptowej bitwy na memy.<\/p>\n","innerContent":["\n<p>Niekt\u00f3rzy z was mog\u0105 mie\u0107 wra\u017cenie, \u017ce takie dyskusje s\u0105 nieco toksyczne. Ja osobi\u015bcie czuj\u0119, \u017ce \u015bledzenie tej dramy nauczy\u0142o mnie troch\u0119 o TypeScript i jeszcze wi\u0119cej o perspektywach innych ludzi. No i bez tej dramy nie byliby\u015bmy \u015bwiadkami pierwszej TypeScriptowej bitwy na memy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/twitter.com\/t3dotgg\/status\/1620887210521415680?cxt=HHwWgMDSwZCVxv4sAAAA","type":"rich","providerNameSlug":"twitter","responsive":true,"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/t3dotgg\/status\/1620887210521415680?cxt=HHwWgMDSwZCVxv4sAAAA\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/t3dotgg\/status\/1620887210521415680?cxt=HHwWgMDSwZCVxv4sAAAA\n<\/div><\/figure>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/14351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=14351"}],"version-history":[{"count":5,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/14351\/revisions"}],"predecessor-version":[{"id":14358,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/14351\/revisions\/14358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/14302"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=14351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=14351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=14351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}