<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Newsletter Type of Web × michalczukm.xyz: Polski frontend i backend]]></title><description><![CDATA[Nowości ze świata frontendu i backendu, przydatne narzędzia, ciekawe projekty i inne linki wybrane. JavaScript, TypeScript, GraphQL, Rust. Newsletter Type of Web × michalczukm.xyz]]></description><link>https://news.typeofweb.com/</link><image><url>https://news.typeofweb.com/favicon.png</url><title>Newsletter Type of Web × michalczukm.xyz: Polski frontend i backend</title><link>https://news.typeofweb.com/</link></image><generator>Ghost 5.85</generator><lastBuildDate>Wed, 06 May 2026 12:09:41 GMT</lastBuildDate><atom:link href="https://news.typeofweb.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Mój projekt w Next.js dostał finansowanie z Doliny Krzemowej]]></title><description><![CDATA[<p>Mam super wiadomo&#x15B;&#x107;!!&#xA0;&#x1F525;<br><br>Dzi&#x119;ki wsparciu&#xA0;<strong>Guillermo Raucha</strong>&#xA0;(CEO Vercel) i&#xA0;<strong>Patricka Collisona</strong>&#xA0;(CEO Stripe), nasz projekt Your Next Store otrzyma&#x142; finansowanie!</p><p>W zwi&#x105;zku z tym, udost&#x119;pniamy Wam kod ultra-szybkiego i nowoczesnego storefrontu w Next.js,</p>]]></description><link>https://news.typeofweb.com/live/</link><guid isPermaLink="false">66b323b8c7b0470001600344</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Wed, 07 Aug 2024 07:59:13 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2024/08/XtZfpZWaWVJiHK0htBDWdgrOYfW0ZALxHCVL6fx6.webp" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2024/08/XtZfpZWaWVJiHK0htBDWdgrOYfW0ZALxHCVL6fx6.webp" alt="M&#xF3;j projekt w Next.js dosta&#x142; finansowanie z Doliny Krzemowej"><p>Mam super wiadomo&#x15B;&#x107;!!&#xA0;&#x1F525;<br><br>Dzi&#x119;ki wsparciu&#xA0;<strong>Guillermo Raucha</strong>&#xA0;(CEO Vercel) i&#xA0;<strong>Patricka Collisona</strong>&#xA0;(CEO Stripe), nasz projekt Your Next Store otrzyma&#x142; finansowanie!</p><p>W zwi&#x105;zku z tym, udost&#x119;pniamy Wam kod ultra-szybkiego i nowoczesnego storefrontu w Next.js, nad kt&#xF3;rym pracowali&#x15B;my od d&#x142;u&#x17C;szego czasu, na licencji AGPL na GitHubie.<br><br>Mamy nadziej&#x119;, &#x17C;e dzi&#x119;ki temu&#xA0;Your Next Store zyska jeszcze wi&#x119;ksz&#x105; popularno&#x15B;&#x107; i przyczyni si&#x119; do&#xA0;promowania dobrych praktyki w tworzeniu wydajnych aplikacji internetowych.<br><br>Tutaj kod storefrontu na&#xA0;GitHubie: <a href="https://github.com/yournextstore/yournextstore?ref=news.typeofweb.com">https://github.com/yournextstore/yournextstore</a><br><strong>B&#x119;dzie nam mi&#x142;o, je&#x15B;li dacie nam &#x2B50;&#xFE0F; gwiazdk&#x119;.</strong></p><p>Razem z Jakubem (zaiste) jeste&#x15B;my wdzi&#x119;czni za Wasze wsparcie, ogl&#x105;danie live&apos;&#xF3;w i liczne dyskusje na Discordzie. To dawa&#x142;o nam motywacj&#x119; do pracy i pcha&#x142;o nas do przodu. Dzi&#x119;ki!</p><p><a href="https://x.com/typeofweb?ref=news.typeofweb.com" rel="noreferrer">Micha&#x142; Miszczyszyn</a> i <a href="https://x.com/zaiste?ref=news.typeofweb.com" rel="noreferrer">Jakub &#x201E;zaiste&#x201D; Neander</a></p>]]></content:encoded></item><item><title><![CDATA[Live: e-commerce w Next.js 15 bez backendu]]></title><description><![CDATA[<p>E-commerce bez backendu? Czy to mo&#x17C;liwe&#x2753; <em>Well, yes, but actually, no.</em><strong> Chcia&#x142;bym Was serdecznie zaprosi&#x107; na wyj&#x105;tkowy techniczny live o budowaniu aplikacji e-commerce w Next oraz o zmianach w Next.js&#xA0;15.</strong></p><div class="kg-card kg-button-card kg-align-center"><a href="https://lu.ma/yns-launch?ref=news.typeofweb.com" class="kg-btn kg-btn-accent">Zapisz si&#x119; na live o Next.js 15</a></div>]]></description><link>https://news.typeofweb.com/live-e-commerce-w-next-js-15/</link><guid isPermaLink="false">666c67d24ad3a70001a65d00</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Thu, 23 May 2024 13:19:42 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2024/05/Edgematic-drawings-group.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2024/05/Edgematic-drawings-group.png" alt="Live: e-commerce w Next.js 15 bez backendu"><p>E-commerce bez backendu? Czy to mo&#x17C;liwe&#x2753; <em>Well, yes, but actually, no.</em><strong> Chcia&#x142;bym Was serdecznie zaprosi&#x107; na wyj&#x105;tkowy techniczny live o budowaniu aplikacji e-commerce w Next oraz o zmianach w Next.js&#xA0;15.</strong></p><div class="kg-card kg-button-card kg-align-center"><a href="https://lu.ma/yns-launch?ref=news.typeofweb.com" class="kg-btn kg-btn-accent">Zapisz si&#x119; na live o Next.js 15</a></div><hr><p>Ostatnie tygodnie sp&#x119;dzieli&#x15B;my pracuj&#x105;c nad <strong>Your Next Store</strong>: sklepem internetowym, kt&#xF3;ry stawia na szybko&#x15B;&#x107; i User Experience i nie wymaga &#x17C;adnego innego backendu poza Stripe. Jak to?</p><p>&#x1F539; Transakcje? Stripe.<br>&#x1F539; Produkty? Stripe.<br>&#x1F539; Metody wysy&#x142;ki? Stripe.</p><p>I tak dalej&#x2026; Naszym celem jest, aby <strong>wszystko by&#x142;o tak proste, jak to tylko mo&#x17C;liwe, ale nie prostsze</strong>.</p><p>Jestem bardzo szcz&#x119;&#x15B;liwy i dumny, &#x17C;e mog&#x119; zaprosi&#x107; Was na nasz oficjalny launch 28 maja o 17:00. Robimy <strong>LIVE</strong>, na kt&#xF3;rym opowiemy, jak dzia&#x142;a YNS i jak go zbudowali&#x15B;my. B&#x119;dzie r&#xF3;wnie&#x17C; sesja <strong>Q&amp;A na temat Next.js 15, e-commerce</strong> i Your Next Store bez ogranicze&#x144; czasowych.</p><p>LIVE b&#x119;dzie prowadzony po angielsku.</p><p>Link do Live: <a href="https://lu.ma/yns-launch?ref=news.typeofweb.com">https://lu.ma/yns-launch</a></p><p>Do zobaczenia we wtorek o 17:00!<br><a href="https://x.com/typeofweb?ref=news.typeofweb.com" rel="noreferrer">Micha&#x142; Miszczyszyn</a> i <a href="https://x.com/zaiste?ref=news.typeofweb.com" rel="noreferrer">Jakub &#x201E;zaiste&#x201D; Neander</a></p>]]></content:encoded></item><item><title><![CDATA[typeofweb x michalczukm #23 | server-driven UI wraca oknem]]></title><description><![CDATA[<p>Siema!</p><p>Poni&#x17C;ej to ja podczas pr&#xF3;by napisania newslettera we wtorek wieczorem. Jak widzicie - nie uda&#x142;o si&#x119;, zosta&#x142;em pokonany przez grawitacj&#x119;.</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/08/Untitled.png" class="kg-image" alt loading="lazy" width="498" height="372"></figure><p>Zatem z 1 dniow&#x105; obsuw&#x105; zapraszam was na kolejne wydanie newslettera gdzie pisz&#x119; o tym jak</p>]]></description><link>https://news.typeofweb.com/23/</link><guid isPermaLink="false">666c67d24ad3a70001a65cff</guid><dc:creator><![CDATA[Michał Michalczuk]]></dc:creator><pubDate>Thu, 10 Aug 2023 05:00:06 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2023/08/news-23.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2023/08/news-23.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><p>Siema!</p><p>Poni&#x17C;ej to ja podczas pr&#xF3;by napisania newslettera we wtorek wieczorem. Jak widzicie - nie uda&#x142;o si&#x119;, zosta&#x142;em pokonany przez grawitacj&#x119;.</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/08/Untitled.png" class="kg-image" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem" loading="lazy" width="498" height="372"></figure><p>Zatem z 1 dniow&#x105; obsuw&#x105; zapraszam was na kolejne wydanie newslettera gdzie pisz&#x119; o tym jak server-driven UI wraca na tapet, kolejni bad-actors chc&#x105; dobra&#x107; si&#x119; do naszych danych przez npm supply chain ataki a szaleni ludzie uruchamiaj&#x105; JS w Pythonie. Enjoy!</p><p>&#x1F9D1;&#x200D;&#x1F4BB; Micha&#x142; Michalczuk | <a href="https://michalczukm.xyz/?ref=news.typeofweb.com">michalczukm.xyz</a></p><hr><h2 id="kolejny-npm-supply-chain-atak-prze-lazarus-group">Kolejny npm supply chain atak prze <strong>Lazarus Group</strong></h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://socket.dev/blog/social-engineering-campaign-npm-malware?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Social engineering campaign targeting tech employees spreading through npm malware - Socket</div><div class="kg-bookmark-description">The Lazarus Group launched a sophisticated social engineering campaign targeting developers in the cryptocurrency and cybersecurity sectors, using compromised accounts and malware-laden NPM packages.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://socket.dev/apple-touch-icon.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">Socket</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.sanity.io/images/cgdhsj6q/production/46125e26e3c1fd1e6686d368ebff8bcbc09f7173-1024x1024.png?w=1000&amp;fit=max&amp;auto=format" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p><a href="https://news.typeofweb.com/typeofweb-x-michalczukm-22-quo-vadis-rejestrze-npm/#quo-vadis-rejestrze-npm">Ostatnio pisa&#x142;em</a> o serii artyku&#x142;&#xF3;w &#x201C;State Of Npm 2023&#x201D; pope&#x142;nionych przez Sandworm z kt&#xF3;rego wynika&#x142;o &#x17C;e ok 500 000 nowych pakiet&#xF3;w to spam.</p><p>Spam to jedno. Cz&#x119;&#x15B;&#x107; z nich to z&#x142;o&#x15B;liwy kod, kt&#xF3;ry chce si&#x119; dobra&#x107; do waszych danych. Nihil novi, ale schemat ataku grupy Lazarus odkryty przez badaczy jest b&#x142;yskotliwy (niech b&#x119;dzie - z&#x142;owieszczo b&#x142;yszcz&#x105;cy). A opis znajdziecie na blogu Socket.</p><p>Targetem byli badacze bezpiecze&#x144;stwa, oraz ludzie pracuj&#x105;cy z krypto i blockchainem.</p><p>A jak to wygl&#x105;da&#x142;o.</p><p><strong>1. Socjotechnika</strong></p><p>Klasyczek. Atakuj&#x105;cy podszywali si&#x119; pod rekruter&#xF3;w, badaczy security, lub developer&#xF3;w szukaj&#x105;cych pomocy lub chc&#x105;cych pom&#xF3;c przy projektach.</p><p>Kontaktowali si&#x119; przez GitHub, LinkedIn, Slack czy Telegram a celem by&#x142;o zaproszenie do pracy nad projektem na GitHub&#x2019;ie, kt&#xF3;ry zawiera&#x142; w zale&#x17C;no&#x15B;ciach pakiety npm z malware.</p><p><strong>2. Uruchomienie kodu</strong></p><p>Gdy cel pobra&#x142; repo i zainstalowa&#x142; zale&#x17C;no&#x15B;ci podczas uruchomienia projektu z&#x142;o&#x15B;liwe pakiety dzia&#x142;a&#x142;y w tandemie.</p><p>Pierwsza z zale&#x17C;no&#x15B;ci pobiera&#x142;a token potrzebny do uruchomienia drugiej. Dobrym przyk&#x142;adem jest pakiet <a href="https://socket.dev/npm/package/tslib-react/files/1.7.1/main.js?ref=news.typeofweb.com">tslib-reac</a></p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/08/image.png" class="kg-image" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem" loading="lazy" width="1632" height="1502" srcset="https://news.typeofweb.com/content/images/size/w600/2023/08/image.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/08/image.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2023/08/image.png 1600w, https://news.typeofweb.com/content/images/2023/08/image.png 1632w" sizes="(min-width: 720px) 720px"></figure><p>Nast&#x119;pnie ta sama paczka (lub inna w zale&#x17C;no&#x15B;ci od schematu) odczytywa&#x142;a zapisany wcze&#x15B;niej token i z jego pomoc&#x105; pobiera&#x142;a skrypt i wykonywa&#x142;a go.</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/08/image-1.png" class="kg-image" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem" loading="lazy" width="1742" height="1118" srcset="https://news.typeofweb.com/content/images/size/w600/2023/08/image-1.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/08/image-1.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2023/08/image-1.png 1600w, https://news.typeofweb.com/content/images/2023/08/image-1.png 1742w" sizes="(min-width: 720px) 720px"></figure><p>Makao i po makale.</p><p>Artyku&#x142; wymienia 24 pakiety npm kt&#xF3;re bra&#x142;y udzia&#x142; w atakach. Najbardziej urzek&#x142;a mnie paczka <a href="https://socket.dev/npm/package/snykaudit-helper/overview/4.1.2?ref=news.typeofweb.com">snykaudit-helper</a>, kt&#xF3;ra podszywa si&#x119; pod kod pracuj&#x105;cy z narz&#x119;dziem security jakim jest <a href="https://snyk.io/?ref=news.typeofweb.com">snyk</a> &#x1F972;</p><p>Przy okazji <a href="https://socket.dev/blog/series-a?ref=news.typeofweb.com">Socket dosta&#x142; ostatnio $20M finansowania serii A</a> od Andreessen Horowitz. Brawo oni!</p><hr><h2 id="server-driven-ui-znowu-czuje-si%C4%99-jak-w-2010">Server-driven UI, znowu czuje si&#x119; jak w 2010</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.builder.io/blog/ui-over-apis?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Sending UI over APIs</div><div class="kg-bookmark-description">Server-generated UIs are transforming traditional UI development by sending layouts via APIs. Benefit from immediate bug fixes, faster iteration, and personalized user experiences. Learn from Instagram&#x2019;s Yaser Alkayale and get practical insights for your projects.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F470aa2bd45fb4ff5b77c91a394a957e6?width=240" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">Builder.io</span><span class="kg-bookmark-publisher">Yoav Ganbar</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Ffed2b4d40e3642b08686698986d92765?width=1200" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Zawsze jak s&#x142;ysz&#x119; has&#x142;o server-driven UI mam przed oczami bardziej deklaratywn&#x105; wersj&#x119; <a href="https://vaadin.com/?ref=news.typeofweb.com">Vaadin</a> &#x1F600; To chyba PTSD, chocia&#x17C; sam mia&#x142;em okazj&#x119; pracowa&#x107; z takimi rozwi&#x105;zaniami r&#xF3;wnie&#x17C; w JS i dzia&#x142;a&#x142;o to bardzo rozs&#x105;dnie.</p><p>Ale ale, o co chodzi. Server-driven UI to dynamiczny spos&#xF3;b sterowania UI, kt&#xF3;ry dostaje u&#x17C;ytkownik dos&#x142;ownie z poziomu back-end&#x2019;u.</p><p>&#x1F4BB; Klient dostaje obiekt JSON z drzewem komponent&#xF3;w do zbudowania i wy&#x15B;wietlenia. Brzmi jak mieszanie odpowiedzialno&#x15B;ci i zb&#x119;dne budowanie complexity w aplikacjach webowych, ale zanim z krzykiem zamkniecie ten newsletter pomy&#x15B;lcie o zastosowaniu tego w aplikacjach mobilnych. Wykorzystuje to mi&#x119;dzy innymi Instagram, Lyft, Airbnb czy Allegro (maj&#x105; w&#x142;asny <a href="https://blog.allegro.tech/2022/08/mbox-server-driven-ui-for-mobile-apps.html?ref=news.typeofweb.com">rendering tool MBox</a>, pozdrawiam!)</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/08/image-2.png" class="kg-image" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem" loading="lazy" width="2000" height="895" srcset="https://news.typeofweb.com/content/images/size/w600/2023/08/image-2.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/08/image-2.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2023/08/image-2.png 1600w, https://news.typeofweb.com/content/images/size/w2400/2023/08/image-2.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Aplikacje mobilne maj&#x105; o wiele d&#x142;u&#x17C;szy release cycle ni&#x17C; klienci web, poniewa&#x17C; u&#x17C;ytkownik musi pobra&#x107; nasz&#x105; aktualizacj&#x119; z AppStore/PlayStore/InnyStore.</p><p>I krytyczny bug kt&#xF3;ry uniemo&#x17C;liwia zarabianie lub u&#x17C;ytkowanie naszej aplikacji musi grzecznie poczeka&#x107; na to a&#x17C; user zaktualizuj&#x119; aplikacje. W mi&#x119;dzy czasie mo&#x17C;e zd&#x105;&#x17C;y&#x107; j&#x105; odinstalowa&#x107; z &#x201C;co to za &#x1F4A9;&#x201D; na ustach.</p><p>Wprowadzaj&#x105;c takie rozwi&#x105;zania jak server-driven UI skracamy ten loop do minimum, bo klient dostaje na bierz&#x105;co kszta&#x142;t UI do wy&#x15B;wietlenia.</p><p>&#x1F6E3;&#xFE0F; Nie jest to lekka droga. Poza zmian&#x105; mental modelu wytwarzania aplikacji i rozwi&#x105;zania tego technicznie mamy jeszcze guidelines sklep&#xF3;w z aplikacjami kt&#xF3;re musimy spe&#x142;nia&#x107; kt&#xF3;re nie przepadaj&#x105; za takimi dynamicznymi rozwi&#x105;zaniami podczas audyt&#xF3;w.</p><p>W artykule znajdziecie wi&#x119;cej szczeg&#xF3;&#x142;&#xF3;w oraz live z in&#x17C;ynierem Instagram (w&#x142;. Meta), kt&#xF3;ry opowiada jak oni to robi&#x105;.</p><hr><h2 id="odszyfrowuj%C4%85c-payload-react-server-components">Odszyfrowuj&#x105;c payload React Server Components</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.alvar.dev/blog/creating-devtools-for-react-server-components?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Devtools for React Server Components</div><div class="kg-bookmark-description">Visualising RSC streaming</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.alvar.dev/favicons/favicon-192x192.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">alvar.dev</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://alvar.dev/blog/creating-devtools-for-react-server-components/opengraph-image-1tcgfo?9992989ce092b6a8" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Poprzedni wpis o server-driven UI to idealny wst&#x119;p do tego newsa. Je&#x15B;li mieli&#x15B;cie okazj&#x119; korzysta&#x107; ju&#x17C; z <strong>RSC</strong> (React Server Components) i zagl&#x105;dali&#x15B;cie w zak&#x142;adk&#x119; <code>network</code> aby sprawdzi&#x107; czy wasz komponent zosta&#x142; poprawnie ze-streamowany do klienta to mog&#x142;a was uderzy&#x107; hmm &#x2026; niska czytelno&#x15B;&#x107; &#x201C;wire format&#x201D;.</p><p>Je&#x15B;li otworzycie DevToolsy i <code>network</code> na podlinkowanym blogu &#x2192; przenawigujcie na inn&#x105; stron&#x119; a dostaniecie stream komponentu jak poni&#x17C;ej.</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/08/image-3.png" class="kg-image" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem" loading="lazy" width="1192" height="354" srcset="https://news.typeofweb.com/content/images/size/w600/2023/08/image-3.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/08/image-3.png 1000w, https://news.typeofweb.com/content/images/2023/08/image-3.png 1192w" sizes="(min-width: 720px) 720px"></figure><p>Alternatywnie tutaj mo&#x17C;ecie si&#x119; pobawi&#x107; innym przyk&#x142;adem - <a href="https://stackblitz.com/edit/react-server-components-demo-u57n2t?file=README.md&amp;ref=news.typeofweb.com">demo na Stackblitz</a>.</p><p>Jak narazie brak toolingu kt&#xF3;ry wspom&#xF3;g&#x142;by nam w debugowaniu i optymalizacji RSC nie pomaga. Ale <strong>Alvar Lagerl&#xF6;f</strong> stworzy&#x142;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://rsc-parser.vercel.app/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">RSC Parser</div><div class="kg-bookmark-description">Generated by create next app</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://rsc-parser.vercel.app/favicon.ico" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></div></a></figure><p>i pracuje nad rozszerzeniem do chroma, kt&#xF3;re oszcz&#x119;dzi nam copy-paste i zwi&#x119;kszy DX pracy z RSC &#x2764;&#xFE0F;</p><p>Trzymam kciuki! W artykule znajdziecie wi&#x119;cej szczeg&#xF3;&#x142;&#xF3;w o tym jak autor odszyfrowa&#x142; &#x201C;wire format&#x201D;.</p><hr><h2 id="przed-next13-masters">Przed Next13 Masters</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.next13masters.pl/before?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Before Party przed NEXT 13 MASTERS</div><div class="kg-bookmark-description">Zajmij swoje miejsce! Do zobaczenia niebawem!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://uploads-ssl.webflow.com/649165462b09265de9cf5bd0/649166704ac8ef54d6f62c78_favicon.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></div><div class="kg-bookmark-thumbnail"><img src="https://uploads-ssl.webflow.com/649165462b09265de9cf5bd0/64d335f72f28c853d2973bea_superwebinar1-grafika.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Micha&#x142; Miszczyszyn i Jakuba &quot;Zaiste&quot; Neander w ramach startu NEXT13 MASTERS odpalaj&#x105; kolejne live. </p><p>Nie jeden, nie dwa, a trzy (to brzmi cheesy, ale wiecie o co chodzi &#x1F600; )</p><ul><li><strong>17 SIERPNIA | 20:00-21:30 -</strong> Zoptymalizuj wydajno&#x15B;&#x107;, popraw SEO i zwi&#x119;ksz konwersj&#x119;</li><li><strong>22 SIERPNIA | 20:00-21:30 -</strong> Dlaczego Next.js wyprzedza swoj&#x105; epok&#x119;? 5 najwa&#x17C;niejszych r&#xF3;&#x17C;nic mi&#x119;dzy Next.js 13 a innymi narz&#x119;dziami</li><li><strong>29 SIERPNIA | 20:00-21:30 -</strong> Czego nauczyli&#x15B;my si&#x119; przez 10+ lat jako full stack developerzy?</li></ul><p>Na wszystkie wydarzenia mo&#x17C;ecie zapisa&#x107; si&#x119; <a href="https://www.next13masters.pl/before?ref=news.typeofweb.com">na stronie</a>. Do zobaczenia!</p><hr><h2 id="omijanie-blokad-anti-debugging">Omijanie blokad anti-debugging</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.nullpt.rs/evading-anti-debugging-techniques?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Evading JavaScript Anti-Debugging Techniques</div><div class="kg-bookmark-description">Debuggers serve as invaluable tools that empower developers to halt code execution and thoroughly analyze its behavior at any given moment. By utilizing debuggers, developers can efficiently identify and resolve issues within their code, making it an indispensable part of their toolkit.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.nullpt.rs/favicon.ico" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-publisher">veritas</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.nullpt.rs/_next/image?url=%2Fposts%2Fevading-anti-debugging-techniques%2Fchromium_debugger.webp&amp;w=3840&amp;q=75" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Je&#x15B;li mieli&#x15B;cie kiedy&#x15B; okazj&#x119; debugowa&#x107; w przegl&#x105;darce kod 3rd party, do kt&#xF3;rego nie macie dost&#x119;pu wiecie jak wspania&#x142;a to zabawa.</p><p>By&#x107; mo&#x17C;e pr&#xF3;bowali&#x15B;cie robi&#x107; reverse engineering [which is potential illegal &#x1F4A9;] i wpadli&#x15B;cie na zabezpieczenia przeciwko debuggowaniu jak ci&#x105;g&#x142;e zatrzymywanie si&#x119; na <code>debugger;</code></p><p>Dlaczego do omini&#x119;cia tego autor zbudowa&#x142; customow&#x105; wersj&#x119; Firefox&#x2019;a &#x1F62E; - szczeg&#xF3;&#x142;y w tek&#x15B;cie.</p><hr><h2 id="pythonmonkey-%F0%9F%90%8D-%E2%9D%A4%EF%B8%8F-%F0%9F%90%B5">PythonMonkey &#x1F40D; &#x2764;&#xFE0F; &#x1F435;</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://medium.com/@willkantorpringle/pythonmonkey-javascript-wasm-interop-in-python-using-spidermonkey-bindings-4a8efce2e598?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PythonMonkey: JavaScript/WASM Interop in Python using SpiderMonkey Bindings</div><div class="kg-bookmark-description">Announcing PythonMonkey&#x2019;s alpha release&#x200A;&#x2014;&#x200A;use Python code in JavaScript and vice versa with ease and virtually no performance loss!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn-static-1.medium.com/_/fp/icons/Medium-Avatar-500x500.svg" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">Medium</span><span class="kg-bookmark-publisher">Will Pringle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://miro.medium.com/v2/resize:fit:1200/1*eiD8i14Cd6c0ooqoT29CcQ.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>&#x1F334; K&#x105;cik egzotyczny na dzisiaj.</p><p>PythonMonkey to kolejne podej&#x15B;cie (w artykule znajdziecie pokrewne projekty) na stworzenie interop&#x2019;u pomi&#x119;dzy Python&#x2019;em a JavaScript.</p><p>Zatem mo&#x17C;emy uruchomi&#x107; kod JavaScript w Python&#x2019;ie</p><pre><code class="language-python">async def someAsyncStuff():
    two_sec_promise = pythonmonkey.eval(&quot;&quot;&quot;
        new Promise((resolve, reject) =&gt; {
            setTimeout(resolve, 2000);
        });
    &quot;&quot;&quot;)

    print(&quot;before calling the 2 second timer&quot;)
    await two_sec_promise
    print(&quot;two seconds have now passed&quot;)
</code></pre><p>To rozwi&#x105;zanie jest unikatowe z paru powod&#xF3;w:</p><ul><li>Dzia&#x142;amy w event-loop, mamy mikrotaski wi&#x119;c mo&#x17C;na u&#x17C;ywa&#x107; Promises w kodzie JS &#x2764;&#xFE0F;</li><li>Wykorzystuje SpiderMonkey, silnik JS od Mozilla</li><li>Z pythona mo&#x17C;na odpali&#x107; kod kod w WebAssembly wykonywany z SpiderMonkey (i to jeszcze z Promises!)</li></ul><p>Poza uruchamianiem JS w Pythonie, mo&#x17C;emy te&#x17C; uruchomi&#x107; kod Python w JS. PythonMonkey przychodzi z PMJS kt&#xF3;ry to umo&#x17C;liwia.</p><pre><code class="language-jsx">const { getStringLength } = require(&apos;./my-python-module&apos;);

function printStringLength(s) {
  console.log(`String: &quot;${s}&quot; has a length of ${getStringLength(s)}`);
}

module.exports = { printStringLength, };
</code></pre><p>Jakie mamy zastosowania? You name it - oba &#x15B;rodowiska maj&#x105; swoje unikatowe zalety oraz ekosystem pakiet&#xF3;w kt&#xF3;ry mo&#x17C;e nam pom&#xF3;c.</p><p>Autorzy wskazuj&#x105; jeszcze inny case - je&#x15B;li chcemy aby nasze rozwi&#x105;za&#x142;o dzia&#x142;a&#x142;o zar&#xF3;wno w Pythonie jak i JS (SDK, biblioteka, etc) zamiast tworzy&#x107; adaptery lub implementowa&#x107; to samo rozwi&#x105;zanie w wielu j&#x119;zykach mo&#x17C;emy wykorzysta&#x107; PythonMonkey i napisa&#x107; binding.</p><p>&#x1F334; Koniec k&#x105;cika egzotycznego na dzisiaj.</p><hr><h2 id="cfp-na-4developers-gda%C5%84sk-do-1408">CFP na 4Developers Gda&#x144;sk do 14.08</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://4developers.org.pl/gdansk-2023/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Gda&#x144;sk 2023</div><div class="kg-bookmark-description">Prawdziwy Festiwal j&#x119;zyk&#xF3;w programowania. Konferencja s&#x142;u&#x17C;y wymianie wiedzy i do&#x15B;wiadcze&#x144; z r&#xF3;&#x17C;nych dziedzin IT. Tu spotykaj&#x105; si&#x119; eksperci oraz amatorzy.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://4developers.org.pl/wp-content/uploads/fbrfg/apple-touch-icon.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">4Developers</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://4developers.org.pl/wp-content/uploads/2023/01/4dev_cover_2023.jpg" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Wyd&#x142;u&#x17C;yli&#x15B;my o tydzie&#x144; termin CFP na gda&#x144;sk&#x105; edycje 4Developers.</p><p>Ja (Micha&#x142; Michalczuk) wraz z Bartkiem Cytrowskim opiekujemy si&#x119; &#x15B;cie&#x17C;k&#x105; JavaScript, nie kr&#x119;pujcie si&#x119; i nawrzucajcie nam &#x2026; temat&#xF3;w &#x1F60E; Wi&#x119;cej - o tym kogo szukamy <a href="https://4developers.org.pl/kogo-szukamy-gdansk-2023/?ref=news.typeofweb.com">na stronie</a>.</p><p>Oraz wpadajcie na konferencje! Do zobaczenia &#x1F44B;</p><hr><h2 id="dntdeno-to-node-transform">dnt - Deno to Node transform</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://deno.com/blog/publish-esm-cjs-module-dnt?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">dnt &#x2014; the easiest way to publish a hybrid npm module for ESM and CommonJS</div><div class="kg-bookmark-description">How to write your module with modern tooling and transform it with `dnt` to support CommonJS, ESM, browsers, Deno, Node.js, TypeScript, and more.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://deno.com/favicon.ico" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">Deno Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://deno.com/blog/publish-esm-cjs-module-dnt/og-image.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Aby opublikowa&#x107; pakiet na npm kt&#xF3;ry b&#x119;dzie szeroko u&#x17C;ywany powinien by&#x107; opublikowany jako ESM, CommonJS, z typami TypeScript, dzia&#x142;a&#x107; w Node.js, Deno i przegl&#x105;darce (je&#x15B;li zasadne).</p><p>Dodaje to &#x1F477;&#x200D;&#x2642;&#xFE0F; pracy i z&#x142;o&#x17C;ono&#x15B;ci do procesu budowania.</p><p>Deno mo&#x17C;emy wyda&#x142;o <code>dnt</code> kt&#xF3;ry zrobi za nas t&#x105; robot&#x119; je&#x15B;li napiszemy kod w&#x2026; Deno. To kolejna cegie&#x142;ka do zwi&#x119;kszenia adopcji Deno przez mo&#x17C;liwo&#x15B;&#x107; po&#x142;&#x105;czenia go z ekosystemem Node.js i npm.</p><hr><h2 id="react-tweet-16kb-bez-layout-shift">react-tweet = 16kb bez layout shift</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://vercel.com/blog/introducing-react-tweet?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing React Tweet &#x2013; Vercel</div><div class="kg-bookmark-description">Embed tweets into your React application without sacrificing performance.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.vercel.com/image/upload/front/favicon/vercel/180x180.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">Vercel</span><span class="kg-bookmark-publisher">Vercel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/1YRMX5jFvzzlaV9kYjqnPZ/26a4d330cba4c753ab3a7cef5fbca052/image.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Embeddowanie tweet&#xF3;w (chyba wci&#x105;&#x17C; si&#x119; tak nazywaj&#x105; &#x1F914;) na stronie wi&#x105;za&#x142;o si&#x119; z pobraniem ~550kb JavaScript&#x2019;u w iframe kt&#xF3;ry &#x142;adujemy na stron&#x119;. Dodatkowo dostawali&#x15B;my layout shift, kt&#xF3;ry nie poprawia&#x142; wra&#x17C;enia. Sprawd&#x17A;cie na <a href="https://publish.twitter.com/?ref=news.typeofweb.com">https://publish.twitter.com</a>.</p><p>Vercel wyda&#x142; <code>react-tweet</code>, kt&#xF3;ry rozwi&#x105;zuje te problemy dostarczaj&#x105;c w&#x142;asne komponenty UI do wy&#x15B;wietlenia tre&#x15B;ci oraz fetchuje zawarto&#x15B;&#x107; tweeta bez logowania si&#x119; do ich API.</p><p>Aby pobra&#x107; tre&#x15B;&#x107; tweeta korzystaj&#x105; z CDN twittera - <a href="https://github.com/vercel/react-tweet/blob/main/packages/react-tweet/src/api/get-tweet.ts?ref=news.typeofweb.com">https://github.com/vercel/react-tweet/blob/main/packages/react-tweet/src/api/get-tweet.ts</a></p><p>Doceniam to obej&#x15B;cie &#x1F642;</p><hr><h2 id="tailwind-connect">Tailwind connect</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://tailwindcss.com/blog/2023-07-18-tailwind-connect-2023-recap?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tailwind Connect 2023: Recap of our first in-person event - Tailwind CSS</div><div class="kg-bookmark-description">Last month, over 200 people got together in my hometown of Cambridge, Ontario to hang out, talk shop, and get a peek behind the curtain at some of the new stuff we&#x2019;ve been working on.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://tailwindcss.com/favicons/apple-touch-icon.png?v=3" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">Tailwind CSS</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://tailwindcss.com/_next/static/media/twitter-card.1e9c975f.jpg" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>W lipcu Tailwind zorganizowa&#x142; pierwsze spotkanie in-person, kt&#xF3;re mia&#x142;o by&#x107; ma&#x142;ym meetupem a wysz&#x142;o z tego spotkanie na 200 os&#xF3;b i poziom realizacji kt&#xF3;rego nie powstydzi&#x142;a by si&#x119; powa&#x17C;na konferencja. Tak wysz&#x142;o.</p><p>Jak na &#x201C;ot taki meetup&#x201D; pad&#x142;o tam sporo konkretnych og&#x142;osze&#x144;.</p><ul><li><strong>Oxide</strong> to nowy silnik Tailwind CSS, kt&#xF3;ry wykorzystuje <a href="https://lightningcss.dev/?ref=news.typeofweb.com">Lightning CSS</a> - all-in-one parser/bundler/minifikator w Rust&#x2019;cie stworzony i wykorzystywany w Parcel&#x2019;u. Oxide ma wyj&#x15B;&#x107; w Tailwind v3.4 i poza uproszczeniem konfiguracji ma przynie&#x15B;&#x107; skr&#xF3;cenie czasu budowania projektu o 50%</li><li><strong>Catalyst</strong> to zestaw komponent&#xF3;w React, kt&#xF3;ry chce si&#x119; porozpycha&#x107; na rynku bibliotek komponent&#xF3;w. Jego przewag&#x105; ma by&#x107; pe&#x142;na komponowalno&#x15B;&#x107;</li></ul><p>Spotkanie otwiera keynote Adama Watchman&#x2019;a, kt&#xF3;ry opowiada jak Tailwind z ma&#x142;ego projektu ur&#xF3;s&#x142; do rozwi&#x105;zania kt&#xF3;re zjad&#x142;o rynek i aktualnie ma 25M pobra&#x144; miesi&#x119;cznie &#x1F632;</p><hr><h2 id="generator-palet-kolor%C3%B3w-do-tailwind">Generator palet kolor&#xF3;w do Tailwind</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://uicolors.app/create?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tailwind CSS Color Generator | UI Colors</div><div class="kg-bookmark-description">Generate, edit, save and share Tailwind CSS color shades based on a given hexcode or HSL color.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://uicolors.app/favicon/apple-touch-icon.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"><span class="kg-bookmark-author">UI Colors</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://uicolors.app/og_image.png" alt="typeofweb x michalczukm #23 | server-driven UI wraca oknem"></div></a></figure><p>Pozostaj&#x105;c w temacie Tailwind&#x2019;a. Ma&#x142;e i przydatne narz&#x119;dzie do wygenerowania palet kolor&#xF3;w.</p><hr><p>To tyle na dzisiaj, do przeczytania za 2 tygodnie &#x1F44B;</p><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie. Dzi&#x119;ki!</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><b><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></b> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div>]]></content:encoded></item><item><title><![CDATA[typeofweb x michalczukm #22 | Quo vadis rejestrze npm?]]></title><description><![CDATA[<p>Siema!</p><p>Dzisiaj pisz&#x119; do was prosto z mojego terenowego wakacyjnego biura, wi&#x119;c z okazji wakejk&#xF3;w - b&#x119;dzie kr&#xF3;cej ale dalej tre&#x15B;ciwie!</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/07/image-5.png" class="kg-image" alt loading="lazy" width="2000" height="2140" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-5.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/07/image-5.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2023/07/image-5.png 1600w, https://news.typeofweb.com/content/images/2023/07/image-5.png 2088w" sizes="(min-width: 720px) 720px"></figure><p>Dzisiaj troch&#x119; danych do refleksji o tym gdzie jedzie <code>npm</code>, Prisma 5.0, TypeChat oraz par&#x119;</p>]]></description><link>https://news.typeofweb.com/typeofweb-x-michalczukm-22-quo-vadis-rejestrze-npm/</link><guid isPermaLink="false">666c67d24ad3a70001a65cfe</guid><dc:creator><![CDATA[Michał Michalczuk]]></dc:creator><pubDate>Wed, 26 Jul 2023 05:00:49 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2023/07/front-22.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2023/07/front-22.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><p>Siema!</p><p>Dzisiaj pisz&#x119; do was prosto z mojego terenowego wakacyjnego biura, wi&#x119;c z okazji wakejk&#xF3;w - b&#x119;dzie kr&#xF3;cej ale dalej tre&#x15B;ciwie!</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/07/image-5.png" class="kg-image" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?" loading="lazy" width="2000" height="2140" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-5.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/07/image-5.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2023/07/image-5.png 1600w, https://news.typeofweb.com/content/images/2023/07/image-5.png 2088w" sizes="(min-width: 720px) 720px"></figure><p>Dzisiaj troch&#x119; danych do refleksji o tym gdzie jedzie <code>npm</code>, Prisma 5.0, TypeChat oraz par&#x119; truizm&#xF3;w o TypeScript &#x1F609;</p><p>&#x1F9D1;&#x200D;&#x1F4BB; Micha&#x142; Michalczuk | <a href="https://michalczukm.xyz/?ref=news.typeofweb.com">michalczukm.xyz</a></p><hr><h2 id="quo-vadis-rejestrze-npm">Quo vadis rejestrze npm?</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.sandworm.dev/state-of-npm-2023-top-old-and-new-packages?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">State Of Npm 2023: Top Old And New Packages</div><div class="kg-bookmark-description">This article is part of the State Of Npm 2023 series. In this series, the Sandworm team delves deep into the current state of npm, unearthing fascinating statistics and unveiling intriguing facts about the registry. In the vast landscape of software&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1678226478258/rZetpwdUN.png?auto=compress,format&amp;format=webp&amp;fm=png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">Sandworm</span><span class="kg-bookmark-publisher">Gabi Dobocan</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hashnode.com/utility/r?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1687346750864%2Fe8acd8b6-b349-4cd9-913d-c2ba22123337.png%3Fw%3D1200%26h%3D630%26fit%3Dcrop%26crop%3Dentropy%26auto%3Dcompress%2Cformat%26format%3Dwebp%26fm%3Dpng" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><p>Sandworm tworzy serie artyku&#x142;&#xF3;w <strong>&#x201C;State Of Npm 2023&#x201D;</strong>. Chodzi tutaj o dane w rejestrze pakiet&#xF3;w npm, nie o aplikacj&#x119; klienck&#x105;.</p><p>Tydzie&#x144; temu ukaza&#x142; si&#x119; drugi post z tej serii - o topce nowych oraz starych pakiet&#xF3;w.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://news.typeofweb.com/content/images/2023/07/image-6.png" class="kg-image" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?" loading="lazy" width="1272" height="474" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-6.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/07/image-6.png 1000w, https://news.typeofweb.com/content/images/2023/07/image-6.png 1272w" sizes="(min-width: 720px) 720px"><figcaption><span>Ile?</span></figcaption></figure><p>Ciekawe jest to, &#x17C;e na ok 3.4M pakiet&#xF3;w ponad 1/3 (1.34M) jest m&#x142;odsza ni&#x17C; rok. Czy zaczeli&#x15B;my publikowa&#x107; w 2023 na pot&#x119;g&#x119; na npm? Niestety jest gorzej - ponad 0.5M z tych paczek zosta&#x142;o sklasyfikowanych jako spam. Wi&#x119;cej o tym <a href="https://blog.sandworm.dev/one-in-two-new-npm-packages-is-seo-spam-right-now?ref=news.typeofweb.com">jak npm jest zalewany SEO spamem znajdziecie w innym artykule</a> od sandworm.</p><p>Z innej beczki okazuje si&#x119; &#x17C;e u&#x17C;ywa&#x142;em wszystkich 20 pakiet&#xF3;w opisanych w punkcie <strong>Most Popular Old Packages</strong>, gdzie old=stworzone przed 2014r. &#x1F995;</p><p>Ciekawszym jest pierwsza publikacja z serii, kt&#xF3;ra przytacza poza ilo&#x15B;ci&#x105; pakiet&#xF3;w, te&#x17C; dane o ilo&#x15B;ci wersji i cz&#x119;stotliwo&#x15B;ci publikowania. Oraz rozmiarze samego rejestru <code>npm</code> - 24.17TB.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.sandworm.dev/state-of-npm-2023-the-overview?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">State Of Npm 2023: The Overview</div><div class="kg-bookmark-description">This article is part of the State Of Npm 2023 series. In this series, the Sandworm team delves deep into the current state of npm, unearthing fascinating statistics and unveiling intriguing facts about the registry. In the vast landscape of software&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1678226478258/rZetpwdUN.png?auto=compress,format&amp;format=webp&amp;fm=png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">Sandworm</span><span class="kg-bookmark-publisher">Gabi Dobocan</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hashnode.com/utility/r?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1686827190481%2Faa59c283-d86d-4598-ac5c-18af98d27034.png%3Fw%3D1200%26h%3D630%26fit%3Dcrop%26crop%3Dentropy%26auto%3Dcompress%2Cformat%26format%3Dwebp%26fm%3Dpng" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://news.typeofweb.com/content/images/2023/07/image-7.png" class="kg-image" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?" loading="lazy" width="1103" height="809" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-7.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/07/image-7.png 1000w, https://news.typeofweb.com/content/images/2023/07/image-7.png 1103w" sizes="(min-width: 720px) 720px"><figcaption><span>Spam, spam everywhere!</span></figcaption></figure><p>Wida&#x107; tu wyra&#x17A;nie mocny problem ze spamem jaki wybuch&#x142; w tym roku.</p><hr><h2 id="jak-zaimplementowa%C4%87-w%C5%82asny-serwer-graphql-%E2%80%93-next-13-masters"><strong>Jak zaimplementowa&#x107; w&#x142;asny serwer GraphQL? &#x2013; NEXT 13 MASTERS</strong></h2><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/C3HQe4Of5Qk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="Jak zaimplementowa&#x107; w&#x142;asny serwer GraphQL? &#x2013; NEXT 13 MASTERS"></iframe></figure><p>W ramach wprawki przed kursem o Next.js 13, Micha&#x142; wraz z Zaiste budowali na &#x17C;ywo serwer GraphQL. Ca&#x142;o&#x15B;&#x107; jest ju&#x17C; dost&#x119;pna na YouTube. Na koniec - aby nie uciek&#x142;o, jest te&#x17C; sesja Q&amp;A.</p><p>Wi&#x119;cej o kursie znajdziecie na <a href="https://www.next13masters.pl/?ref=news.typeofweb.com">next13masters.pl</a></p><hr><h2 id="5-niewygodnych-prawd-clickbait%C3%B3w-o-typescript">5 niewygodnych <s>prawd</s> clickbait&#xF3;w o TypeScript</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://oida.dev/5-truths-about-typescript/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">5 Inconvenient Truths about TypeScript</div><div class="kg-bookmark-description">I&#x2019;m writing books about TypeScript and I do workshops and trainings online and in-house. Every time I meet a new group of developers there are some TypeScript facts that they need to be confronted with:</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://oida.dev/icon/android-icon-192x192.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">fettblog.eu</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://fettblog.eu/teasers/5-truths-about-typescript.jpg" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><p>No dobra, to nie jest a&#x17C; taki clickbait, ale lata po wszystkich newsletterach od paru dni wi&#x119;c zaoszcz&#x119;dz&#x119; wam 6 minut i wymienie te 5 prawd.</p><ol><li><strong>TypeScript nie uchroni ci&#x119; przed JavaScriptem</strong> - to przecie&#x17C; nadzbi&#xF3;r JS z ca&#x142;y jego baga&#x17C;em</li><li><strong>TypeScript dodaje z&#x142;o&#x17C;ono&#x15B;ci</strong> - nie tylko na poziomie kodu, ale tak&#x17C;e konfiguracji i narz&#x119;dzi</li><li><strong>TypeScript nie jest type-safe</strong> - zw&#x142;aszcza jak macie do czynienia z operacjami IO, bo nie macie walidacji danych out-of-the-box</li><li><strong>TypeScript przychodzi w wielu &#x201C;smakach&#x201D;</strong> - mo&#x17C;emy pisa&#x107; funkcyjnie, z u&#x17C;yciem klas, dekorator&#xF3;w, u&#x17C;ywaj&#x105;c feature&#x2019;&#xF3;w kt&#xF3;rych niema w JS (jak enumy czy klasy abstrakcyjne), tsx etc.</li><li><strong>Dalej warto go u&#x17C;ywa&#x107;!</strong> A jak &#x1F60E;</li></ol><p>Z powy&#x17C;szym si&#x119; zgadzam, to samo ale w wi&#x119;kszej wiersz&#xF3;wce w linku.</p><hr><h2 id="element-dost%C4%99pny-w-firefox"><code>element()</code> dost&#x119;pny w Firefox</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.stefanjudis.com/a-firefox-only-minimap/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">A Firefox-only minimap | Stefan Judis Web Development</div><div class="kg-bookmark-description">A quick explanation on how the Firefox-only map is built using the `element()` CSS function.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.stefanjudis.com/favicon.svg" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">Stefan Judis Web Development</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://images.contentful.com/f20lfrunubsq/2FuQMHycwersLjIf4dlI7A/cdee022a4a4cefea48c79c4027f5acc3/Screen_Shot_2021-10-17_at_21.45.35.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><p>That was unexpected! Firefox wspiera eksperymentaln&#x105; funkcj&#x119; CSS <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/element?ref=news.typeofweb.com" rel="noopener">element()</a>, za pomoc&#x105; kt&#xF3;rej mo&#x17C;emy wygenerowa&#x107; <code>&lt;image&gt;</code> na podstawie ... innych element&#xF3;w strony. Na przyk&#x142;&#x105;d wy&#x15B;wietli&#x107; minimap&#x119;.</p><p>Polecam uruchomi&#x107; ten przyk&#x142;ad - oraz <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/element?ref=news.typeofweb.com" rel="noopener">dokumentacj&#x119; z MDN</a> w&#x142;a&#x15B;nie w Firefox. </p><hr><h2 id="prisma-v5szybciej-szybciej">Prisma v5 - szybciej szybciej!</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.prisma.io/blog/prisma-5-f66prwkjx72s?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Prisma 5: Faster by Default</div><div class="kg-bookmark-description">Prisma 5.0.0 introduces new changes that make it significantly faster. These changes especially improve the experience using Prisma in serverless environments.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://prismablog.vercel.app/blog/blog/apple-touch-icon.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">Prisma</span><span class="kg-bookmark-publisher">Alex Ruheniruheni_alex</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://prismablog.vercel.app/blog/blog/posts/prisma-5/meta.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><p>Po tym jak ostatnio w Prisma v4.16 dostali&#x15B;my <code>PrismaExtensions</code> w wersji produkcyjnej, w tym miesi&#x105;cu wysz&#x142;a Prisma 5!</p><p>W tej wersji postawiono g&#x142;&#xF3;wnie na performance (to niezamierzony lejtmotyw tego wydania newslettera &#x1F605;).</p><p>Przyspieszono zar&#xF3;wno warm jak i cold start (wa&#x17C;ne zw&#x142;aszcza w &#x15B;rodowisku serverless), mocno pom&#xF3;g&#x142; tutaj ich protok&#xF3;&#x142; kt&#xF3;rym komunikuje si&#x119; <code>PrismaClient</code> z <code>Prisma</code> (silnikiem zapyta&#x144;).</p><p>Dotychczas by&#x142;o to protok&#xF3;&#x142; w styli GraphQL, teraz wydali nowy o nazwie <code>jsonProtocol</code>. Wi&#x119;cej info o tym dlaczego <code>jsonProtocol</code> hula szybciej - nie widzia&#x142;em&#x2026; ale te&#x17C; za mocno nie szuka&#x142;em &#x1F605;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://news.typeofweb.com/content/images/2023/07/image-8.png" class="kg-image" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?" loading="lazy" width="1528" height="1140" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-8.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/07/image-8.png 1000w, https://news.typeofweb.com/content/images/2023/07/image-8.png 1528w" sizes="(min-width: 720px) 720px"><figcaption><span>Cold start, so hot!</span></figcaption></figure><p>Poza tym - zmieni&#x142;y si&#x119; minimalne wymagane wersje Node.js, TypeScript etc. Pe&#x142;ny change log znajdziecie <a href="https://github.com/prisma/prisma/releases/tag/5.0.0?ref=news.typeofweb.com">tutaj</a>.</p><hr><h2 id="jak-react-18-przyspieszy%C5%82">Jak React 18 przyspieszy&#x142;?</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://vercel.com/blog/how-react-18-improves-application-performance?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How React 18 Improves Application Performance &#x2013; Vercel</div><div class="kg-bookmark-description">Learn how React 18&#x2019;s concurrent features like Transitions, Suspense, and React Server Components improve application performance.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.vercel.com/image/upload/front/favicon/vercel/180x180.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">Vercel</span><span class="kg-bookmark-publisher">Lydia Hallie</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/3UTEUN0FNiuFBl2m005D0g/242b171f1b2be4a5d510d609fa17f9c9/OG_Card.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><p>A raczej - dlaczego przyspieszy&#x142;? W tek&#x15B;cie znajdziecie deep dive o tym co zmieni&#x142; React 18 je&#x15B;li chodzi o performance.</p><ul><li><strong>Concurrent React</strong> - Zamiast ca&#x142;ej operacji renderingu (przed faz&#x105; commit) wpakowanej w jednego long-taska teraz mamy wiele ma&#x142;ych task&#xF3;w kt&#xF3;re mog&#x105; by&#x107; pauzowane i wznawiane gdy wpadn&#x105; akcje o wy&#x17C;szym priorytecie. Na przyk&#x142;ad - interakcje u&#x17C;ytkownika. Wszystko to dzieje si&#x119; w tle, nie musicie zmienia&#x107; waszego kodu.</li><li><strong>Transitions API</strong> - mo&#x17C;liwo&#x15B;&#x107; oznaczenia operacji jako operacja &#x201C;transition&#x201D; (przej&#x15B;cia??), kt&#xF3;ra b&#x119;dzie wymaga&#x142;a wizualnej zmiany. Chodzi ofc o <strong><code>useTransition</code></strong></li><li><strong>React Server Components</strong></li><li><strong>Suspense</strong></li></ul><p>To w &#x17C;o&#x142;nierskich bullet-pointach. Polecam usi&#x105;&#x15B;&#x107; z kaw&#x105; do ca&#x142;ego artyku&#x142;u &#x2615;&#xFE0F;</p><hr><h2 id="protometa-meta-manager-wersji">proto - meta meta manager wersji</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://moonrepo.dev/proto?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">proto - A multi-language toolchain manager | moonrepo</div><div class="kg-bookmark-description">Lightspeed toolchain manager for programming languages and their dependency managers.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://moonrepo.dev/img/favicon.svg" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">moon</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://moonrepo.dev/img/logo.svg" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><p>Meta manager wersji. Pozwala na zarz&#x105;dzanie wersjami node.js, npm, bun, deno, yarn, pnpm, deno, go, rust.</p><p>Poza u&#x17C;ywaniem go lokalnie <code>proto</code> mo&#x17C;na te&#x17C; wpi&#x105;&#x107; w GitHub Action - dostarczaj&#x105; gotow&#x105; akcje do u&#x17C;ycia.</p><p>Czy&#x17C;by bye bye &#x1F44B; <code>nvm</code>?</p><hr><h2 id="typechatotypuj-odpowiedzi-z-chatgpt">TypeChat - otypuj odpowiedzi z ChatGPT</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://microsoft.github.io/TypeChat/blog/introducing-typechat/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing TypeChat - TypeChat</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://t1.gstatic.com/faviconV2?client=SOCIAL&amp;type=FAVICON&amp;fallback_opts=TYPE,SIZE,URL&amp;url=https://microsoft.github.io/TypeChat/blog/introducing-typechat/&amp;size=128" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">TypeChat</span></div></div></a></figure><p>Nie tylko chat GPT - og&#xF3;lnie z modeli LLM.</p><p><code>typechat</code> zosta&#x142; stworzony przez Microsoft, konkretnie przez tw&#xF3;rc&#xF3;w TypeScript, i rozwi&#x105;zuje problem kt&#xF3;rego nie by&#x142;em &#x15B;wiadomy &#x17C;e mam &#x1F605;</p><p>Konkretnie - rozmawiaj&#x105;c z chatem dostajemy odpowiedzi w formie j&#x119;zyka naturalnego kt&#xF3;ry jest ci&#x119;&#x17C;ki w programowalnej analizie. Mo&#x17C;emy poprosi&#x107; chat o przekazanie tego np. w formie JSON&#x2019;a, ale odbywa si&#x119; to przez podobie&#x144;stwo - przekazujemy przyk&#x142;adowy obiekt a chat szyje na &#x17C;ywo odpowied&#x17A;.</p><p>A gdyby tak &#x2026; przekaza&#x107; mu typy w TS/scheme, kt&#xF3;rymi ma by&#x107; opisana odpowied&#x17A;.</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/07/image-9.png" class="kg-image" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?" loading="lazy" width="968" height="582" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-9.png 600w, https://news.typeofweb.com/content/images/2023/07/image-9.png 968w" sizes="(min-width: 720px) 720px"></figure><p>Dok&#x142;adnie to robi TypeChat.</p><p>Koniecznie przejrzyjcie te&#x17C; <a href="https://microsoft.github.io/TypeChat/docs/examples/?ref=news.typeofweb.com">przyk&#x142;ady</a>, one dopiero pokazuj&#x105; jak przydatne mo&#x17C;e by&#x107; to narz&#x119;dzie! M&#xF3;j faworyt (pokazuj&#x105;cy mo&#x17C;liwo&#x15B;ci) to <a href="https://github.com/microsoft/TypeChat/tree/main/examples/calendar?ref=news.typeofweb.com">aplikacja transformuj&#x105;ca opis s&#x142;owny dodania wpisu do kalendarza na obiekt stworzony wed&#x142;ug schemy</a>.</p><hr><h2 id="projekt-frontend">Projekt Frontend</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://projektfrontend.pl/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Witaj w Projekcie Frontend</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAACKCAYAAACaRblaAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAg4SURBVHgB7d1NclNHEMDxnmeHpCob5wTIJ8C5gbxJJWEBnCCwowJVmBNgnyBKVWBrOAHOIrgqG8QJMCewOAFaBmM0mZbUwja29D56Zrpn5l8VLDtYeox+epLex8hA7tnDvvvjFljYct/15v9hY/fzEdjqCOzkDaydHIC5M4aMM5Bj9uUGwHePwNod991Gzd8agzUHUMEemF9GkGH5YcE1ibX78GUN0rQxGDNwYPYgs/LCYg+fOCi7wJN7Wvp4L6enpnyw8EKhKz0Cc7KdC5g8sHiBsrjybMCkj8UrlMWNZAEmbSxBoCxuLHkw6WIJCmVxo0mDSRNLFCiLG08WTHpYokJZLESSYNLCIgIKlR6YdLCIgkKlBSYNLCKhUOmA0Y9FNBQqDTC6saiAQukHoxeLKiiUbjA6saiEQukFow+LaiiUTjC6sCQBhdIHRg+WpKBQusDowJIkFEoPGPlYkoZC6QAjG0sWUCj5YORiyQoKJRuMTCxZQqHkgpGHJWsolEwwsrAUKGeSB0YOlgLlkmSBkYGlQFmSHDDxsRQoNZIBJi6WAqVB8cHEw1KgtCgumDhYCpQOxQMTHkuBwlAcMGGxFCiMhQcTDkuB4qGwYMJgKVA8Fg6MfywFSoDCgPGLpUAJmH8w/rAUKBHyC8YPlgIlYv7A8GMpUATkBwwvlgJFUPxg+LAUKALjBcODpUARHB+Y7lj0QxmChb+hMkfu8mjxIQ6zD4PYApzj39pb7uttUBsPmG5Y9EIZu+X+E6qTQe0BtIc992ff/d4TQEDq6g6mPRa9UIZgzL3WHwODaCaTHXcdj0Bd3cC0w6IVCq5N1m7uAEefXzkwgGuZDVBVezDNseiFsueg7AJn9t8tsKevIRMwzbAUKJdcdz5g6mMpUJbcRh5g6mEpUGrcVvpgVmMpUBrcZtpglmMpUFrcdrpgrsZSoHRYhjTBXI6lQOlegmC+xlKg8JUYmOr83ylQWDM/uUFf3wbcF6Uq45B/+/Krny4uzT5J/TVoSyqUs2ldw5jK7Wj9+fHi28X/mLw6Bm17UzVAodSCWf9xuoYEeho6PbwLBYrftD4l2dM/6OIMSzU9RkNP2qBQOsH0py9RALHMLvRAS1qhUBrBTCZ9/FK5C3oOF9QOhdIGxhg8rNRhMeYGaCgVKJQuMFt4THI1vSC91KBQqsB83zPuLbMFyXmGsnNsN04Abq9VcOOzBTcgiwfP2A3MqLLwzl0e/rVphuArDW+rjdmWjcUjlIfHtm9nx9D2a/7KyP3959cm8GKwaUbAnXQwcywfQOICeoIyXZMY2DftzwMaWQt7zzbNc+BOMpgZln/eTvcFSMoTlN+P7ZYxgPs8etA1t5b5ZgKP3VqG9/WGVDDm4w9uO4t5B5LyCwXvhB5wZOHuJ3d9uKYCzmS+6B3hHugKKo8v3JrmHwr3o3UrCzB2ZsS9df7vACQslD4oVPpgKngx+4IHuOCZejHTC4VKGQxOFjDEC/MdiScDiLVA+qFQaYKZuPtn3gzLdO0CexC6dKBQaYGxbvPA+s3n9O2XwyrXfh04MC8gVOlBoVIBM3I6zq1Azh+DW33cmR6s67t0oVDawYxwI9zFaUkuObr/5QbYa6+9bahLH8rZjr6xsK1sw92lULArzhvyBCYvKJQmMFdCwZackcgMJk8olAYwS6FgK851ZgKTNxRKMpiVULAasyh0BFOgnE0imFpQsJrzs7QEU6BcliQwtaFgDWZ+agimQFmWBDCNoGAN55SrCaZAqVNMMI2hYC1mq1wBpkBpUgwwraBgzbFMF+YKMAVKm0KCaQ0Fa4dlujAXwBQoXQoBphMUrD2W6cLMweAHJRQoXfMI5tM+mOpOFyhYNyweywwK5QcMUyKxZAqFEgtGHJbMoVAiwYjCUqCcSxwYMVgKlEsTBUYElgJlaWLARMdSoNRKBJioWAqURkUHEw1LgdKqqGCiYClQOhUNTHAsBQpLUcAExVKgsBYcTDAsBYqXgoIJgqVA8VowMN6xKIEydgNxZA2MzATeL35qAOcI7ln5078GAeMVi3Qo7h8/xNkj1t1gLxvo+8e2VwH0zWx2yx7IzDsYb1hwgNcMvAWBUBDJuoV7baYodQ+Au4LRDJ/2zDZ4yguWORS+yf74ms5D83TTDKBDODvCJ4CBG73fQFoGBk+vm8fgIS9YHry3+zibI8gK56+982zTHAFTD4/t7nziZVEZ93TkY0bwCpjDtYpEKPh8zgkFc3fIrokxY9aKfAFmx7JWiXukjeYv/EbgIaFg+jjdPDDHjsWtVW6DnLxCoYSCYb8fWLHMNUt59xMECiUNjHsqugXMca9Z+iCjoFAoYWB6O/j6kTFWLFbGW+UoUChJYE6Z7w/eNYuB6xC3qFAoKWCMaCxxEwGFkvq2uku8WOyZnXBhEwWFig0GP7YPGGPFYuLMLy8SChUTzIT5/mDF4haOdQtpjURDoSKBGXNvsWbFcg3gAMKlAgoVGozbD/YGmGPFMj+WYgj+UwWFCgyG/YHL/m4owGCohEIFAjPy8emw7Fjmu8aH4CfVUCjfYKyn6/ayncXTQCQBhfIIxstaBfOCZbp2scB5tFZSUCgPYKbjBJ7ytgUXD11kGogkoVCMYMZ4JKDPcfJ+KkjHQw+ThnK2juOEUNiPBLxYkJPMWg5ENlColuMUBAoW7PTVhgORHRSq4TgFg4IFPTG+5kBkC4WqOU5BoWBBsWArBiJ7KNSKcQoOBQuOBbtiIAqUC10xTlGgYFGwYBcGokC5ogvjFA1K9HAgHozsMfeBxak1H6cPONEA5Bz7p6on2n0BD6j/ATEgm/iLcPTsAAAAAElFTkSuQmCC" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">Frontend Architecture</span><span class="kg-bookmark-publisher">M&#xF3;j kana&#x142; na YouTubie</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://projektfrontend.pl/assets/logo-43ea0fc0.svg" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><blockquote>Darmowy ebook na temat architektury frontendu &#x2013; polecam!<br>Micha&#x142; Miszczyszyn</blockquote><p>I blame him &#x1F61B;</p><p>Sam zd&#x105;&#x17C;y&#x142;em przejrze&#x107; ebooka - przyjemnie, w prosty spos&#xF3;b opisuje czym s&#x105; boundaries, jak dzieli&#x107; projekt na warstwy, jak podzieli&#x107; nasz projekt frontendowy (r&#xF3;wnie&#x17C; w podej&#x15B;ciu bardziej DDD). </p><p>Mo&#x17C;na czyta&#x107; &#x1F642;</p><hr><h2 id="co-zrobi%C4%87-gdy-nie-lubisz-orm%E2%80%99%C3%B3w">Co zrobi&#x107; gdy nie lubisz ORM&#x2019;&#xF3;w?</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/kristiandupont/kanel?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - kristiandupont/kanel: Generate Typescript types from Postgres</div><div class="kg-bookmark-description">Generate Typescript types from Postgres. Contribute to kristiandupont/kanel development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">kristiandupont</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/a9ec52598e24beff62b9d02e7fe85f93d8c032347ed4441cfe7c6009f82c83af/kristiandupont/kanel" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><p>Je&#x15B;li nie macie zamiaru u&#x17C;ywa&#x107; w waszym projekcie ORM&#x2019;a (Prismy, Sequelize, TypeORM etc.) ale wci&#x105;&#x17C; chcecie mie&#x107; first-class experience je&#x15B;li chodzi o typowanie danych - <code>kanel</code> mo&#x17C;e by&#x107; <strong>cz&#x119;&#x15B;ci&#x105;</strong> waszego rozwi&#x105;zania.</p><p>To narz&#x119;dzie pozwoli wam wygenerowa&#x107; typy TypeScript dla schemy istniej&#x105;cej bazy Postgres.</p><p>Mo&#x17C;ecie uzupe&#x142;ni&#x107; go o type-safe SQL query builder, wykorzystuj&#x105;cy mocno mechanizm <strong>Template Literal types</strong> - czyli</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://kysely.dev/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Kysely | Kysely</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://kysely.dev/img/favicon.ico" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"><span class="kg-bookmark-author">Kysely</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://kysely.dev/img/logo.svg" alt="typeofweb x michalczukm #22 | Quo vadis rejestrze npm?"></div></a></figure><hr><p>To tyle na dzisiaj. Wracam do urlopowania si&#x119;. Do przeczytania za 2 tygodnie &#x1F44B;</p><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie, poprostu <strong>odpisz na tego maila</strong>. Dzi&#x119;ki!</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><b><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></b> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div>]]></content:encoded></item><item><title><![CDATA[Polski frontend i backend newsletter @ typeofweb.com × michalczukm.xyz #21]]></title><description><![CDATA[<p>Siema!</p><p>Dwa tygodnie min&#x119;&#x142;y od poprzedniego wydania, to idealna okazja aby powita&#x107; was w ten &#x15B;rodowy poranek gar&#x15B;ci&#x105; news&#xF3;w! </p><p>Dzisiaj b&#x119;dzie o boksowaniu si&#x119; z CommonJS i o tym &#x17C;e &#x17A;le u&#x17C;ywamy SVG.</p>]]></description><link>https://news.typeofweb.com/21/</link><guid isPermaLink="false">666c67d24ad3a70001a65cfd</guid><dc:creator><![CDATA[Michał Michalczuk]]></dc:creator><pubDate>Wed, 12 Jul 2023 05:00:55 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2023/07/front-21.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2023/07/front-21.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><p>Siema!</p><p>Dwa tygodnie min&#x119;&#x142;y od poprzedniego wydania, to idealna okazja aby powita&#x107; was w ten &#x15B;rodowy poranek gar&#x15B;ci&#x105; news&#xF3;w! </p><p>Dzisiaj b&#x119;dzie o boksowaniu si&#x119; z CommonJS i o tym &#x17C;e &#x17A;le u&#x17C;ywamy SVG. Tak&#x17C;e o tym &#x17C;e dorobili&#x15B;my si&#x119; kolejnego sposobu ataku z wykorzystaniem npm - <code>Manifest Confusion</code>. Jakie us&#x142;ugi przesta&#x142;y by&#x107; darmowe a jakie frameworki wyda&#x142;y nowe major release z szalon&#x105; ilo&#x15B;ci&#x105; feature&#xF3;w = 0. Business as usual.</p><p>Poni&#x17C;ej znajdziecie 12 news&#xF3;w z ostatnich 2ch tygodni z moim komentarzem i opisem.</p><p>&#x1F9D1;&#x200D;&#x1F4BB; Micha&#x142; Michalczuk | <a href="https://michalczukm.xyz/?ref=news.typeofweb.com">michalczukm.xyz</a></p><hr><h2 id="po%C5%BCegnaj-si%C4%99-z-svg-in-js">Po&#x17C;egnaj si&#x119; z SVG-in-JS</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://kurtextrem.de/posts/svg-in-js?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Breaking Up with SVG-in-JS in 2023</div><div class="kg-bookmark-description">Technical deep-dive on why you shouldn&#x2019;t have SVGs in your JS bundle and better techniques for JSX usage.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://kurtextrem.de/favicon-32x32.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">kurtextrem</span><span class="kg-bookmark-publisher">Jacob &#x2018;kurtextrem&#x2019; Gro&#xDF;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://kurtextrem.de/assets/posts/2/cover-v.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>I to jest serio dobra rada. Okazuje si&#x119;, &#x17C;e jest spora szansa, &#x17C;e wasze pliki .svg l&#x105;duj&#x105; w &#x2026; waszym bundlu .js.</p><p>Co za tym idzie - przegl&#x105;darka przed wykonaniem kodu .js musi go sparsowa&#x107; i skompilowa&#x107;. Razem z waszymi kilometrami znak&#xF3;w opisuj&#x105;cych .svg.</p><p>Je&#x15B;li u&#x17C;ywacie .svg w taki spos&#xF3;b</p><pre><code class="language-javascript">// App.jsx
import HeartIcon from &quot;./HeartIcon.svg&quot;;
const App = () =&gt; &lt;HeartIcon fill=&quot;red&quot; /&gt;
</code></pre><p>To bundler przerobi to na komponent reactowy kt&#xF3;ry zawiera ca&#x142;y plik .svg</p><pre><code class="language-javascript">// HeartIcon.svg after svgr (simplified and before JSX transformation) - &#x26A0;&#xFE0F;&#xFE0F; don&apos;t copy this.
export default props =&gt; (
  &lt;svg viewBox=&quot;0 0 300 300&quot; {...props}&gt;{/* &#x2B05;&#xFE0F; note the props spread */}
    &lt;g&gt;&lt;path d=&quot;M0 200 v-200 h200 a100,100 90 0,1 0,200 a100,100 90 0,1 -200,0z&quot; /&gt;&lt;/g&gt;
  &lt;/svg&gt;
);
</code></pre><p>Czy sam napisa&#x142;em du&#x17C;o kodu kt&#xF3;ry dodaje <code>.svg</code> do wynikowego bundla <code>.js</code> ? Winny jak cholera!</p><p>W artykule znajdziecie wiele strategii jak osadzi&#x107; ten kod w HTML albo poprawnie pobra&#x107; go jako cache&#x2019;owalny zas&#xF3;b, w zale&#x17C;no&#x15B;ci od tego jak krytyczny jest to obrazek.</p><hr><h2 id="play-with-mdn">Play with MDN</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://developer.mozilla.org/en-US/blog/introducing-the-mdn-playground?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing the MDN Playground: Bring your code to life! | MDN Blog</div><div class="kg-bookmark-description">MDN is launching a code Playground. Users can prototype ideas and expand all live samples into an interactive experience.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://developer.mozilla.org/favicon-48x48.cbbd161b.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">MDN Web Docs</span><span class="kg-bookmark-publisher">Florian Dieminger</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://developer.mozilla.org/en-US/blog/introducing-the-mdn-playground/play.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>MDN dorobi&#x142; si&#x119; w&#x142;asnego playgroundu. Zanim kto&#x15B; rzuci &#x1F5FF; kamieniem z napisem <em>&#x201C;dlaczego nie u&#x17C;yli istniej&#x105;cego rozwi&#x105;zania jak jsfiddle, Codepen, CodeSandbox, Stackblitz (wklej sw&#xF3;j ulubiony)&#x201D;</em> - warto rzuci&#x107; okiem na artyku&#x142;.</p><p>Teraz przyk&#x142;ady na MDN b&#x119;d&#x105; nie do&#x15B;&#x107;, &#x17C;e interaktywne - to b&#x119;dzie mo&#x17C;na od razu je zmodyfikowa&#x107; i sprawdzi&#x107; dzia&#x142;anie nie ruszaj&#x105;c si&#x119; z strony dokumentacji.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://news.typeofweb.com/content/images/2023/07/image-1.png" class="kg-image" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21" loading="lazy" width="1638" height="1588" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-1.png 600w, https://news.typeofweb.com/content/images/size/w1000/2023/07/image-1.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2023/07/image-1.png 1600w, https://news.typeofweb.com/content/images/2023/07/image-1.png 1638w" sizes="(min-width: 720px) 720px"><figcaption><span>Party like a boss z MDN</span></figcaption></figure><p>Dokumentacja powoli powoli b&#x119;dzie migrowa&#x107; do wykorzystania interaktywnych przyk&#x142;ad&#xF3;w, narazie wybrane artyku&#x142;y dosta&#x142;y ten feature.</p><p>Co ciekawe - rozwa&#x17C;ano u&#x17C;ycie <a href="https://microsoft.github.io/monaco-editor/?ref=news.typeofweb.com">monaco</a>, edytora u&#x17C;ytego w VSCode, ale finalnie tw&#xF3;rcy wybrali <a href="https://codemirror.net/?ref=news.typeofweb.com">CodeMirror</a>, kt&#xF3;ry ma by&#x107; l&#x17C;ejsz&#x105; alternatyw&#x105; dla monaco.</p><p>Ok, przeczytane. Teraz mo&#x17C;na rzuci&#x107; kamieniem.</p><hr><h2 id="troch%C4%99-historii-nodejs">Troch&#x119; historii Node.js</h2><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/hi-RVrtTvi4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="&#x1F5C3;&#xFE0F; Z Archiwum IT | Node.js w 2009 - Jak to si&#x119; sta&#x142;o &#x17C;e JavaScript chodzi na serwerze? | odc. 5"></iframe></figure><p>Wydali&#x15B;my nowy &#x201C;Z Archiwum IT&#x201D; o <strong>historii Node.js</strong>. Pierwsze wydanie by&#x142;o w 2009 wi&#x119;c uznali&#x15B;my &#x17C;e kwalifikuje si&#x119; ju&#x17C; do naszego przekopywania archiwali&#xF3;w &#x1F609;</p><p><strong>Gdzie nas s&#x142;ucha&#x107;?</strong></p><p><a href="https://youtube.com/playlist?list=PL36Z5rytrT-UguZLZOQfivFsoKnW__u_A&amp;ref=news.typeofweb.com">&#x1F4F9; YouTube,</a> <a href="https://open.spotify.com/show/7keYNEayM3Qk7yDHSpPP6v?ref=news.typeofweb.com">&#x1F399;&#xFE0F;Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/z-archiwum-it/id1688978818?uo=4&amp;itsct=podtail_podcasts&amp;itscg=30200&amp;ls=1&amp;at=1001l39ag&amp;ct=podtail-profile&amp;ref=news.typeofweb.com">&#x1F399;&#xFE0F;Apple Podcasts</a></p><p>Podcast robimy wsp&#xF3;lnie z Just Join IT. Pozdr!</p><hr><h2 id="dawno-nie-by%C5%82o-nowej-wersji-typescripttypescript-52-beta">Dawno nie by&#x142;o nowej wersji TypeScript - TypeScript 5.2 beta</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-2-beta/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Announcing TypeScript 5.2 Beta - TypeScript</div><div class="kg-bookmark-description">Today we are excited to announce the availability of TypeScript 5.2 Beta. To get started using the beta, you can get it through NuGet, or through npm with the following command: npm install -D typescript@beta Here&#x2019;s a quick list of what&#x2019;s new in TypeScript 5.2!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://devblogs.microsoft.com/typescript/wp-content/uploads/sites/11/2018/10/Microsoft-Favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">TypeScript</span><span class="kg-bookmark-publisher">Daniel Rosenwasser</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://devblogs.microsoft.com/typescript/wp-content/uploads/sites/11/2018/08/typescriptfeature.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>&#x1F31F; Gwiazd&#x105; tego odcinka jest <code>using</code>.</p><p>Nie jest to feature TypeScript, a proposal do <a href="https://github.com/tc39/proposal-explicit-resource-management?ref=news.typeofweb.com">EcmaScript w stage&#x2019;u 3</a>, kt&#xF3;rego mo&#x17C;emy ju&#x17C; u&#x17C;ywa&#x107; w TS.</p><p>TypeScrip implementuje nowe funkcjonalno&#x15B;ci kt&#xF3;re s&#x105; jeszcze jako proposale je&#x15B;li osi&#x105;gne&#x142;y 3 etap, wi&#x119;c tutaj wszystko si&#x119; zgadza.</p><p>A co to w&#x142;a&#x15B;ciwie jest? Znane nam dobrze z innych j&#x119;zyk&#xF3;w destruktory, czy te&#x17C; <code>defer</code>. Czyli mo&#x17C;liwo&#x15B;&#x107; dodania logiki kt&#xF3;ra wykona si&#x119; podczas zniszczenia obiektu lub podczas jakiego&#x15B; &#x201C;hooka&#x201D;. W wypadku JS - na zamkni&#x119;ciu zakresu.</p><p>Brzmi przydatnie je&#x15B;li macie do posprz&#x105;tania zasoby lub handlery do zwolenienia - do plik&#xF3;w, do bazy etc. Mo&#x17C;emy doda&#x107; zar&#xF3;wno synchroniczny jak i asynchroniczny destruktor. Aby doda&#x107; pieprzu - musicie wykorzysta&#x107; globalnie zdefiniowany symbol aby to obs&#x142;u&#x17C;y&#x107;.</p><p><a href="https://www.totaltypescript.com/typescript-5-2-new-keyword-using?ref=news.typeofweb.com">Tutaj wi&#x119;cej przyk&#x142;ad&#xF3;w</a> u Matta Pocock&#x2019;a.</p><pre><code class="language-javascript">import { open } from &quot;node:fs/promises&quot;;
const getFileHandle = async (path: string) =&gt; {
  const filehandle = await open(path, &quot;r&quot;);
  return {
    filehandle,
    [Symbol.asyncDispose]: async () =&gt; {
      await filehandle.close();
    },
  };
};
{
  await using file = await getFileHandle(&quot;thefile.txt&quot;);
  // Do stuff with file.filehandle
} // Automatically disposed!
</code></pre><p>Mam mocny flashback z C#, ale widz&#x119; tutaj par&#x119; zastosowa&#x144; - zw&#x142;aszcza przyk&#x142;ady operuj&#x105;ce na <code>fs</code> czy z po&#x142;&#x105;czeniem do bazy do mnie przemawiaj&#x105;. Podoba mi si&#x119; to bardziej ni&#x17C; <code>try-finally</code> rozsiane po ca&#x142;ym kodzie, ale prawdopodobnie nie wykorzystam jej szybko w produkcyjnym kodzie.</p><p>Osoby nie b&#x119;d&#x105;ce na bierz&#x105;co z tym co si&#x119; dzieje w galopuj&#x105;cym &#x15B;wiatku JS, w&#x142;a&#x15B;nie wywracaj&#x105; oczami gdy pr&#xF3;bujecie im wyt&#x142;umaczy&#x107; r&#xF3;&#x17C;nic&#x119; deklaracji zmiennej przez <code>var</code> vs <code>let</code> vs <code>const</code> vs <code>using</code>.</p><p><strong>Co wi&#x119;cej w tym wydaniu TS?</strong></p><p>Zieranie metadanych w nowej implementacji dekorator&#xF3;w (Java developerzy lubi&#x105; to). Dostajemy kolejny pot&#x119;&#x17C;ny mechanizm do dekorator&#xF3;w, polecam przejrze&#x107; przyk&#x142;ad z serializacj&#x105; w artykule.</p><p>Pozosta&#x142;e rzeczy to g&#x142;&#xF3;wnie stabilizacja i poprawki.</p><hr><h2 id="nie-u%C5%BCywajcie-wi%C4%99cej-commonjs-albo-u%C5%BCywajcie">Nie u&#x17C;ywajcie wi&#x119;cej CommonJS! Albo u&#x17C;ywajcie!</h2><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">A great time to get into JavaScript <a href="https://t.co/TDvx7Cpp7x?ref=news.typeofweb.com">pic.twitter.com/TDvx7Cpp7x</a></p>&#x2014; EGOIST (@localhost_5173) <a href="https://twitter.com/localhost_5173/status/1675142562473185281?ref_src=twsrc%5Etfw&amp;ref=news.typeofweb.com">July 1, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></figure><p><strong>&#x1F996;Deno:</strong> Nie u&#x17C;ywajcie wi&#x119;cej CommonJS! <br><strong>&#x1F96F; Bun:</strong> Hold my bear - tu macie wsparcie dla CommonJS</p><p>Browser wars - by&#x142;o. <br>Framework wars - by&#x142;o. <br>Teraz czas na runtime wars!</p><p>Deno pisze o tym dlaczego CommonJS jest z&#x142;e, i z czego historycznie wynika&#x142;o. Oraz jaki baga&#x17C; za sob&#x105; ci&#x105;gnie.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://deno.com/blog/commonjs-is-hurting-javascript?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">CommonJS is hurting JavaScript</div><div class="kg-bookmark-description">How CommonJS became Node&#x2019;s module system, ESM solved modules for the browser, and why supporting both slows down the JavaScript ecosystem.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://deno.com/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">Deno Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://deno.com/blog/commonjs-is-hurting-javascript/og-image.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>W tym samym czase Bun m&#xF3;wi - trzymajcie wsparcie dla CommonJS. Wiemy &#x17C;e nigdzie si&#x119; nie wybiera!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://bun.sh/blog/commonjs-is-not-going-away?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">CommonJS is not going away | Bun Blog</div><div class="kg-bookmark-description">CommonJS is here to stay, and that&#x2019;s okay. Better tooling will solve today&#x2019;s developer experience issues.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://bun.sh/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">Bun Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://github.com/oven-sh/bun/assets/3084745/87414629-c433-4141-ba19-08a9d4451196" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>Co ciekawe - musz&#x119; si&#x119; zgodzi&#x107; z obydwoma artyku&#x142;ami &#x1F600;</p><hr><h2 id="es2023-zatwierdzone-ale-my-o-wa%C5%BCnych-rzeczach">ES2023 zatwierdzone, ale my o wa&#x17C;nych rzeczach</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://caniuse.com/mdn-javascript_builtins_array_tosorted?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">JavaScript built-in: Array: toSorted | Can I use... Support tables for HTML5, CSS3, etc</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://caniuse.com/img/favicon-128.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">Can I use... Support tables for HTML5, CSS3, etc</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://caniuse.com/img/browserstack.svg" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>Mo&#x17C;ecie przej&#x15B;&#x107; przez ca&#x142;y <a href="https://www.ecma-international.org/news/ecma-international-approves-new-standards-at-the-125th-general-assembly-27-june-2023?ref=news.typeofweb.com">dokument od TC39</a>, ja wrzuc&#x119; to co mnie najbardziej cieszy w nowym standardzie - nowe metody w <code>Array.prototype</code> :heavybreathing:</p><p>Czyli <code>toSorted</code>, <code>toReversed</code>, <code>toSpliced</code> i<code>with</code> kt&#xF3;re zwracaj&#x105; kopi&#x119; tablicy &#x2764;&#xFE0F; zamiast mutowa&#x107; obiekt - jak to wiele operacji na <code>Array</code> ma w zwyczaju. W ko&#x144;cu!</p><p>Co wi&#x119;cej - wszystkie g&#x142;&#xF3;wne przegl&#x105;darki ju&#x17C; wspieraj&#x105; te metody!<br>&#x1F98A; FireFox <a href="https://twitter.com/sebastienlorber/status/1671166785738133505?ref=news.typeofweb.com" rel="noopener">do&#x142;&#x105;czy&#x142; do imprezy</a>.</p><hr><h2 id="factory-factory-factory">Factory Factory Factory</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://factoryfactoryfactory.net/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Factory factory factory</div><div class="kg-bookmark-description">Explaining what&#x2019;s wrong with modern software development by allegory.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://factoryfactoryfactory.net/img.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>Taki ma&#x142;y rancik na modern development pipeline (lub &#x201C;wsp&#xF3;&#x142;czesn&#x105; rur&#x119; rozwojow&#x105;&#x201D; je&#x15B;li kto&#x15B; woli). Zapraszam do przeczytania &#x1F642;</p><hr><h2 id="dlaczego-obchodzi-nas-zawarto%C5%9B%C4%87-manifestu-npm">Dlaczego obchodzi nas zawarto&#x15B;&#x107; manifestu npm?</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.vlt.sh/blog/the-massive-hole-in-the-npm-ecosystem?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The massive bug at the heart of the npm ecosystem</div><div class="kg-bookmark-description">An overview of the new features released in v1 - code block copy, multiple authors, frontmatter layout and more</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.vlt.sh/static/favicons/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">vlt /v&#x14D;lt/</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.vlt.sh/static/images/banner.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>Podczas publikowania pakietu do rejestru npm nie dzieje si&#x119; magia - tool CLI <code>npm</code> wysy&#x142;a &#x17C;&#x105;danie HTTP <code>PUT</code> z manifestem waszej paczki oraz spakowanym pakietem (w formie <code>tarball</code>).</p><p>Skoro idzie tam &#x17C;&#x105;danie HTTP to mo&#x17C;emy je zrobi&#x107; r&#x119;cznie &#x2026; i wys&#x142;a&#x107; manifest kt&#xF3;ry nie pokrywa si&#x119; z tym co znajduje si&#x119; w naszym <code>pacakge.json</code> zapakowanym w tarball &#x1FAE2;</p><p>Ten typ ataku zosta&#x142; nazwany <code>Manifest Confusion</code>.</p><p>I tutaj zaczyna si&#x119; robi&#x107; ciekawie - bo tak zmodyfikowany manifest mo&#x17C;e nie wskazywa&#x107; &#x17C;adnych <code>dependencies</code> czy skrypt&#xF3;w uruchamianych np podczas <code>install</code>, natomiast b&#x119;d&#x105; one w kodzie wykonawczym w <code>tarball</code>. I zostan&#x105; wykonane &#x1F628;</p><p>W konsekwencji otwieramy sobie drog&#x119; do wykonania atak&#xF3;w kt&#xF3;rych nie wykryje wi&#x119;kszo&#x15B;&#x107; tooli do audytu, poniewa&#x17C; operuj&#x105; one na <code>manifest</code> paczki a nie na <code>package.json</code> z opublikowanego <code>tarball</code>&apos;a.</p><p>(tutaj kudos dla <a href="http://socket.dev/?ref=news.typeofweb.com">socket.dev</a> kt&#xF3;ry wykrywa Manifest Confusion, <a href="https://socket.dev/npm/package/darcyclarke-manifest-pkg/overview/2.1.15?ref=news.typeofweb.com">tutaj przyk&#x142;ad</a>)</p><p>Pikanterii dodaje fakt, &#x17C;e <code>npm</code> jest &#x15B;wiadomy tego zachowania i zagro&#x17C;e&#x144;, ale unika tematu. Dzia&#x142;a to w taki spos&#xF3;b od lat, wi&#x119;c zmiana mog&#x142;a by zepsu&#x107; kawa&#x142;ek internetu w bardzo unikatowy spos&#xF3;b.</p><p>Ze tak zacytuj&#x119; <a href="https://xkcd.com/1172?ref=news.typeofweb.com">klasyka</a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://news.typeofweb.com/content/images/2023/07/image-2.png" class="kg-image" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21" loading="lazy" width="278" height="386"><figcaption><a href="https://xkcd.com/1172/?ref=news.typeofweb.com"><span>https://xkcd.com/1172/</span></a></figcaption></figure><p>Z rzeczy w temacie, kt&#xF3;re warto poleci&#x107;</p><ul><li><a href="https://github.com/sindresorhus/np?ref=news.typeofweb.com">np</a>, czyli narz&#x119;dzie CLI od <a href="https://github.com/sindresorhus?ref=news.typeofweb.com">Sindre Sorhus&#x2019;a</a> u&#x142;atwiaj&#x105;ce opublikowanie pakietu.</li><li><a href="https://github.com/NodeSecure/cli?ref=news.typeofweb.com">NodeSecure CLI</a>, narz&#x119;dzie do wizualizacji drzewa zale&#x17C;no&#x15B;ci pakiet&#xF3;w. Przydatne je&#x15B;li chcecie prze&#x15B;ledzi&#x107; jakie&#x15B; transient dependencies</li></ul><hr><h2 id="railway-przestaje-by%C4%87-darmowe">Railway przestaje by&#x107; darmowe</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.railway.app/p/introducing-trial-hobby-pro-plans?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing the $5 Plan</div><div class="kg-bookmark-description">The story of how and why we decided to introduce new plans and pricing.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.railway.app/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">Railway Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://res.cloudinary.com/railway/image/upload/v1685740702/introducing-5-plan-og_ijvigz.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>Je&#x15B;li korzystali&#x15B;cie z bardzo hojnego darmowego offeringu Railway - PaaS kt&#xF3;ry dostarcza wam infrastruktur&#x119; do zdeployowania waszego rozwi&#x105;zania, to musicie wyci&#x105;gn&#x105;&#x107; $5 miesi&#x119;cznie z kieszeni.</p><p>Us&#x142;uga wprowadza plan Hobby za $5 miesi&#x119;cznie jako minimalny.</p><p>Darmowy hosting przyci&#x105;ga&#x142; wielu &#x201C;bad-actors&#x201D; wykorzystuj&#x105;cych ich platform&#x119; do kopania krypto, agregator&#xF3;w torrent&#xF3;w etc. Wyeliminowanie i ogarnianie ich by&#x142;o zbyt kosztowne, wi&#x119;c zdecydowali &#x17C;e aby p&#xF3;j&#x15B;&#x107; dalej musz&#x105; uci&#x105;&#x107; darmowy offering.</p><p>Nie jestem zdziwiony t&#x105; decyzj&#x105;. Aby m&#xF3;c dowozi&#x107; nowe rzeczy, potrzebujesz wyci&#x105;gn&#x105;&#x107; ludzi z pracy kt&#xF3;ra nie przynosi ci korzy&#x15B;ci - jak walka z nadu&#x17C;yciami twojego darmowego planu.</p><p>Plan Hobby ma by&#x107; mocno hojny, wi&#x119;c to dobrze zainwestowane $5 &#x1F642;</p><p>Co ciekawe - Heroku rok temu w Sierpniu podje&#x142;o podobn&#x105; <a href="https://blog.heroku.com/next-chapter?ref=news.typeofweb.com">dezycj&#x119; o wycofaniu darmowego planu.</a> Problem by&#x142; ten sam - za du&#x17C;o inwestowali o odsiewanie &#x201C;bad-actors&#x201D; darmowego planu.</p><hr><h2 id="ember-50">Ember 5.0</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.emberjs.com/ember-5-0-released?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ember 5.0 Released</div><div class="kg-bookmark-description">EmberJS 5.0 embodies the commitment to stability and reliability that developers have come to expect from the Ember ecosystem. The Ember team has worked hard to remove all the deprecations and make&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.emberjs.com/favicon.svg" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">Ember.js Blog</span><span class="kg-bookmark-publisher">Jen Weber</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.emberjs.com/images/logos/e-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>Tak to tutaj zostawi&#x119;. Wersja 5.0 to wydanie raczej stabilizuj&#x105;ce i przygotowuj&#x105;ce grunt pod nowy l&#x15B;ni&#x105;cy Ember Polaris - kt&#xF3;ry zapowiedziano w 2021 roku.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://news.typeofweb.com/content/images/2023/07/image-3.png" class="kg-image" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21" loading="lazy" width="656" height="168" srcset="https://news.typeofweb.com/content/images/size/w600/2023/07/image-3.png 600w, https://news.typeofweb.com/content/images/2023/07/image-3.png 656w"><figcaption><span>Serio serio</span></figcaption></figure><p>Mam flashback z poprzedniej edycji newslettera gdy <a href="https://news.typeofweb.com/20#svelte-turns-v4">opisywa&#x142;em wydanie Svelte v4.0</a>.</p><hr><h2 id="shadcnuikomponenty-bez-tworzenia-zale%C5%BCno%C5%9Bci">shadcn/ui - komponenty bez tworzenia zale&#x17C;no&#x15B;ci</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ui.shadcn.com/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">shadcn/ui</div><div class="kg-bookmark-description">Beautifully designed components built with Radix UI and Tailwind CSS.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ui.shadcn.com/favicon-16x16.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-author">shadcn/ui</span><span class="kg-bookmark-publisher">shadcn</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://ui.shadcn.com/og.jpg" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>O nie nie. To nie jest biblioteka komponent&#xF3;w, <a href="https://ui.shadcn.com/?ref=news.typeofweb.com"><strong><code>shadcn/ui</code></strong></a> nie znajdziesz w rejestrze <code>npm</code>.</p><p>To s&#x105; komponenty kt&#xF3;re mo&#x17C;esz wrzuci&#x107; bezpo&#x15B;rednio do swojego kodu.</p><p>Idea jest podobna idea jak <a href="https://tailwindui.com/?ref=news.typeofweb.com">TailwindUI</a> - nie dodajesz zale&#x17C;no&#x15B;ci do twojego projektu, o kt&#xF3;r&#x105; musisz potem dba&#x107;, aktualizowa&#x107; i jeste&#x15B; ogarniony w modyfikacjach do publicznego API.</p><p>Zamiast tego - kopiujesz kod komponentu kt&#xF3;ry ci&#x119; interesuje i umieszczasz go w swoim projekcie.</p><p>Jest tw&#xF3;j. Mo&#x17C;esz go modyfikowa&#x107; i psu&#x107; do woli.</p><p>Par&#x119; ciekawostek</p><ul><li><a href="https://ui.shadcn.com/?ref=news.typeofweb.com"><strong><code>shadcn/ui</code></strong></a><strong> jest</strong> oparte o Radix.</li><li>Kent C Dodds u&#x17C;ywa <a href="https://twitter.com/kentcdodds/status/1673806183935909888?ref=news.typeofweb.com">jej teraz buduj&#x105;c Epic Web Dev</a></li><li>Dostajemy wbudowany <a href="https://twitter.com/shadcn/status/1673055193968287744?ck_subscriber_id=1887150587&amp;ref=news.typeofweb.com">AI generator komponent&#xF3;w</a> (news o AI odhaczony)</li></ul><hr><h2 id="react-jam">React JAM</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://reactjam.com/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">React Jam</div><div class="kg-bookmark-description">Build a game in 10 days using React, learn and win prizes!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://reactjam.com/favicon.svg" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"><span class="kg-bookmark-publisher">Kenney Creator of Kenney.nl</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://reactjam.com/social-preview.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #21"></div></a></figure><p>React JAM czyli 10 dniowy (tak) hackaton pisania gier w React zaczyna si&#x119; za 8 dni. B&#x119;dzie trwa&#x142; 20-30.07.2023</p><p>Motyw przewodni tej edycji zostanie og&#x142;oszony 20.07 - na stronie mo&#x17C;ecie si&#x119; zapisa&#x107; na event &#x1F642; Dajcie zna&#x107;&#xA0;co stwo&#x17C;yli&#x15B;cie!</p><hr><p>To tyle na dzisiaj, do przeczytania za 2 tygodnie &#x1F44B;</p><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie, poprostu <strong>odpisz na tego maila</strong>. Dzi&#x119;ki!</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><b><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></b> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div>]]></content:encoded></item><item><title><![CDATA[Polski frontend i backend newsletter @ typeofweb.com × michalczukm.xyz #20]]></title><description><![CDATA[Vercel AI, komponent React do gry w szachy, Svelte 4, DevPod - środowisko programistyczne i wiele innych. Czekają na was inspiracje i informacje!]]></description><link>https://news.typeofweb.com/20/</link><guid isPermaLink="false">666c67d24ad3a70001a65cfb</guid><dc:creator><![CDATA[Michał Michalczuk]]></dc:creator><pubDate>Wed, 28 Jun 2023 05:00:11 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2023/06/cover_ghost_20.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2023/06/cover_ghost_20.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"><p><em>Witajcie w naszym najnowszym newsletterze Polski frontend i backend! Nawet najmniej spostrzegawcze osoby zauwa&#x17C;&#x105;, &#x17C;e autorem tego wydania jest nie kto inny, a znany i lubiany </em><a href="https://michalczukm.xyz/?ref=news.typeofweb.com"><em>Micha&#x142; Michalczuk</em></a><em>, kt&#xF3;rego mo&#x17C;ecie kojarzy&#x107; cho&#x107;by ze &#x15A;niadania z Programowaniem. Miejmy nadziej&#x119;, &#x17C;e Micha&#x142; zago&#x15B;ci tu na d&#x142;u&#x17C;ej, a cz&#x119;stotliwo&#x15B;&#x107;&#xA0;wysy&#x142;ania newslettera si&#x119;&#xA0;zwi&#x119;kszy &#x1F643; &#x2013;&#xA0;tyle s&#x142;owem wst&#x119;pu ode mnie &#x2013; Micha&#x142;a Miszczyszyna &#x2013; oddaj&#x119; g&#x142;os drugiemu Micha&#x142;owi.</em></p><p>Przygotowali&#x15B;my dla Was zbi&#xF3;r nowo&#x15B;ci z JavaScriptowego &#x15B;wiatka. Dowiecie si&#x119;, jak Vercel wkracza w &#x15B;wiat sztucznej inteligencji, jak gra&#x107;&#xA0;w szachy w Reakcie, co wprowadza Svelte 4, czym jest DevPod&#x2026; a to tylko cz&#x119;&#x15B;&#x107; temat&#xF3;w, kt&#xF3;re czekaj&#x105; na was w tym wydaniu!</p><h2 id="newsy">Newsy</h2><h3 id="vercel-idzie-w-ai-czyli-vercel-ai-sdk">Vercel idzie w AI, czyli Vercel AI SDK</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://vercel.com/blog/introducing-the-vercel-ai-sdk?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing the Vercel AI SDK &#x2013; Vercel</div><div class="kg-bookmark-description">An interoperable, streaming-enabled, edge-ready software development kit for AI apps built with React and Svelte.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.vercel.com/image/upload/front/favicon/vercel/180x180.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"><span class="kg-bookmark-author">Vercel</span><span class="kg-bookmark-publisher">Jared Palmer</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/2p7j27gz2BMdPX2eKWnWW5/4a7bca211c985b21e8b7b481e1375f78/AI_SDK.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Ale Vercel robi to inaczej - bo dostarcza nam adaptery do pracy z r&#xF3;&#x17C;nymi modelami j&#x119;zykowymi jak OpenAI czy Hugging Face, dzi&#x119;ki kt&#xF3;rym mo&#x17C;emy szybko stworzy&#x107; chat gadaj&#x105;cy z nimi.</p><p>&#x1FA84;<code>npm install ai</code> i jedziemy. Minimalny kod do aplikacji chat&#x2019;a to ok 50 linijek w aplikacji opartej o Next.js.</p><p>Co wi&#x119;cej - pod koniec kwietnia Vercel odpali&#x142; <a href="https://sdk.vercel.ai/?ref=news.typeofweb.com">sdk.vercel.ai</a> interaktywny prompt playground gdzie mo&#x17C;na por&#xF3;wnywa&#x107; dzia&#x142;anie 20 modeli LLMs</p><p>Teraz dosz&#x142;a tam opcja <code>chat</code> oparta w&#x142;a&#x15B;nie na Vercel AI SDK. M&#xF3;wi&#x142;em o tym &#x17C;e <a href="https://github.com/vercel-labs/ai?ref=news.typeofweb.com" rel="noopener">Vercel AI SDK</a> to projekt Open Source? Tak jest!<br>Najbardziej zagadkowe jest to, &#x17C;e nazwa <code>ai</code> by&#x142;a jeszcze wolna w rejestrze npm &#x1F914;</p><h3 id="komponent-react-do-grania-%E2%80%A6-w-szachy">Komponent React do grania &#x2026; w szachy</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/Clariity/react-chessboard?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - Clariity/react-chessboard: The React Chessboard Library used at ChessOpenings.co.uk. Inspired and adapted from the unmaintained Chessboard.jsx.</div><div class="kg-bookmark-description">The React Chessboard Library used at ChessOpenings.co.uk. Inspired and adapted from the unmaintained Chessboard.jsx. - GitHub - Clariity/react-chessboard: The React Chessboard Library used at Chess&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">Clariity</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/615a4708c80027cee3a63f5a24b4f374a80643c4e5b86d43a0b77786a9891d1e/Clariity/react-chessboard" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Nikt nie pyta&#x142;, wszyscy chcieli. <br><a href="https://chessopenings.co.uk/?ref=news.typeofweb.com">chessopenings.co.uk</a> wrzuci&#x142;o swoja plansz&#x119; do szach&#xF3;w (je&#x15B;li obrazi&#x142;em w&#x142;a&#x15B;nie jaki&#x15B; puryst&#xF3;w szachowych to &#x1F937;), kt&#xF3;ra jest gotowym do u&#x17C;ycia komponentem Reactowym. Przy okazji pokazuj&#x105; jak po&#x142;&#x105;czy&#x107; to z <a href="https://github.com/jhlywa/chess.js/blob/master/README.md?ref=news.typeofweb.com" rel="noopener">chess.js</a> i zagra&#x107;. Bardzo szanuj&#x119;, &#x17C;e maj&#x105; <a href="https://react-chessboard.vercel.app/?path=%2Fstory%2Fexample-chessboard--play-vs-random&amp;ref=news.typeofweb.com" rel="noopener">storybooka w kt&#xF3;rym mo&#x17C;na to przetestowa&#x107;.</a></p><h3 id="svelte-turns-v4">Svelte turns v.4!</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://svelte.dev/blog/svelte-4?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Announcing Svelte 4</div><div class="kg-bookmark-description">Updated performance, developer experience, and site</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://svelte.dev/favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></div><div class="kg-bookmark-thumbnail"><img src="https://svelte.dev/blog/svelte-4/card.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Tak. To jest news kt&#xF3;ry wyskakuje z ka&#x17C;dego newslettera. Nie b&#x119;dziemy tacy i te&#x17C; go wrzucamy.</p><p>Po 3 latach od wydaniu wersji 3, przychodzi 4! Niby prosta matematyka i semantic versioning, ale wszyscy pami&#x119;tamy wydanie <code>@angular/core</code> v2 a po nim od razu v4. Bez zabawy w p&#xF3;&#x142;&#x15B;rodki.</p><p>Je&#x15B;li spodziewali&#x15B;cie si&#x119; po Svelte 4 kaskady nowo&#x15B;ci to nie tym razem. To raczej maintenance major update, gdzie g&#x142;&#xF3;wnie dostali&#x15B;my:</p><ul><li>mniej zale&#x17C;no&#x15B;ci <code>svelte</code>. By&#x142;o 61 paczek, jest 16. Szanuj&#x119;.</li><li>sama paczka <code>svelte</code> wa&#x17C;y o 75% mniej. By&#x142;o 10.6MB, jest 2.8MB. I tak przepada w czarnej dziurze <code>node_modules</code>, ale warte odnotowania!</li><li>lepsze wsparcie dla IDE - teraz przej&#x15B;cie do metody z <code>svelte</code> przekieruje nas do &#x17A;r&#xF3;de&#x142;, a nie do typ&#xF3;w w <code>.d.ts</code></li><li>minimalna wersja Node.js &#x2013; 16.x</li></ul><p>Mo&#x17C;ecie polecie&#x107; z <code>npx svelte-migrate@latest svelte-4</code> aby odpali&#x107; migrator z&#xA0;v3.</p><p>A kiedy wjedzie g&#x142;&#xF3;wne danie? Svelte 4 czy&#x15B;ci i przygotowuje grunt pod Svelte 5, kt&#xF3;ry ma wprowadzi&#x107; nowe rzeczy. <br>Jakie rzeczy? Pozw&#xF3;lcie, &#x17C;e zacytuj&#x119; pe&#x142;n&#x105; <a href="https://docs.google.com/document/d/1IA9Z5rcIm_KRxvh_L42d2NDdYRHZ72MfszhyJrsmf5A/edit?ref=news.typeofweb.com#heading=h.ngr6kgbvscwx" rel="noopener">roadmap&#x119;</a> wersji 5.</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2023/06/Untitled.png" class="kg-image" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20" loading="lazy" width="647" height="110" srcset="https://news.typeofweb.com/content/images/size/w600/2023/06/Untitled.png 600w, https://news.typeofweb.com/content/images/2023/06/Untitled.png 647w"></figure><h3 id="devpodcodespaces-ale-opensource">DevPod - Codespaces, ale OpenSource</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://devpod.sh/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">DevPod - Open Source Dev-Environments-As-Code</div><div class="kg-bookmark-description">DevPod is infrastructure-independent and client-only, which makes it incredibly easy to get started with. Codespaces but open-source, client-only and unopinionated. Works with any infra, any progamming language, any IDE, etc.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://devpod.sh/images/645e37fea7fd751544ce0800_favicon1.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"><span class="kg-bookmark-author">Open Source Dev-Environments-As-Code</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://devpod.sh/images/645e396483f5c7623402c209_opengraph.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Je&#x15B;li podobnie jak my z przyjemno&#x15B;ci&#x105; ogl&#x105;dali&#x15B;cie jak GitHub wydaje <a href="https://github.com/features/codespaces?ref=news.typeofweb.com" rel="noopener">Codespaces</a> tylko po to aby nigdy ich nie u&#x17C;y&#x107; to macie jeszcze jedn&#x105; okazj&#x119; aby zmierzy&#x107; si&#x119; z narz&#x119;dziem do przygotowywania zunifikowanego &#x15B;rodowiska developerskiego.</p><p><a href="https://devpod.sh/?ref=news.typeofweb.com">Devpod</a> to Open Source&#x2019;owa alternatywa, kt&#xF3;ra jest klientem pozwalaj&#x105;cym nam &#x142;&#x105;czy&#x107; si&#x119; do kontener&#xF3;w. </p><p>Z dost&#x119;pnych provider&#xF3;w mamy docker (po prostu pod&#x142;&#x105;cz kontener), Kubernetes, AWS, Google Cloud, Azure, DigitalOcean. Mo&#x17C;emy tez pod&#x142;&#x105;czy&#x107; si&#x119; go&#x142;&#x119;biem pocztowym&#x2026; tj. po prostu po SSH.</p><p>Dzia&#x142;a z VSCode i IDE od JetBrains. U mnie dzia&#x142;a &#x1F61B;</p><h3 id="state-of-css-2023-ruszy%C5%82o">State of CSS 2023 ruszy&#x142;o</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://survey.devographics.com/en-US/survey/state-of-css/2023?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">State of CSS 2023</div><div class="kg-bookmark-description">Take the State of CSS survey</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://survey.devographics.com/apple-icon.png?61e2db30c3ccc786" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></div><div class="kg-bookmark-thumbnail"><img src="https://devographics.github.io/surveys/state_of_css/css2023/images/css2023-og.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Here we go again! Kolejna ods&#x142;ona ankiety <code>State of CSS</code> w&#x142;a&#x15B;nie ruszy&#x142;a. Do 15 lipca mo&#x17C;ecie j&#x105; uzupe&#x142;ni&#x107; aby pokaza&#x107; jak my jako community widzimy zmiany w CSS. I czy w og&#xF3;le je widzimy &#x1F602; </p><p>Dobrym bajerem w tegorocznym wydaniu jest opcja dodania feature&#x2019;a o kt&#xF3;ry jeste&#x15B;my pytani do &#x201C;reading list&#x201D; aby po wype&#x142;nieniu na spokojnie sobie o nim poczyta&#x107;.</p><p>Wstawcie &#x2615; i siadajcie, czeka was 12 sekcji po kilka pyta&#x144;.</p><h3 id="paginowanie-z-async-generatorami">Paginowanie z async generatorami</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://jrsinclair.com/articles/2023/how-to-consume-a-paginated-api-using-javascript-async-generators/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to consume a paginated API using JavaScript async generators</div><div class="kg-bookmark-description">Generators can be powerful tools for efficient data processing. But things get a bit tricky when we add asynchronous calls into the mix. Asynchronous generators, however, come to the rescue by handling scenarios involving promises. They come in handy for a variety of real-world scenarios. And one of&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://jrsinclair.com/assets/android-icon-192x192.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"><span class="kg-bookmark-author">James Sinclair</span><span class="kg-bookmark-publisher">James Sinclair</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://jrsinclair.com/assets/how-to-consume-a-paginated-api-using-javascript-async-generators.jpg" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Zaryzykuj&#x119; tez&#x119;, &#x17C;e generatory w JavaScript nie s&#x105; najpopularniejszym featurem tego j&#x119;zyka. Dodam do tego, &#x17C;e asynchroniczne generatory te&#x17C; nie nale&#x17C;&#x105; do JavaScript 101.</p><p>G&#x142;&#xF3;wnie dlatego, &#x17C;e trzeba mie&#x107; dobry scenariusz w kt&#xF3;rym generatory maj&#x105; sens.</p><p><a href="https://jrsinclair.com/?ref=news.typeofweb.com" rel="noopener">James Sinclair</a> pope&#x142;ni&#x142; artyku&#x142; w kt&#xF3;rym pokazuje jak mo&#x17C;na potrawersowa&#x107; po paginowalnym API za pomoc&#x105; async generators.<br>Prawie mnie nabra&#x142;, &#x17C;e jest to wygodny spos&#xF3;b na rozwi&#x105;zanie tego problemu.</p><p>Czy b&#x119;d&#x119; z&#x142;o&#x15B;liwy je&#x15B;li napisz&#x119;, &#x17C;e <a href="https://redux-saga.js.org/?ref=news.typeofweb.com" rel="noopener">redux-saga</a> wci&#x105;&#x17C; szuka sensu w generatorach?</p><h3 id="mamy-jquery-w-domu">Mamy jQuery w domu</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://gomakethings.com/create-your-own-personal-jquery?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Create your own personal jQuery!?</div><div class="kg-bookmark-description">Yesterday, I shared a video of me converting some jQuery code into vanilla JS. Today, I thought it would be fun to show how you can create your own tiny jQuery-like library using the JavaScript class pattern and some modern methods.
Let&#x2019;s dig in!
Psst! If you want to learn how to do stuff like this,&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://gomakethings.com/img/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"><span class="kg-bookmark-author">Go Make Things</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://gomakethings.com/img/og.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Chris Ferdinandi pokazuje jak przepisa&#x107; kod jQuery na Vanilla JS - meh &#x1F971;</p><p>Chris Ferdinandi pokazuje jak napisa&#x107; jQuery opieraj&#x105;c si&#x119; o modern JavaScript - <em>you have my attention </em>&#x1F928;.</p><p>Pewnie dlatego, &#x17C;e bardzo lubi&#x119; fluent API (czyli takie gdzie mo&#x17C;ecie po <code>.</code> wywo&#x142;a&#x107; kolejn&#x105; metod&#x119; w &#x142;a&#x144;cuchu), ten artyku&#x142; umili&#x142; mi czas. <br>I dla tej warto&#x15B;ci dodanej polecam go przeczyta&#x107;.</p><h3 id="basecamp-wylogowa%C5%82-si%C4%99-z-chmury">Basecamp wylogowa&#x142; si&#x119; z chmury</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://world.hey.com/dhh/we-have-left-the-cloud-251760fb?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">We have left the cloud</div><div class="kg-bookmark-description">Since it took us years to get into the cloud in the first place, I originally imagined it would take us years to get out as well. But all that work to containerize our applications and prepare them for the cloud actually turned out to make it relatively easy to exit. And now, after six months of eff&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://world.hey.com/dhh/avatar-df6405b0f7fafda980fd38b04c334bec936aef69" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></div><div class="kg-bookmark-thumbnail"><img src="https://world.hey.com/dhh/avatar-df6405b0f7fafda980fd38b04c334bec936aef69" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>W pa&#x17A;dzierniku 2022 <a href="https://dhh.dk/?ref=news.typeofweb.com" rel="noopener">David Heinemeier Hansson</a> (czyli DHH, tw&#xF3;rca Ruby On Rails oraz Basecamp czy Hey, CTO 37signals) - <a href="https://world.hey.com/dhh/why-we-re-leaving-the-cloud-654b47e0?ref=news.typeofweb.com" rel="noopener">zapowiada&#x142;</a>, &#x17C;e wyci&#x105;gn&#x105; chmurow&#x105; wtyczk&#x119; wszystkim swoim us&#x142;ugom.</p><p>No, nie tak brutalnie - ale og&#x142;osili wielkie odej&#x15B;cie od chmury na w&#x142;asn&#x105; infrastruktur&#x119; ze wzgl&#x119;du na ogromne koszty za AWS. Opisuje, &#x17C;e przy przej&#x15B;ciu na w&#x142;asn&#x105; infr&#x119; powinni oszcz&#x119;dzi&#x107; $1.5 miliona rocznie.</p><p><strong>tldr;</strong> Zrobili to - w p&#xF3;&#x142; roku przemigrowali wszystko.</p><p>Czasem DHH potrafi zrobi&#x107; burz&#x119; w szklance wody o jakie&#x15B; g&#x142;upoty na twitterze i si&#x119; obrazi&#x107; jak 5 latek ale tutaj dowi&#xF3;z&#x142; temat mocno &#x1F4AA;</p><h3 id="google-standard-product-lifecycle">Google Standard Product Lifecycle</h3><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">Google standard product lifecycle <a href="https://t.co/VFnjCClNFe?ref=news.typeofweb.com">pic.twitter.com/VFnjCClNFe</a></p>&#x2014; Jason Miller &#x1F98A;&#x269B; (@_developit) <a href="https://twitter.com/_developit/status/1673757274785951744?ref_src=twsrc%5Etfw&amp;ref=news.typeofweb.com">June 27, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></figure><p>Tak jest. Je&#x15B;li chcecie pokopa&#x107; w temacie to polecam <a href="https://killedbygoogle.com/?ref=news.typeofweb.com" rel="noopener">Killed by Google</a></p><h2 id="nasze-tematy"><br>Nasze tematy</h2><h3 id="z-archiwum-it">Z Archiwum IT</h3><figure class="kg-card kg-embed-card"><iframe style="border-radius: 12px" width="624" height="351" title="Spotify Embed: Z Archiwum IT" frameborder="0" allowfullscreen allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy" src="https://open.spotify.com/embed/show/7keYNEayM3Qk7yDHSpPP6v/video?si=cb4c643f0f124e6f&amp;utm_source=oembed"></iframe></figure><p><strong>Z Archiwum IT</strong> - to nasz nowy podcast, gdzie <strong>Micha&#x142; Michalczuk</strong> wsp&#xF3;lnie z <strong>Bartkiem Cytrowskim</strong> opowiadamy o starszych technologiach - daj&#x105;c kontekst dlaczego i w jakim celu powsta&#x142;y. OFC polane &#x15B;mieszkowym sosem &#x1F9D1;&#x200D;&#x1F373;</p><p>Ostatnio wyszed&#x142; 4. odcinek o <strong>Microsoft Java w latach &apos;90 - Visual J++ i innych dziwach</strong>. W poprzednich odcinkach m&#xF3;wili&#x15B;my o ewolucji formularzy HTML oraz jQuery (sounds familiar?).</p><p>Dajcie zna&#x107; co s&#x105;dzicie o tym formacie i o czym chcieliby&#x15B;cie us&#x142;ysze&#x107; &#x1F60A;<br>&#x141;apcie nas na socialach <a href="https://www.linkedin.com/in/michalczukm/?ref=news.typeofweb.com" rel="noopener">Micha&#x142; Michalczuk</a> i <a href="https://www.instagram.com/michalczuk_michal/?ref=news.typeofweb.com" rel="noopener">m&#xF3;j Instagram</a> oraz <a href="https://www.linkedin.com/in/cytrowski/?ref=news.typeofweb.com" rel="noopener">Bartosz Cytrowski</a>. </p><p><strong>Gdzie nas s&#x142;ucha&#x107;?</strong> <a href="https://youtube.com/playlist?list=PL36Z5rytrT-UguZLZOQfivFsoKnW__u_A&amp;ref=news.typeofweb.com">YouTube</a>, <a href="https://open.spotify.com/show/7keYNEayM3Qk7yDHSpPP6v?ref=news.typeofweb.com">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/z-archiwum-it/id1688978818?uo=4&amp;itsct=podtail_podcasts&amp;itscg=30200&amp;ls=1&amp;at=1001l39ag&amp;ct=podtail-profile&amp;ref=news.typeofweb.com">Apple Podcasts</a><br>Podcast robimy wsp&#xF3;lnie z <a href="https://justjoin.it/?ref=news.typeofweb.com" rel="noopener">Just Join IT</a>. Pozdr!</p><h3 id="nextjs-13-wywraca-wszystko-do-g%C3%B3ry-nogami">Next.js 13 wywraca wszystko do g&#xF3;ry nogami</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.next13masters.pl/webinar?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">NEXT 13 MASTER &#x2013; WEBINAR</div><div class="kg-bookmark-description">Zajmij swoje miejsce! Do zobaczenia niebawem!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://uploads-ssl.webflow.com/649165462b09265de9cf5bd0/649166704ac8ef54d6f62c78_favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></div><div class="kg-bookmark-thumbnail"><img src="https://uploads-ssl.webflow.com/649165462b09265de9cf5bd0/6491b1d58a5331c19b357ae8_Logo%20dark%20background.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>Pod takim has&#x142;em Micha&#x142; Miszczyszyn i Jakub &#x201E;Zaiste&#x201D; Neander organizuj&#x105;&#xA0;kolejny webinar. Za nieco clickbaitowym tytu&#x142;em widzimy nawet bardziej clickbaitowy nag&#x142;&#xF3;wek: &#x201E;<strong>Co zmienia NEXT.js 13 i jak budowa&#x107; na nim aplikacje zarabiaj&#x105;ce miliony?</strong>&#x201D;. Ale nie martwcie si&#x119;! Webinar to 50 minut &#x201E;mi&#x119;cha&#x201D; i sesja Q&amp;A do oporu.</p><p><strong>Widzimy si&#x119; ju&#x17C; dzi&#x15B;&#xA0;(28 czerwca) o 20:00!</strong> Obowi&#x105;zuj&#x105; zapisy.</p><h3 id="4developers-gda%C5%84sk-ju%C5%BC-si%C4%99-zbli%C5%BCa">4Developers Gda&#x144;sk ju&#x17C; si&#x119;&#xA0;zbli&#x17C;a</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://4developers.org.pl/gdansk-2023/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Gda&#x144;sk 2023</div><div class="kg-bookmark-description">Prawdziwy Festiwal j&#x119;zyk&#xF3;w programowania. Konferencja s&#x142;u&#x17C;y wymianie wiedzy i do&#x15B;wiadcze&#x144; z r&#xF3;&#x17C;nych dziedzin IT. Tu spotykaj&#x105; si&#x119; eksperci oraz amatorzy.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://4developers.org.pl/wp-content/uploads/fbrfg/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"><span class="kg-bookmark-author">4Developers</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://4developers.org.pl/wp-content/uploads/2023/01/4dev_cover_2023.jpg" alt="Polski frontend i backend newsletter @ typeofweb.com &#xD7; michalczukm.xyz #20"></div></a></figure><p>W tym roku ja (<strong>Micha&#x142; Michalczuk</strong>) razem z <strong>Bartkiem Cytrowskim</strong> jeste&#x15B;my w radzie programowej lokalnej Gda&#x144;skiej edycji <a href="https://4developers.org.pl/?ref=news.typeofweb.com" rel="noopener"><strong>4Developers</strong></a> &#x1F973;, kt&#xF3;ra odb&#x119;dzie si&#x119; <strong>26.09.2023</strong> w Gda&#x144;sku. Odpowiadamy za &#x15B;cie&#x17C;k&#x119; JavaScript (<strong>surprise!</strong>).<br><br>Zach&#x119;camy was gor&#x105;co aby&#x15B;cie nas odwiedzili na scenie z swoim tematem - &#x1F4C4; <a href="https://cfp.4developers.org.pl/gdansk-2023/?ref=news.typeofweb.com" rel="noopener">Call For Papers</a> jest otwarte do <strong>7.08.2023</strong><br><br>Co z&#x142;ego to oczywi&#x15B;cie my. Nasz&#x105; rol&#x105; jest wybranie najbardziej warto&#x15B;ciowych i interesuj&#x105;cych temat&#xF3;w i nie mo&#x17C;emy si&#x119; tego doczeka&#x107;!</p><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie, poprostu <strong>odpisz na tego maila</strong>. Dzi&#x119;ki!</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><b><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></b> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div>]]></content:encoded></item><item><title><![CDATA[Polski frontend i backend newsletter @ typeofweb.com #19]]></title><description><![CDATA[<p><em>Witajcie w najnowszym newsletterze Polski Frontend i Backend! W dzisiejszym wydaniu przybli&#x17C;ymy Wam najnowsze trendy i rozwi&#x105;zania z zakresu tworzenia stron internetowych oraz aplikacji webowych. Przedstawimy Wam r&#xF3;wnie&#x17C; ciekawe artyku&#x142;y i narz&#x119;dzia, kt&#xF3;re pomog&#x105; Wam rozwija&</em></p>]]></description><link>https://news.typeofweb.com/19/</link><guid isPermaLink="false">666c67d24ad3a70001a65cfa</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Tue, 24 Jan 2023 11:03:09 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2023/01/newsletter_cover_edition--2-.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2023/01/newsletter_cover_edition--2-.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><p><em>Witajcie w najnowszym newsletterze Polski Frontend i Backend! W dzisiejszym wydaniu przybli&#x17C;ymy Wam najnowsze trendy i rozwi&#x105;zania z zakresu tworzenia stron internetowych oraz aplikacji webowych. Przedstawimy Wam r&#xF3;wnie&#x17C; ciekawe artyku&#x142;y i narz&#x119;dzia, kt&#xF3;re pomog&#x105; Wam rozwija&#x107; Wasze umiej&#x119;tno&#x15B;ci i skuteczniej realizowa&#x107; projekty. Zach&#x119;camy do lektury i komentowania!</em></p><p>Tak, ten wst&#x119;p w ca&#x142;o&#x15B;ci napisa&#x142;&#xA0;za mnie <a href="https://chat.openai.com/chat?ref=news.typeofweb.com">ChatGPT</a>. Co Wy na to?</p><h2 id="frontend">Frontend</h2><h3 id="nextauth-zamienia-si%C4%99-w-authjs">NextAuth zamienia si&#x119;&#xA0;w Auth.js!</h3><p>Kojarzycie NextAuth &#x2013; najpopularniejsz&#x105;&#xA0;bibliotek&#x119;&#xA0;do <s>autentykacji</s> uwierzytelniania w Next.js? Tw&#xF3;rcy podj&#x119;li odwa&#x17C;n&#x105; decyzj&#x119; o od&#x142;&#x105;czeniu si&#x119;&#xA0;od Nexta i budowie narz&#x119;dzia uniwersalnego &#x2013;&#xA0;pod nazw&#x105;&#xA0;<strong>Auth.js</strong>. Na pierwszy ogie&#x144; id&#x105; <strong>SvelteKit Auth</strong> oraz <strong>Solid Auth</strong>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://vercel.com/blog/announcing-sveltekit-auth?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Announcing SvelteKit Auth: Bringing NextAuth.js to all frameworks &#x2013; Vercel</div><div class="kg-bookmark-description">SvelteKit Auth is a simple, low configuration authentication library for SvelteKit applications, with support for many popular OAuth providers.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.vercel.com/image/upload/front/favicon/vercel/180x180.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><span class="kg-bookmark-author">Vercel</span><span class="kg-bookmark-publisher">balazsorban44</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/2p65z8C3M94URhipOf2QEh/e934c1aeb4a41b2e5ee770414cb97cea/SvelteKit_Auth.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h3 id="ezno">Ezno</h3><p>Pami&#x119;tacie jeszcze Ezno? To <strong>eksperymentalny parser i type-checker do TypeScripta</strong>. My&#x15B;la&#x142;em, &#x17C;e by&#x142; to jeden z typowych projekt&#xF3;w do szuflady, o kt&#xF3;rym autor zapomnia&#x142; nast&#x119;pnego dnia po pochwaleniu si&#x119;&#xA0;nim na Hackernews. Myli&#x142;em si&#x119;. Okazuje si&#x119;, &#x17C;e projekt jest nadal rozwijany i zyskuje kolejne featury! Warto doda&#x107;, &#x17C;e Ezno napisano w Rust, co gwarantuje doskona&#x142;&#x105; wydajno&#x15B;&#x107;.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://kaleidawave.github.io/posts/ezno-23/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ezno in &#x2019;23</div><div class="kg-bookmark-description">Where is Ezno? What&#x2019;s next?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://kaleidawave.github.io/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></div><div class="kg-bookmark-thumbnail"><img src="https://kaleidawave.github.io/media/ezno-2023-banner.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h3 id="jak-zbudowa%C4%87-dost%C4%99pny-theme-picker">Jak zbudowa&#x107; dost&#x119;pny theme picker?</h3><p>Ku przera&#x17C;eniu moim <a href="https://pubmed.ncbi.nlm.nih.gov/23654206/?ref=news.typeofweb.com">i naukowc&#xF3;w</a>, popularyzuj&#x105; si&#x119; aplikacje i strony internetowe, w kt&#xF3;rych mo&#x17C;liwe jest prze&#x142;&#x105;czenie t&#x142;a na ciemne. <strong>Pomijaj&#x105;c zgubny wp&#x142;yw takiego ustawienia na nasze oczy,</strong> skoro ta chwilowa moda ju&#x17C; zaistnia&#x142;a, to warto si&#x119;&#xA0;zastanowi&#x107;, w jaki spos&#xF3;b stworzy&#x107; taki prze&#x142;&#x105;cznik motywu w naszej appce, aby by&#x142; on dost&#x119;pny dla wszystkich (w rozumieniu A11Y).</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://fossheim.io/writing/posts/accessible-theme-picker-html-css-js/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Building an accessible theme picker with HTML, CSS and JavaScript. by Sarah L. Fossheim</div><div class="kg-bookmark-description">In this tutorial, we&#x2019;ll use HTML, CSS, and vanilla JavaScript to add an accessible theme picker component to a website.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://fossheim.io/styles/img/logo.ico" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><span class="kg-bookmark-publisher">Building an accessible theme picker with HTML, CSS and JavaScript. by Sarah L. Fossheim</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.sanity.io/images/njlrbdui/production/aac92be353577628a07b9b506e8006a16786ebe0-2400x1350.png?w=1600" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h2 id="backend">Backend</h2><h3 id="node-1813-lts-i-wsparcie-dla-mockowania-w-nodetest">Node 18.13 (LTS) i wsparcie dla mockowania w <code>node:test</code></h3><p><code>node:test</code> to <s>natywny</s> wbudowany w node.js modu&#x142; pozwalaj&#x105;cy na pisanie test&#xF3;w. Od 18.13 dostarcza r&#xF3;wnie&#x17C; funkcje do mockowania, a razem z <code>node:assert</code> pozwalaj&#x105; ca&#x142;kowicie zast&#x105;pi&#x107; narz&#x119;dzia typu <code>vitest</code> czy <code>jest</code> do prostych test&#xF3;w!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nodejs.org/en/blog/release/v18.13.0/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Node v18.13.0 (LTS) | Node.js</div><div class="kg-bookmark-description">Node.js&#xAE; is a JavaScript runtime built on Chrome&#x2019;s V8 JavaScript engine.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nodejs.org/static/images/favicons/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><span class="kg-bookmark-author">Node.js</span><span class="kg-bookmark-publisher">Node.js</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nodejs.org/static/images/logo-hexagon-card.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h3 id="prisma-490-i-zmiany%E2%80%A6">Prisma 4.9.0 i zmiany&#x2026;</h3><p>Prisma 4.9.0 opr&#xF3;cz szcz&#x105;tkowego wsparcia dla widok&#xF3;w SQL, wprowadza nowo&#x15B;&#x107; w postaci Accelerate. Accelerate jest us&#x142;ug&#x105; Prismy, kt&#xF3;ra zast&#x119;puje Data Platform. Jest to swoisty CDN dla danych pozwalaj&#x105;cy na znacznie zmniejszenie op&#xF3;&#x17A;nienia w pobieraniu informacji z bazy danych. Nie ma jeszcze zbyt wielu konkretnych informacji, trzeba poczeka&#x107;. Jest to ju&#x17C; kolejna pr&#xF3;ba Prismy na monetyzacj&#x119;&#xA0;ich fantastycznego projektu&#x2026;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.prisma.io/blog/announcing-accelerate-usrvpi6sfkv4?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Prisma | Introducing Accelerate in Early Access</div><div class="kg-bookmark-description">Query up to 1000x faster on any Prisma-supported database with our new distributed cache and scalable connection pool for Serverless apps.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://prisma-blog-ebon.vercel.app/blog/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><span class="kg-bookmark-author">Prisma</span><span class="kg-bookmark-publisher">Andrew Carlsonandrewicarlson</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://prisma-blog-ebon.vercel.app/blog/posts/accelerate-early-access/accelerate-ea-hero.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h3 id="inne">Inne</h3><h3 id="zwolnienia-w-bran%C5%BCy-it">Zwolnienia w bran&#x17C;y IT</h3><p>Niestety, sama TypeScriptowa biblioteka nie przynosi &#x17C;adnych pieni&#x119;dzy, a zesp&#xF3;&#x142; ponad 100 os&#xF3;b sam si&#x119;&#xA0;nie utrzyma&#x2026; dlatego <strong>Prisma zdecydowa&#x142;a si&#x119;&#xA0;zwolni&#x107; niemal 20% os&#xF3;b.</strong> Oczywi&#x15B;cie nie s&#x105; to ani pierwsze ani ostatnie zwolnienia w bran&#x17C;y: <strong>Microsoft zwolni&#x142; 10000 os&#xF3;b, Amazon 10000, Meta 11000, a Google 12000</strong>&#x2026; i to raczej dopiero pocz&#x105;tek.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://layoffs.fyi/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Layoffs.fyi - Tech Layoff Tracker and Startup Layoff Lists</div><div class="kg-bookmark-description">[LIVE] Tracking all tech startup layoffs &#x2014; and lists of employees laid off &#x2014; since COVID-19. This page is constantly being updated.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://layoffs.fyi/wp-content/uploads/2020/03/cropped-2020-03-24_0757-e1585062084492-270x270.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><span class="kg-bookmark-author">Layoffs.fyi</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://layoffs.fyi/wp-content/uploads/2022/07/layoff-tracker.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h3 id="devfaq-doczeka%C5%82o-si%C4%99-zupe%C5%82nie-nowego-wydania">DevFAQ doczeka&#x142;o si&#x119;&#xA0;zupe&#x142;nie nowego wydania</h3><p>Wiele os&#xF3;b mo&#x17C;e kojarzy&#x107;&#xA0;DevFAQ &#x2013; najwi&#x119;ksz&#x105; baz&#x119; pyta&#x144; rekrutacyjnych stworzon&#x105; przez spo&#x142;eczno&#x15B;&#x107;. DevFAQ zosta&#x142;o niedawno ca&#x142;kowicie przepisane przez <a href="https://github.com/xStrixU?ref=news.typeofweb.com">Kacpra Polaka</a> i <a href="https://github.com/AdiPol1359?ref=news.typeofweb.com">Adriana Polaka</a>, kt&#xF3;rzy &#x142;&#x105;cznie otworzyli 57 PR-&#xF3;w <a href="https://github.com/typeofweb/devfaq?ref=news.typeofweb.com">w repozytorium</a>! Stack: Next.js 13, Fastify, Prisma, TypeScript. Wkr&#xF3;tce mo&#x17C;ecie spodziewa&#x107; si&#x119; nowych funkcji w aplikacji&#x2026;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://app.devfaq.pl/questions/js/1?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Pytania JavaScript (JS) &#x2022; DevFAQ.pl</div><div class="kg-bookmark-description">DevFAQ.pl &#x2014; najwi&#x119;ksza baza pyta&#x144; z programowania tworzona przez spo&#x142;eczno&#x15B;&#x107;. DevFAQ.pl jest serwisem internetowym s&#x142;u&#x17C;&#x105;cym do udost&#x119;pniania i wymiany pyta&#x144;&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://app.devfaq.pl/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><span class="kg-bookmark-author">DevFAQ.pl</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://app.devfaq.pl/img/devfaq-cover-facebook.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h3 id="kurs-nextjs-graphql-typescripta%E2%80%A6">Kurs Next.js, GraphQL, TypeScripta&#x2026;</h3><p>Wiele os&#xF3;b dopytuje, wi&#x119;c &#x15B;piesz&#x119;&#xA0;poinformowa&#x107;: wkr&#xF3;tce rusza sprzeda&#x17C;&#xA0;kolejnej edycji naszego kursu Next.js! Jeste&#x15B;my w trakcie przygotowywania <strong>nowych materia&#x142;&#xF3;w zwi&#x105;zanych z Next.js 13</strong>, a dost&#x119;p do kursu jest do&#x17C;ywotni (&#x142;&#x105;cznie z przysz&#x142;ymi aktualizacjami). Zostawcie maila na stronie je&#x15B;li chcecie by&#x107; na bie&#x17C;&#x105;co informowani i <strong>otrzyma&#x107;&#xA0;specjalny rabat (tylko dla subskrybent&#xF3;w).</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://hyperfunctor.com/nextjs-react-graphql-typescript?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Kurs Next.js, React, GraphQL i TypeScripta</div><div class="kg-bookmark-description">Praktyczny kurs Next.js, React i GraphQL z TypeScriptem &#x2013; najpopularniejszych framework&#xF3;w do tworzenia aplikacji internetowych!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://hyperfunctor.com/apple-touch-icon.png?v=69" alt="Polski frontend i backend newsletter @ typeofweb.com #19"><span class="kg-bookmark-author">hyperfunctor.com &#x2013; szko&#x142;a programowania JavaScript, TypeScript, GraphQL</span><span class="kg-bookmark-publisher">Hyper Functor</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hyperfunctor.com/og-next.png" alt="Polski frontend i backend newsletter @ typeofweb.com #19"></div></a></figure><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie. Dzi&#x119;ki!</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Polski frontend i backend newsletter @ typeofweb.com #18]]></title><description><![CDATA[<p>Witajcie w kolejnej edycji newslettera Type of Web! Przed Wami dawka frontendowych i backendowych news&#xF3;w.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a></div></div>]]></description><link>https://news.typeofweb.com/18/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf9</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Sat, 03 Dec 2022 12:41:44 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2022/12/cover_ghost--2-.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2022/12/cover_ghost--2-.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><p>Witajcie w kolejnej edycji newslettera Type of Web! Przed Wami dawka frontendowych i backendowych news&#xF3;w.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div><h2 id="poza-kategori%C4%85">Poza kategori&#x105;</h2><h3 id="advent-of-code">Advent of Code</h3><p>Ruszy&#x142;a kolejna edycja <strong>Advent of Code</strong>! Co to takiego? &#x201E;Kalendarz adwentowy&#x201D; w postaci codziennych zada&#x144; algorytmicznych do rozwi&#x105;zania w dowolnym j&#x119;zyku programowania. Wszystko utrzymane w klimacie &#x15B;wi&#x105;tecznym &#x1F9D1;&#x200D;&#x1F384;</p><p>Do&#x142;&#x105;cz do tablicy punkt&#xF3;w Type of Web z kodem <code>756840-8c3f18ad</code>:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://adventofcode.com/2022/leaderboard/private?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Leaderboard - Advent of Code 2022</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://adventofcode.com/favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">Advent of Code 2022</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://avatars.githubusercontent.com/u/3482833?v=4" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h3 id="hackvent">Hackvent</h3><p>R&#xF3;wnocze&#x15B;nie odbywa si&#x119; Hackvent 2022, czyli r&#xF3;wnie&#x17C; forma &#x201E;kalendarza adentowego&#x201D;, ale z zadaniami polegaj&#x105;cymi na hackowaniu i wydobywaniu informacji&#x2026; Rodzima inicjatywa dzi&#x119;ki <a href="https://www.instagram.com/pl.coding.girl/?ref=news.typeofweb.com">pl.coding.girl</a> i <a href="https://github.com/mwpro?ref=news.typeofweb.com">mwpro</a>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hackvent.pl/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Hackvent 2022</div><div class="kg-bookmark-description">Programming advent calendar - solve daily tech-related tasks</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hackvent.pl/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></div></a></figure><h3 id="zmiany-na-discordzie">Zmiany na Discordzie</h3><p><strong>Najpopularniejszy frontendowy serwer Discord</strong> zmienia si&#x119; dla Was! Type of Web: Polski frontend i backend od dzisiaj wreszcie ma <strong>kana&#x142;y typu forum</strong>! &#x1F525;&#x1F525;&#x1F525;</p><p>Oznacza to, &#x17C;e zamiast standardowego czatu dost&#x119;pne b&#x119;d&#x105; te&#x17C; klasyczne fora tematyczne &#x2013; w kt&#xF3;rych ka&#x17C;da zainteresowana osoba tworzy sw&#xF3;j w&#x142;asny w&#x105;tek, nikt sobie nie przeszkadza i nie wchodzi w s&#x142;owo. &#x1F973; Idealne do rozwi&#x105;zywania problem&#xF3;w, poszukiwania pomocy, czy po prostu dyskusji na jeden konkretny temat!</p><p>Na razie dodaj&#x119; tylko kilka kana&#x142;&#xF3;w &#x2013; zach&#x119;cam do korzystania i testowania: <em>code-review, frontend, backend, ui-ux-design, prawo-podatki-umowy, praca-oferty</em>.</p><p>Dawajcie zna&#x107;, czy czego&#x15B; brakuje, albo czy co&#x15B; jest bez sensu!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://discord.typeofweb.com/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Join the Type of Web: Polski frontend i backend &#x2013; JavaScript, TypeScript. React, Vue, node.js&#x2026; Discord Server!</div><div class="kg-bookmark-description">Polski front-end i back-end to serwer dla programist&#xF3;w i programistek. | 6,289 members</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://discord.typeofweb.com/assets/ec2c34cadd4b5f4594415127380a85e6.ico" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">Discord</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.discordapp.com/icons/440163731704643589/cca2b565c4f9a5432c0d0c37d1017a2e.jpg?size=256" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h2 id="frontend">Frontend</h2><h3 id="typescript-49">TypeScript 4.9</h3><p>Ukaza&#x142;a si&#x119; stabilna wersja TypeScripta 4.9 zawieraj&#x105;ca operator <code>satisfies</code> oraz udogodnienie w postaci adnotacji <code>accessor</code> w klasach. Ten pierwszy jest szczeg&#xF3;lnie istotny i od wielu lat wyczekiwany przez spo&#x142;eczno&#x15B;&#x107;: pozwala na jednoczesne zachowanie bezpiecze&#x144;stwa typ&#xF3;w oraz korzystanie z inferencji! Sp&#xF3;jrzmy na szybki przyk&#x142;ad:</p><pre><code class="language-typescript">type TranslationItem = { key: string; translation: string };
type TranslationDict = Record&lt;string, TranslationItem&gt;;
type Languages = Record&lt;string, TranslationDict&gt;;

// Przed 4.9
const languages1: Languages = {
  en: {
    welcomeMessage: { key: &quot;Yo&quot;, translation: &quot;Yo&quot; },
  },
  pl: {
    welcomeMessage: { key: &quot;Yo&quot;, translation: &quot;Siema mordo&quot; },
  },
};

languages1.lol; // whoops, czemu tu nie ma errora?

// Nowa sk&#x142;adnia
const languages2 = {
  en: {
    welcomeMessage: { key: &quot;Yo&quot;, translation: &quot;Yo&quot; },
  },
  pl: {
    welcomeMessage: { key: &quot;Yo&quot;, translation: &quot;Siema mordo&quot; },
  },
} satisfies Languages;

languages2.lol; // jest error!</code></pre><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/S1m6wcqtezA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="LIVE CODING: Next.js, inferencja typ&#xF3;w TypeScript 4.9 i `satisfies`"></iframe></figure><h3 id="inne-aktualizacje">Inne aktualizacje</h3><p>Ukaza&#x142; si&#x119; te&#x17C; Prettier 2.8 oraz typescript-eslint 5.45.0, a wspominam o nich dlatego, &#x17C;e aby korzysta&#x107; z operatora <code>satisfies</code>, musicie r&#xF3;wnie&#x17C; zaktualizowa&#x107; te dwie zale&#x17C;no&#x15B;ci. <strong>No chyba, &#x17C;e nie u&#x17C;ywacie ani Prettiera, ani Eslinta i piszecie kod&#x2026; jak zwierz&#x119;ta!</strong></p><h3 id="eslint-przepisywane-od-zera">Eslint przepisywane od zera</h3><p>Tak, dobrze czytasz, tw&#xF3;rcy ESLint przepisuj&#x105; go zupe&#x142;nie od zera. Polecam ten 3-cz&#x119;&#x15B;ciowy artyku&#x142; na ich blogu oraz dyskusj&#x119; na GitHubie poni&#x17C;ej:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://eslint.org/blog/2022/08/new-config-system-part-1/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ESLint&#x2019;s new config system, Part 1: Background - ESLint - Pluggable JavaScript Linter</div><div class="kg-bookmark-description">A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://eslint.org/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">[data-theme=&quot;dark&quot;] .logo-component { fill: #fff; } [data-theme=&quot;dark&quot;] #logo-center { opacity: 60%; }</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://eslint.org/icon-512.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/eslint/eslint/discussions/16557?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Complete rewrite of ESLint &#xB7; Discussion #16557 &#xB7; eslint/eslint</div><div class="kg-bookmark-description">Introduction ESLint was first released in 2013, meaning it will be ten years old next year. During that time, the way people write JavaScript has changed dramatically and we have been using the inc...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">eslint</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/c1ea3a95faef33a056a15f6a0c213d1a55f97ee9e20109ed65c23721a958a0af/eslint/eslint/discussions/16557" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h3 id="ant-design-50">Ant Design 5.0</h3><p>Je&#x15B;li pracujecie cho&#x107; troch&#x119; z interfejsami, to na pewno s&#x142;yszeli&#x15B;cie o Ant Design. W&#x142;a&#x15B;nie ukaza&#x142;a si&#x119; stabilna wersja 5.0, a w niej masa zmian! Od&#x15B;wie&#x17C;ono design, dodano nowe komponenty, ale przede wszystkim zmianie uleg&#x142;o podej&#x15B;cie do Design Token Model. Co ciekawe, Ant-Design r&#xF3;wnie&#x17C; cz&#x119;&#x15B;ciowo odchodzi od css-in-js. Trend, kt&#xF3;ry &#x142;atwo by&#x142;o przewidzie&#x107; &#x2013; spo&#x142;eczno&#x15B;&#x107; wreszcie posz&#x142;a po rozum do g&#x142;owy.</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2022/12/202630055-4d445628-b6b9-4a74-bd88-7968afd4f9a3.png" class="kg-image" alt="Polski frontend i backend newsletter @ typeofweb.com #18" loading="lazy" width="2000" height="1123" srcset="https://news.typeofweb.com/content/images/size/w600/2022/12/202630055-4d445628-b6b9-4a74-bd88-7968afd4f9a3.png 600w, https://news.typeofweb.com/content/images/size/w1000/2022/12/202630055-4d445628-b6b9-4a74-bd88-7968afd4f9a3.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2022/12/202630055-4d445628-b6b9-4a74-bd88-7968afd4f9a3.png 1600w, https://news.typeofweb.com/content/images/size/w2400/2022/12/202630055-4d445628-b6b9-4a74-bd88-7968afd4f9a3.png 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/ant-design/ant-design/issues/38671?ck_subscriber_id=887774795&amp;ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ant Design 5.0 is released! &#xB7; Issue #38671 &#xB7; ant-design/ant-design</div><div class="kg-bookmark-description">Introduction At the end of September, we released v5 alpha version. After 2 months of adjustment, API has gradually stabilized. Thanks to the community for the valuable suggestions and contribution...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">ant-design</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/86c38603124aeac2613a51e6e977d2ef0378f3489f3796411445513e4149113c/ant-design/ant-design/issues/38671" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h2 id="backend">Backend</h2><h3 id="prisma-47">Prisma 4.7</h3><p>Ukaza&#x142;a si&#x119; wersja 4.7 Waszego ulubionego ORM-a, a w nim&#x2026; <strong>nareszcie stabilne <code>interactiveTransactions</code>!</strong> Hejterzy, kt&#xF3;ry zawsze pisali, &#x17C;e <em>hurr durr prisma nie ma migracji</em> nie b&#x119;d&#x105; zadowoleni. Do rozbudowanej funkcji <code>prisma.$transaction</code> mo&#x17C;emy przekaza&#x107; dowoln&#x105; funkcj&#x119; <code>async</code> i zostanie ona wykonana w obr&#x119;bie jednej transakcji bazodanowej. Jest te&#x17C; wsparcie dla poziom&#xF3;w izolacji &#xA0;(<code>isolationLevel</code>).</p><p>Z ciekawszych zmian: dodano wsparcie dla wielu <code>schema</code> w Postgresie &#x2013; bardzo przydatne, np. przy pracy z Supabase, czy po prostu dobrze zaprojektowanymi bazami &#x1F643; W&#x142;&#x105;czcie <code>multiSchema</code>!</p><p>Pojawi&#x142; si&#x119; r&#xF3;wnie&#x17C; (jako eksperymentalny) nieco kontrowersyjny temat&#x2026; umieszczania logiki biznesowej w modelach Prismy. Wygl&#x105;da to fatalnie i na pewno b&#x119;dzie nadu&#x17C;ywane. Nie w&#x142;&#x105;czajcie <code>clientExtensions</code>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/prisma/prisma/releases/tag/4.7.0?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Release 4.7.0 &#xB7; prisma/prisma</div><div class="kg-bookmark-description">&#x1F31F; Help us spread the word about Prisma by starring the repo or tweeting about the release. &#x1F31F;HighlightsInteractive transactions are now Generally AvailableAfter an extensive Preview phase and lot...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">prisma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/365c21ab5726fd36c991984b3fd7d386fe5c02e8b826b89223aab84e747483f4/prisma/prisma/releases/tag/4.7.0" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h3 id="hyperstack">Hyperstack</h3><p><strong>Nowy framework Node.js!</strong> Tak, to nie &#x17C;art. Bazuje na konceptach znanych z Rails&#xF3;w, ma w sobie wszystko (od test&#xF3;w, przez modele, a&#x17C; po CLI), wspiera TypeScripta&#x2026; w teorii brzmi fajnie, ale niekt&#xF3;re sk&#x142;adnie mnie odpychaj&#x105;. C&#xF3;&#x17C;, chyba pozostan&#x119; przy swoim <s>Hapi</s> Fastify.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://hyperstackjs.io/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">hyperstackjs &#xB7; Hyperstack is a modern full-stack Node.js web framework for the pragmatic programmer</div><div class="kg-bookmark-description">Hyperstack is a modern full-stack Node.js web framework for the pragmatic programmer</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://hyperstackjs.io/img/favicon.svg" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">Hyperstack</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hyperstackjs.io/img/logo@4x.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h3 id="deno-128">Deno 1.28</h3><p>Pami&#x119;tacie has&#x142;a z pocz&#x105;tk&#xF3;w Deno? Izolacja, bezpiecze&#x144;stwo i <strong>brak 1300000 syfiastych modu&#x142;&#xF3;w z npma, a zamiast nich dobra biblioteka standardowa</strong>? NIESPODZIANKA. <strong>Deno 1.28 wspiera modu&#x142;y z NPM</strong>. <em>Hue hue hue</em> &#x1F921; &#x1F921; &#x1F921; A pami&#x119;tacie jeszcze IO.js? Nie cytujcie mnie w powa&#x17C;nych artyku&#x142;ach, ale moim zdaniem Deno podzieli los IO.js i ostatecznie po&#x142;&#x105;czy si&#x119; z Node.js.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://deno.com/blog/v1.28?utm_source=denonews&amp;utm_medium=email#using-npm"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Deno 1.28: Featuring 1.3 Million New Modules</div><div class="kg-bookmark-description">Deno 1.28 ships with stabilized npm modules, auto-discovered lock file, a new subprocess API, and more</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://deno.com/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">Deno Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://deno.com/v1.28/ogp.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h3 id="deno-i-prisma">Deno i Prisma</h3><p>Ponadto: Deno i Prisma wreszcie ze sob&#x105; wsp&#xF3;&#x142;graj&#x105;. Wymaga&#x142;o to nieco zmian w samej Prismie &#x2013; np. dodania mo&#x17C;liwo&#x15B;ci zapisywania wygenerowanych plik&#xF3;w w dowolnym miejscu zamiast <code>node_modules</code>&#x2026; ale w ko&#x144;cu jest! Dzia&#x142;a r&#xF3;wnie&#x17C; na hostingu Deno Deploy.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.prisma.io/docs/guides/deployment/deployment-guides/deploying-to-deno-deploy?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Deploy to Deno Deploy</div><div class="kg-bookmark-description">Learn how to deploy a TypeScript application to Deno Deploy.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGX0lEQVR4AaWXA3AsWxeFz0xybdu2bSNOnm3btm37Xdu2bZuxnWmsf+3KnK6uP75vVX0Tzz5n99qIKqtS0zM9RJ08f7m8YZq3A/g0z2cEEQXAQ1RZkJey4vln4SovgPmZ2Tk4ce6S4TMMUJ8QZZqWl6jSIi+lx7ICiQLwZG6eD6PvftanWgwyHnr7SxtUTm7eAKJs2/YSVRrkpVQwsJeoS9FxLQAkffjLNKhWg+1ag8Lg6Tza2H3kJKgpRH43gKjSIC+lgocIIEqC8PmjWt8gs2q/IFTuNRFykLte+RhUbkpaRmeibMBLVEnoT4pF3ygnLy8IVPhjr1uq82h4u47Fzc+9h4jH34DqMMKQg1HfE2Xxb4gqCf1JcXiImrViQ2UAR+as3CjBrDqDw6HaDcP8NVtw/NwlqKb97Sc//A5U2pW4hBZEAfD+5ypwGe+t1IxMtBl/q1G+x3hU7x+CSr0nYf+x0xCNv+8FlOs2zmBgUB/kZ8EOJKo4iv2hNl5CcmpXANnPf/Yzbz3crk3jle8xAW0n3oY0Hkq0cstuqCb97Le++wtU7LEzF+oR3RuuOQM6hUv3HD2JCj3Gm1X7BqHGgBCoTqMR9NArEPERQTT4lsdQo3+IkZSaDuoFoizbDiSqKIr8gVNKpnUrqFF3Pm2K8SR4zQGhUO2H47Wvf4dIeoJI/KEa9ra++mcuqLPLN+2sSnQWSp8Bbbz9x8/UAXDh19lLJfWWBHYy0HEU5q7aBBFbMkQmP3YJvQdNRt5gZrFLUg/qLJQtAzQeUQC+jk5IQsNhUUZF1nu1fsFS/6jSJ0g+x4nzlyCiXyQ4RL/PXQbVoJf11/wVoA4FPfRyOaKzUHIGtPHSMrIGy3vf9/pntmo/Avr21Rm4XPfx6Bxyt5N627YFiOTmLcbchE5Bd5n+zNxMdCMruRXLSZVSctrN63bulzZrVu8fLMHd6cd1T70FEQ8LLf0ovvhrNrPQ25q3ejOobURxcHmI+n/cX7hr/jGOV/SOetAMYLeTmtcHkEzQD3jv5ylOUC2dhaTUNNRhqQ646VELFB/rZFJoFtzDxkPU+auxzQAkfPL7DKi2w+yaA/NTr2GZQaph6cYdfuNZcEt74Y1v/4Rq1Mdcs30fqJVE8bBeotw4n+jeDeDv0xevSiCzcu/JYjYneDUZPn0mQxrRhaux8N8OVIEsXI6JR8WeEzDh/hdsf6kOJQWyoJ97AFFcLCaCinryTUt1HKmN5yBeCOw2Dr2iHnCaj42C0ll58oPvoJoNMHceOg5qtn9hCSiwkLhKZPOi9dtk2JhiNndwx4AdRuK2Fz8oYEAtXZYiKVMa1r7xmXdAmemZWT0JLw0vUYITfNvewzWlh9/1/PvS5Wz37TW6A3759xzHgEVJH+7Olz+Caj3EPHrmAqjf9MJS6EICYCfHLqTr1SjkAFINsgOwPIvNgHs+7D16CrKwPPjWF6Cy4pNS2hJnzsgnjgd4o3D/wlHAA2JGGb/1h0YhOj7RMVxRsolhmBCFPfa6DC/Db9zP3TFd/d/2Evn837OXo1FrQKhZmQElsPv2g25+DEVJDiRZ4UWcz0UrOKppRuuNb/8Cdf7TP2ZWJBLLow8gZvQQdebS1cYAYr6bOl82HscL8pHmxP1vfq6droNKQPm6wGFOX7yCn2ctwbDbn4Kq18N69J2vIe+9YvOuakQfoOD2wze7C9TIQkbwD9MXwr+CF+gB3Bmxdd8RvMox3S3ifnjaDrXYjIy6g8PNu1/9xIxLTAb1u/sRFLeELD544iwq9Zpo6iEkW5DUtNuAcUkpmM094I6XPkKDYVGyFVmq5SCjY8jd1itf/Yat+4/Y2Tm5oPKYlSmkup45hR5A/2cTk5DUHkD6Oz/8A1nDxAP1hkbiYnQc+JikFDHq7mdRods4m0uIWaHrWGPsfc/bP81YJKnXBo0mU8ktV2ITGpECi2pJi+gzeT4fekbcb6hOo6QToh5vGdAmP7W8sXnv659BmpcMIMq0gYMAPqEvRm7ctb8yUX502j2l3QmdsSxppw98XErMvjc8bL/NrOw+csKWw1EZdv6weZJdrpOnwzAvUX500EDiLdNSqicXzdZZUhlLA529dNUWAThDfuUnkecuR9cjSuO/YaD7tte8FXMn8BKVkp7RhHFfBPC2z2eMmLF0bQWiNHK7ArcsJf8DLMRetFCfZDMAAAAASUVORK5CYII=" alt="Polski frontend i backend newsletter @ typeofweb.com #18"><span class="kg-bookmark-author">Prisma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.prisma.io/docs/social/docs-social.png" alt="Polski frontend i backend newsletter @ typeofweb.com #18"></div></a></figure><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie. Dzi&#x119;ki!</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div>]]></content:encoded></item><item><title><![CDATA[Polski frontend i backend newsletter @ typeofweb.com #17]]></title><description><![CDATA[<p>Siema siema albo si&#x119; nie ma, to z kim <a href="https://infoshare.pl/conference/agenda/?ref=news.typeofweb.com#talk651-1">widz&#x119; si&#x119; na infoShare w pi&#x105;tek</a>?</p><p>A teraz lecimy z kolejn&#x105; dawk&#x105; frontendowych i backendowych news&#xF3;w:</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;</div></div>]]></description><link>https://news.typeofweb.com/17/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf8</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Wed, 05 Oct 2022 18:07:00 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2022/10/newsletter_cover_edition.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2022/10/newsletter_cover_edition.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><p>Siema siema albo si&#x119; nie ma, to z kim <a href="https://infoshare.pl/conference/agenda/?ref=news.typeofweb.com#talk651-1">widz&#x119; si&#x119; na infoShare w pi&#x105;tek</a>?</p><p>A teraz lecimy z kolejn&#x105; dawk&#x105; frontendowych i backendowych news&#xF3;w:</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div><h1 id="frontend">Frontend</h1><h2 id="axios-100-z-powa%C5%BCnymi-b%C5%82%C4%99dami%E2%80%A6">Axios 1.0.0 z powa&#x17C;nymi b&#x142;&#x119;dami&#x2026;</h2><p>Co my&#x15B;licie na widok wersji &quot;1.0.0&quot;? Bo mi nasuwaj&#x105; si&#x119; has&#x142;a &#x201E;stabilno&#x15B;&#x107;&#x201D;, &#x201E;powaga&#x201D;, &#x201E;dojrza&#x142;o&#x15B;&#x107;&#x201D;. Tw&#xF3;rcy Axiosa postanowili spr&#xF3;bowa&#x107; <strong>zniszczy&#x107; te asocjacje w moim m&#xF3;zgu</strong> i wydali wersj&#x119; 1.0.0 z LICZNYMI bardzo oczywistymi b&#x142;&#x119;dami i nieudokumentowanymi OGROMNYMI <em>breaking changes</em>. Poni&#x17C;szy kod nie dzia&#x142;a w Axios 1.0.0 &#x2013; zwraca 404 pomimo tego, &#x17C;e URL jest ca&#x142;kowicie poprawny. Zgadniecie dlaczego? Sprawd&#x17A;cie!</p><pre><code class="language-ts">import axios from &apos;axios&apos;;
const data = await axios.get(&apos;https://api.genderize.io?name=peter&apos;);
console.log(data);</code></pre><p>Linka nie b&#x119;dzie ze wzgl&#x119;du na osoby o s&#x142;abszych nerwach. Odwa&#x17C;ni niech przejrz&#x105; issues na GitHubie Axiosa&#x2026; <strong>Nie r&#xF3;bcie sobie tego i nie aktualizujcie do axios@1.0.0.</strong></p><h2 id="tokencss">TokenCSS</h2><p>To taki nowy pomys&#x142;, kt&#xF3;ry z za&#x142;o&#x17C;enia ma u&#x142;atwi&#x107; tworzenie <em>design systems. </em>Konfigurujemy sobie kolory, wielko&#x15B;ci, odst&#x119;py, fonty i tak dalej&#x2026; w spos&#xF3;b bli&#x17A;niaczo przypominaj&#x105;cy <code>tailwind.conf.js</code>. Nast&#x119;pnie mo&#x17C;emy tych opcji u&#x17C;ywa&#x107; w naszych plikach CSS &#x1F62E; Czekajcie, &#x142;atwiej pokaza&#x107; na kodzie:</p><pre><code class="language-css">.component {
  background: red.500;
  border-radius: lg;
  width: xl;
  height: md;
}</code></pre><p>Gdzie, oczywi&#x15B;cie, warto&#x15B;ci <code>lg</code>, <code>xl</code>, <code>md</code> czy <code>red.500</code> zosta&#x142;y wcze&#x15B;niej ustalone w pliku konfiguracyjnym. Zalety? Ograniczamy mo&#x17C;liwo&#x15B;&#x107; psucia wygl&#x105;du strony przez krn&#x105;brnych programist&#xF3;w. Zakaz wychodzenia poza ustalone przez designera ramy. Moja ocena: 11/10.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/tokencss/tokencss?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - tokencss/tokencss</div><div class="kg-bookmark-description">Contribute to tokencss/tokencss development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">tokencss</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/4c5ef962f2c5cd39ab8f894a68ee261f10a56490f0462a80260f95d57dd9c7b3/tokencss/tokencss" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h2 id="useevent-is-dead"><code>useEvent</code> is dead</h2><p>&#x2026;jak to zdech&#x142;?! To znaczy, &#x17C;e ty&#x15B;&#xA0;go kilim?! Dan Abramov og&#x142;osi&#x142;, &#x17C;e planowany hook <code>useEvent</code> nie stanie si&#x119;&#xA0;cz&#x119;&#x15B;ci&#x105; Reacta, gdy&#x17C; rozwi&#x105;zuje za du&#x17C;o problem&#xF3;w na raz. Interesuj&#x105;ce. Polyfill dla <code>useEvent</code> skopiowany z tego w&#x105;tku na GitHubie pewnie zostanie w wielu aplikacjach ju&#x17C; na zawsze&#x2026; u mnie na pewno.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/reactjs/rfcs/pull/220?ck_subscriber_id=887774795&amp;ref=news.typeofweb.com#issuecomment-1259938816"><div class="kg-bookmark-content"><div class="kg-bookmark-title">RFC: useEvent by gaearon &#xB7; Pull Request #220 &#xB7; reactjs/rfcs</div><div class="kg-bookmark-description">In this RFC, we propose a useEvent Hook. It lets you define event handlers that can read the latest props/state but have always stable function identity. Event handlers defined with useEvent don&#x2019;t ...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">reactjs</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/7b7f33d9a7cbc2c424e6d53f1c36a1d7c596a6acfdf5f64db6f8d5d4c8e833e7/reactjs/rfcs/pull/220" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h2 id="typescript-ma-10-lat">TypeScript ma 10 lat</h2><p>1. pa&#x17A;dziernika 2012 &#x15B;wiat&#x142;o dzienne ujrza&#x142;a pierwsza publiczna wersja TypeScripta oznaczona numerem 0.8.0. Informacje o tym releasie znajdziecie na (nieistniej&#x105;cym ju&#x17C; dzisiaj) portalu <a href="https://web.archive.org/web/20121004000243/https://typescript.codeplex.com/releases/view/95554">codeplex</a>.</p><p>Ja co prawda nie mog&#x119; si&#x119; pochwali&#x107; <a href="https://twitter.com/cassidoo/status/257947446083203073?ck_subscriber_id=1570586702&amp;ref=news.typeofweb.com">Twittem na temat TypeScripta z 15. pa&#x17A;dziernika 2012 jak Cassidy</a>, ale uwierzcie mi na s&#x142;owo, &#x17C;e warto by&#x142;o by&#x107; early adopterem &#x1F60E; U&#x17C;ywam TS od 9 lat, <a href="https://github.com/bananu7/Harvest-ts/pull/26/files?ref=news.typeofweb.com">pierwszy publiczny PR w tym j&#x119;zyku otworzy&#x142;em w grudniu 2013</a> i wdra&#x17C;a&#x142;em TypeScripta w komercyjnym projekcie dla klienta ju&#x17C; w 2014&#x2026; czas leci!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://devblogs.microsoft.com/typescript/ten-years-of-typescript/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ten Years of TypeScript</div><div class="kg-bookmark-description">Today is TypeScript&#x2019;s birthday! But this birthday is a special one &#x2013; 10 years ago today, on October 1st, 2012, TypeScript was unveiled publicly for the first time. The Early Days When TypeScript first debuted, there was a lot of skepticism &#x2013;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://devblogs.microsoft.com/typescript/wp-content/uploads/sites/11/2018/10/Microsoft-Favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><span class="kg-bookmark-author">TypeScript</span><span class="kg-bookmark-publisher">Daniel Rosenwasser</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://devblogs.microsoft.com/typescript/wp-content/uploads/sites/11/2018/08/typescriptfeature.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h2 id="frontlive-na-twitchu">Frontlive na twitchu</h2><p>Dzielne ch&#x142;opaki z Discorda, czyli Mati i Szymon, robi&#x105; <s>regularnie</s> czasem live streamy z procesu powstawania prawdziwej aplikacji internetowej. Jest fullstack: frontend na React (Next), backend na GraphQL, no i oczywi&#x15B;cie TypeScript. <a href="https://github.com/Frontlive/Start-Coding?ref=news.typeofweb.com">Kodzik znajdziecie na GitHubie</a>, a link do kana&#x142;u wideo poni&#x17C;ej.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.twitch.tv/frontlivepl?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">frontlivepl - Twitch</div><div class="kg-bookmark-description">https://frontlive.pl/ na &#x17C;ywo</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.twitchcdn.net/assets/favicon-32-e29e246c157142c94346.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><span class="kg-bookmark-author">Twitch</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static-cdn.jtvnw.net/jtv_user_pictures/4e9c677c-e1a9-4c37-8d4e-a6c0fae30bec-profile_image-300x300.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h1 id="backend">Backend</h1><h2 id="skrypty-w-nodejs">Skrypty w Node.js</h2><p>Dr. Axel Rauschmayer wyda&#x142; ksi&#x105;&#x17C;k&#x119; (dost&#x119;pn&#x105;&#xA0;online za darmo!) na temat tworzenia <strong>skrypt&#xF3;w shell w node.js</strong>. Gor&#x105;co polecam! W ksi&#x105;&#x17C;ce znajdziecie mi&#x119;dzy innymi informacje o tym jak dzia&#x142;a node.js oraz event loop (niskopoziomowo), jak u&#x17C;ywa&#x107; paczek npm i jak pisa&#x107; kod tak, aby by&#x142; przeno&#x15B;ny mi&#x119;dzy systemami i &#x15B;rodowiskami (co jest kluczowe dla skrypt&#xF3;w).</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://exploringjs.com/nodejs-shell-scripting/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Shell scripting with Node.js</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://exploringjs.com/nodejs-shell-scripting/img-homepage/cover-homepage.jpg" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h2 id="safeql-eslint-sprawdza-sql-a">SafeQL: ESLint sprawdza SQL-a?!</h2><p>Dobrze czytacie. SafeQL to wtyczka do ESLint pozwalaj&#x105;ca na weryfikacje poprawno&#x15B;ci napisanego kodu SQL. Pilnuje liter&#xF3;wek, a tak&#x17C;e typ&#xF3;w kolumn i parametr&#xF3;w. Idealne do pilnowania fragment&#xF3;w kodu, kt&#xF3;re z jakiego&#x15B; powodu piszemy w go&#x142;ym SQL bez u&#x17C;ycia ORM-a czy czego&#x15B; takiego. Wsp&#xF3;&#x142;pracuje z Prism&#x105;, Sequelize, pg i innymi bibliotekami. Bajer!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://safeql.dev/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">SafeQL | SafeQL</div><div class="kg-bookmark-description">Write SQL queries with confidence!</div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">Get Started</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://safeql.dev/ts-logo.svg" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h2 id="jak-tworzy%C4%87-paczki-npm">Jak tworzy&#x107; paczki npm?</h2><p>Dok&#x142;adny przewodnik na ten temat napisa&#x142; Brian Clark z zespo&#x142;u Snyk. Na prostym przyk&#x142;adzie, Brian pokazuje jak przygotowa&#x107; repo, jak skonfigurowa&#x107; npm, jak skompilowa&#x107; kod TypeScripta na JS (r&#xF3;wnie&#x17C; ESM!) i wreszcie, jak opublikowa&#x107; paczk&#x119;. Naprawd&#x119; przyjemnie opisane, nikomu nie powinno sprawi&#x107; trudno&#x15B;ci mimo, &#x17C;e temat jest ca&#x142;kiem zaawansowany.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://snyk.io/blog/best-practices-create-modern-npm-package/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Best practices for creating a modern npm package | Snyk</div><div class="kg-bookmark-description">In this tutorial, we&#x2019;re going to walk step by step through creating an npm package using modern best practices (as of 2022).</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://snyk.io/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><span class="kg-bookmark-author">Snyk</span><span class="kg-bookmark-publisher">Brian ClarkSeptember 12, 2022</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://res.cloudinary.com/snyk/images/f_auto,q_auto/v1/wordpress-sync/feature-create-npm-package/feature-create-npm-package.jpg?_i=AA" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h1 id="meetupy">Meetupy</h1><h2 id="gda%C5%84sk-typescript-meetup-by-escola">Gda&#x144;sk TypeScript Meetup by Escola</h2><p>13. pa&#x17A;dziernika (w czwartek) o godzinie 18:00 w Gda&#x144;sku odb&#x119;dzie si&#x119; meetup po&#x15B;wi&#x119;cony TypeScriptowi. Jest on o tyle wyj&#x105;tkowy, &#x17C;e b&#x119;dzie tam mo&#x17C;na spotka&#x107; mnie &#x1F609; Pojawi&#x119; si&#x119; z prezentacj&#x105; na temat <em>property based testing</em> w TypeScripcie. </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://evenea.pl/pl/wydarzenie/escola-gdansk-typescript-meetup?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Gda&#x144;sk TypeScript Meetup by Escola</div><div class="kg-bookmark-description">Czy w pracy&amp;nbsp;piszesz w TypeScript? Wstajesz i&amp;nbsp;my&#x15B;lisz w TypeScript? Marzysz czasem o kierunku rozwoju TypeScript? Je&#x15B;li tak, to jest to spotkanie dla Ciebie. Je&#x15B;li nie, to jest to spotkanie, gdzie poznasz specjalist&#xF3;w TypeSc...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://app.evenea.pl/gfx/favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><span class="kg-bookmark-author">Gda&#x144;sk TypeScript Meetup by Escola</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://d1ll4kxfi4ofbm.cloudfront.net/file/event/298382/logo/logo_298382_20220916094409.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h1 id="wideo">Wideo</h1><h2 id="live-coding-graphql-codegen-generowanie-funkcji-i-typ%C3%B3w-%E2%80%93-nowoczesny-frontend">LIVE CODING GraphQL Codegen: generowanie funkcji i typ&#xF3;w &#x2013; Nowoczesny Frontend</h2><p>Ju&#x17C; 06.10 o 13:30 robimy live po&#x15B;wi&#x119;cony GraphQL i graphql-codegen.</p><ul><li>Jak generowa&#x107; gotowe funkcje i typy na podstawie schemy GraphQL?</li><li>Jak bardzo mo&#x17C;emy u&#x142;atwi&#x107; sobie prac&#x119;?</li><li>Jak automatycznie integrowa&#x107; GraphQL z Reactem albo Next.js?</li><li>Dlaczego GraphQL jest fajny?</li></ul><p>Live Coding prowadz&#x105; Jakub Neander (zaiste.net) i Micha&#x142; Miszczyszyn (typeofweb.com).</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/bnY58WrtKXA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="LIVE CODING GraphQL Codegen: generowanie funkcji i typ&#xF3;w &#x2013; Nowoczesny Frontend"></iframe></figure><h2 id="kurs-nowoczesny-frontend-wkr%C3%B3tce-koniec-sprzeda%C5%BCy">Kurs Nowoczesny Frontend: Wkr&#xF3;tce koniec sprzeda&#x17C;y</h2><p><strong>Tylko do 7. pa&#x17A;dziernika</strong> trwa sprzeda&#x17C; trzeciej edycji kursu Nowoczesny Frontend: <strong>Next.js, React, GraphQL i TypeScript.</strong></p><p>W Kursie Nowoczesnego Frontendu oferujemy Ci:<br>&#x2705; &#xA0;14 tygodni <strong>intensywnej nauki</strong> (<a href="https://next.hyperfunctor.com/?utm_source=typeofweb&amp;utm_medium=news&amp;utm_campaign=dlaczego-warto-dolaczyc-do-kursu-nowoczesnego-frontendu-juz-teraz#agenda">ca&#x142;a agenda jest tutaj</a>)<br>&#x2705; &#xA0;<strong>Do&#x17C;ywotni dost&#x119;p</strong> &#x2013; mo&#x17C;esz wr&#xF3;ci&#x107; do materia&#x142;&#xF3;w bez stresu kiedy zechcesz.<br>&#x2705; &#xA0;<strong>Przysz&#x142;e aktualizacje tre&#x15B;ci</strong> &#x2013; dostaniesz materia&#x142;y i poprawki z ka&#x17C;dej kolejnej edycji.<br>&#x2705; &#xA0;<strong>Zamkni&#x119;t&#x105; grup&#x119;</strong>, pomoc i materia&#x142;y &#x2013; online niemal 24/7.<br>&#x2705; &#xA0;Rozbudowane <strong>zadania domowe.</strong><br>&#x2705; &#xA0;Mas&#x119; <strong>materia&#x142;&#xF3;w dodatkowych</strong> i dygresji.<br>&#x2705; &#xA0;Satysfakcj&#x119; lub zwrot pieni&#x119;dzy.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://hyperfunctor.com/nextjs-react-graphql-typescript?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Kurs Next.js, React, GraphQL i TypeScripta</div><div class="kg-bookmark-description">Praktyczny kurs Next.js, React i GraphQL z TypeScriptem &#x2013; najpopularniejszych framework&#xF3;w do tworzenia aplikacji internetowych!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://hyperfunctor.com/apple-touch-icon.png?v=69" alt="Polski frontend i backend newsletter @ typeofweb.com #17"><span class="kg-bookmark-author">hyperfunctor.com &#x2013; szko&#x142;a programowania JavaScript, TypeScript, GraphQL</span><span class="kg-bookmark-publisher">Hyper Functor</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hyperfunctor.com/og-next.png" alt="Polski frontend i backend newsletter @ typeofweb.com #17"></div></a></figure><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie. Dzi&#x119;ki!</p><p><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Polski frontend i backend newsletter @ typeofweb.com #16]]></title><description><![CDATA[<p>Po bardzo d&#x142;ugim urlopie od blogowania, podcastowania, youtube&apos;owania i innych takich&#x2026; powracam! Nie b&#x119;d&#x119; si&#x119;&#xA0;rozwodzi&#x142; tu nad przyczynami tej przerwy w tworzeniu tre&#x15B;ci, bo to raczej temat na ca&#x142;y osobny artyku&#x142; na blogu&</p>]]></description><link>https://news.typeofweb.com/16/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf7</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Sun, 18 Sep 2022 19:57:35 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2022/09/cover_ghost--1-.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2022/09/cover_ghost--1-.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"><p>Po bardzo d&#x142;ugim urlopie od blogowania, podcastowania, youtube&apos;owania i innych takich&#x2026; powracam! Nie b&#x119;d&#x119; si&#x119;&#xA0;rozwodzi&#x142; tu nad przyczynami tej przerwy w tworzeniu tre&#x15B;ci, bo to raczej temat na ca&#x142;y osobny artyku&#x142; na blogu&#x2026; Nie przed&#x142;u&#x17C;aj&#x105;c, teraz ju&#x17C; widzimy si&#x119; regularnie w Newsletterze i na <a href="https://www.youtube.com/c/Typeofweb?ref=news.typeofweb.com">YouTube</a>.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div><h1 id="frontend">Frontend</h1><h2 id="radix-100">Radix 1.0.0</h2><p>Ostatnio g&#x142;o&#x15B;no jest o r&#xF3;&#x17C;nych bibliotekach UI typu <em>headless</em>. Co to w&#x142;a&#x15B;ciwie oznacza? Ano, s&#x105; to takie biblioteki, kt&#xF3;re zawieraj&#x105; r&#xF3;&#x17C;ne elementy interfejsu (toggle, dropdown, tooltip i tak dalej&#x2026;), ale nie zawieraj&#x105; &#x17C;adnych styl&#xF3;w. Ich popularno&#x15B;&#x107; ro&#x15B;nie pewnie za spraw&#x105; Tailwinda &#x2013; szukamy gotowych komponent&#xF3;w, kt&#xF3;re mogliby&#x15B;my sobie sami ostylowa&#x107; przy pomocy klas, bez konieczno&#x15B;ci nadpisywania styl&#xF3;w tw&#xF3;rc&#xF3;w paczki&#x2026;</p><p>Jednym z takich rozwi&#x105;za&#x144; (i ostatnio chyba moim ulubionym) jest Radix, kt&#xF3;ry w&#x142;a&#x15B;nie sta&#x142; si&#x119; oficjalnie stabilny i przybito mu piecz&#x105;tk&#x119; z wersj&#x105; 1.0.0. Sprawd&#x17A;cie!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.radix-ui.com/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Primitives &#x2013; Radix UI</div><div class="kg-bookmark-description">An open-source React component library for building high-quality, accessible design systems and web apps.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.radix-ui.com/favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"></div></div><div class="kg-bookmark-thumbnail"><img src="https://radix-ui.com/social/default.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"></div></a></figure><h2 id="niesamowite-animacje-border%C3%B3w">Niesamowite animacje border&#xF3;w</h2><p>Je&#x15B;li pracujecie w&#x142;a&#x15B;nie nad swoim portfolio albo now&#x105; stron&#x105;, kt&#xF3;ra ma zaskakiwa&#x107; i jednocze&#x15B;nie zachwyca&#x107; &#x2013; to jest to artyku&#x142; dla Was! Coco opisuje w nim jak mo&#x17C;na efektownie animowa&#x107; bordery przy u&#x17C;yciu wy&#x142;&#x105;cznie CSS-a, a efekty tego eksperymentowania s&#x105;&#x2026; c&#xF3;&#x17C;, zreszt&#x105;, sami zobaczcie.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dev.to/chokcoco/fantastic-css-border-animation-5166?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Fantastic CSS border animation</div><div class="kg-bookmark-description">In this article we will use CSS to create a variety of wonderful border effects.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--t7tVouP9--/c_limit,f_png,fl_progressive,q_80,w_192/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/devlogo-pwa-512.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"><span class="kg-bookmark-author">DEV Community &#x1F469;&#x200D;&#x1F4BB;&#x1F468;&#x200D;&#x1F4BB;</span><span class="kg-bookmark-publisher">Coco</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dev.to/social_previews/article/1148346.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"></div></a></figure><h2 id="qwik-kolejny-framework">Qwik: kolejny framework</h2><p>Nie b&#x119;d&#x119; udawa&#x142;, &#x17C;e wiem o co tu chodzi. Bo nie wiem. Qwik to kolejny framework frontendowy. <strong>Bez hydracji, z automatycznym lazy-loadingiem, zoptymalizowany pod s&#x142;ynny <em>edge</em></strong> (nie myli&#x107; z przegl&#x105;dark&#x105;). Niby wiem co ka&#x17C;de z tych poj&#x119;&#x107; oznacza, ale chyba do&#x15B;wiadczenie nauczy&#x142;o mnie sceptycyzmu. A, stoi za tym tworem <strong>Mi&#x161;ko Hevery, czyli ten go&#x15B;&#x107;, kt&#xF3;ry odmieni&#x142; front-end 10 lat</strong> temu tworz&#x105;c AngularJS, a jego idee i pomys&#x142;y kopiowane s&#x105; przez wszystkie popularne frameworki do dzisiaj. Czy znowu przynosi rewolucj&#x119;? Dajcie mi zna&#x107;.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://qwik.builder.io/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Qwik - Framework reimagined for the edge</div><div class="kg-bookmark-description">No hydration, auto lazy-loading, edge-optimized, and fun &#x1F389;!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://qwik.builder.io/favicons/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"><span class="kg-bookmark-author">Qwik</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://qwik.builder.io/logos/social.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"></div></a></figure><h2 id="lexical-czyli-nowy-edytor-od-facebooka">Lexical, czyli nowy edytor od Facebooka</h2><p>Tak, dobrze Ci si&#x119; zdaje, Facebook ju&#x17C; tworzy&#x142; jeden edytor tekstu. By&#x142; to Draft.js, kt&#xF3;ry teraz traci wsparcie i nie b&#x119;dzie dalej rozwijany. Umar&#x142; kr&#xF3;l, niech &#x17C;yje kr&#xF3;l: Lexical. Jest to wczesny etap rozwoju, ale wygl&#x105;da bardzo obiecuj&#x105;co. Jest to edytor, kt&#xF3;ry ca&#x142;kowicie oddziela <em>what</em> od <em>how</em> i jest agnostyczny w stosunku do tego co jest edytowane i z jakiej sk&#x142;adni korzystamy.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/facebook/lexical?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - facebook/lexical: Lexical is an extensible text editor framework that provides excellent reliability, accessibility and performance.</div><div class="kg-bookmark-description">Lexical is an extensible text editor framework that provides excellent reliability, accessibility and performance. - GitHub - facebook/lexical: Lexical is an extensible text editor framework that p...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">facebook</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/1126af517037c3a79b00697bb96c47dba8bb50705d3f166c78de3f049e493358/facebook/lexical" alt="Polski frontend i backend newsletter @ typeofweb.com #16"></div></a></figure><h1 id="backend">Backend</h1><h2 id="alternatywy-dla-heroku">Alternatywy dla Heroku</h2><p>Heroku og&#x142;osi&#x142;o niedawno <a href="https://blog.heroku.com/next-chapter?ref=news.typeofweb.com">koniec bardzo popularnej darmowej us&#x142;ugi hostingowej</a>. Od teraz, wszystkie plany b&#x119;d&#x105; p&#x142;atne, a <strong>Wasze hobbystyczne projekty b&#x119;d&#x105; musia&#x142;y niestety pow&#x119;drowa&#x107; gdzie indziej</strong>&#x2026; Ale dok&#x105;d? No w&#x142;a&#x15B;nie, tu opcji jest wiele, ale chcia&#x142;bym skupi&#x107; si&#x119; na dw&#xF3;ch:</p><ul><li>Railway.app</li><li>Fly.io</li></ul><p>Oba to bardzo nowoczesne hostingi i oba maj&#x105;&#xA0;bardzo hojn&#x105; ofert&#x119; &#x2013;&#xA0;tzn. dostajecie mega du&#x17C;o za darmo. Obie us&#x142;ugi pozwalaj&#x105; na <em>deploy</em> dowolnej aplikacji (od node.js, przez Ruby a&#x17C; po Pythona), wspieraj&#x105; Dockera, oferuj&#x105; bazy danych i tak dalej&#x2026; czyli w zasadzie wszystko czego potrzeba.</p><p>Dodatkowo, fly.io <em>out of the box</em> pozwala na <a href="https://fly.io/launch/heroku?ref=news.typeofweb.com">przeniesienie aplikacji z Heroku</a> (bo samo Fly korzysta z tzw. buildpack&#xF3;w tworzonych na potrzeby Heroku!), natomiast Railway udost&#x119;pnia poradnik <a href="https://railway.app/heroku?ref=news.typeofweb.com">jak zmigrowa&#x107; z Heroku</a>.</p><p>Ja zdecydowa&#x142;em si&#x119; przenie&#x15B;&#x107; discordowego Bota Type Of Web na fly.io. A Ty co wybierasz?</p><h2 id="deno-ze-wsparciem-npm">Deno ze wsparciem npm?</h2><p>Skoro przy hostingach jeste&#x15B;my, to mo&#x17C;e jeszcze nie znacie Deno: alternatywy do Node.js powo&#x142;anej do &#x17C;ycia przez jednego z tw&#xF3;rc&#xF3;w samego Node&apos;a. Brzmi dumnie? Projekt absolutnie nie jest nowy (istnieje od dw&#xF3;ch lat), ale po ostatniej rundzie finansowania dzieje si&#x119; wok&#xF3;&#x142; niego tak du&#x17C;o, &#x17C;e w ko&#x144;cu si&#x119; prze&#x142;ama&#x142;em i potestowa&#x142;em co nieco&#x2026;</p><p>Od teraz, Deno b&#x119;dzie &#x2013; wbrew wielu wcze&#x15B;niejszym deklaracjom i obietnicom &#x2013; mia&#x142;o r&#xF3;wnie&#x17C; oficjalne wsparcie dla paczek pobieranych z npmjs. Podobno w&#x142;a&#x15B;nie tego chce spo&#x142;eczno&#x15B;&#x107;. Ale czy przypadkiem nie jest to odej&#x15B;cie od najwa&#x17C;niejszych warto&#x15B;ci Deno, czyli stabilno&#x15B;ci, jako&#x15B;ci bezpiecze&#x144;stwa&#x2026;? Oce&#x144;cie.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://deno.com/blog/changes?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Big Changes Ahead for Deno</div><div class="kg-bookmark-description">Learnings from our recent survey and feedback from across our community. We&#x2019;ll discuss how we&#x2019;re addressing this feedback and the features to expect from Deno in the coming months.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://deno.com/favicon.ico" alt="Polski frontend i backend newsletter @ typeofweb.com #16"><span class="kg-bookmark-author">Deno Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://deno.com/changes/og.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"></div></a></figure><h2 id="pkgland-jak-szuka%C4%87-alternatywnych-paczek-npm">pkg.land: Jak szuka&#x107; alternatywnych paczek npm?</h2><p>Pewnie nie raz zastanawiali&#x15B;cie si&#x119;, czy istniej&#x105; godne polecenia alternatywy do paczek z npm, z kt&#xF3;rych korzystacie? Po prostu z ciekawo&#x15B;ci, dla por&#xF3;wnania lub dlatego, &#x17C;e takie s&#x105; wymagania SOC2&#x2026; Ale jak w og&#xF3;le szuka&#x107;, &#x17C;eby znale&#x17A;&#x107;? Poznajcie pkg.land, czyli narz&#x119;dzie (obecnie beta), kt&#xF3;re dok&#x142;adnie do tego s&#x142;u&#x17C;y &#x1F917;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://pkg.land/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">pkg.land</div><div class="kg-bookmark-description">find alternative packages on npm</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://pkg.land/favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"><span class="kg-bookmark-author">find NPM alternative packages</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://pkg.land/og_image.png" alt="Polski frontend i backend newsletter @ typeofweb.com #16"></div></a></figure><h1 id="wideo">Wideo</h1><h2 id="jak-zacz%C4%85%C4%87-w-bran%C5%BCy-it">Jak zacz&#x105;&#x107; w bran&#x17C;y IT?</h2><p>Ju&#x17C; w najbli&#x17C;szy <strong>wtorek 20.09 o godzinie 13:30</strong> robimy live z Aleksandr&#x105; Pszczo&#x142;&#x105; z Bee Talents. Jak zacz&#x105;&#x107; w bran&#x17C;y IT? Jak wygl&#x105;da proces rekrutacji? Jak szuka&#x107; (i znale&#x17A;&#x107;) dobre firmy? Jak wygl&#x105;da rynek pracy w Polsce i za granic&#x105;? Na te i wiele innych pyta&#x144; odpowie Wam Aleksandra Pszczo&#x142;a, CEO Bee Talents. B&#x119;dzie mo&#x17C;liwo&#x15B;&#x107; zadawania pyta&#x144; na czacie na &#x17C;ywo &#x2013; nie przegapcie!</p><figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://www.youtube.com/watch?v=_tnfLv9RdW8&amp;ref=news.typeofweb.com"><img src="https://news.typeofweb.com/content/images/2022/09/cover_10.png" class="kg-image" alt="Polski frontend i backend newsletter @ typeofweb.com #16" loading="lazy" width="2000" height="1125" srcset="https://news.typeofweb.com/content/images/size/w600/2022/09/cover_10.png 600w, https://news.typeofweb.com/content/images/size/w1000/2022/09/cover_10.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2022/09/cover_10.png 1600w, https://news.typeofweb.com/content/images/2022/09/cover_10.png 2048w" sizes="(min-width: 720px) 720px"></a><figcaption>Kliknij w obrazek, aby zapisa&#x107; si&#x119; na wydarzenie</figcaption></figure><h2 id="typescript-49-i-satisfies">TypeScript 4.9 i <code>satisfies</code></h2><p>Razem z Jakubem &#x201E;Zaiste&#x201D; Neander zrobili&#x15B;my live-coding na temat TypeScripta 4.9, nowego operatora <code>satisfies</code> i jego zastosowania w Next.js. Reakcje by&#x142;y bardzo pozytywny, wi&#x119;c szykujcie si&#x119; na kolejne live&apos;y tego typu! Aby ich nie przegapi&#x107; &#x2013; subujcie kana&#x142; &#x1F60A; Kolejny b&#x119;dzie po&#x15B;wi&#x119;cony Edge API Routes.</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/S1m6wcqtezA?start=171&amp;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="LIVE CODING: Next.js, inferencja typ&#xF3;w TypeScript 4.9 i `satisfies`"></iframe></figure><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie. Dzi&#x119;ki!</p><p><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</p>]]></content:encoded></item><item><title><![CDATA[Dlaczego warto 🤔 dołączyć do Kursu Nowoczesnego Frontendu już TERAZ?]]></title><description><![CDATA[<p>Jak pewnie wiesz, trwa nab&#xF3;r do <a href="https://next.hyperfunctor.com/?ref=news.typeofweb.com">drugiej edycji Kursu Nowoczesnego Frontendu</a>. Sprzeda&#x17C; trwa do ko&#x144;ca maja, ale taka promocja jest TYLKO w tym tygodniu &#x2013; a potem cena ro&#x15B;nie! Wi&#x119;c dlaczego nie skorzysta&#x107; z ju&#x17C; dzi&#x15B;?</p><p>Do&#x15B;</p>]]></description><link>https://news.typeofweb.com/dlaczego-warto-dolaczyc-do-kursu-nowoczesnego-frontendu-juz-teraz/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf6</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Fri, 06 May 2022 10:17:34 GMT</pubDate><content:encoded><![CDATA[<p>Jak pewnie wiesz, trwa nab&#xF3;r do <a href="https://next.hyperfunctor.com/?ref=news.typeofweb.com">drugiej edycji Kursu Nowoczesnego Frontendu</a>. Sprzeda&#x17C; trwa do ko&#x144;ca maja, ale taka promocja jest TYLKO w tym tygodniu &#x2013; a potem cena ro&#x15B;nie! Wi&#x119;c dlaczego nie skorzysta&#x107; z ju&#x17C; dzi&#x15B;?</p><p>Do&#x15B;wiadczenie podpowiada nam, &#x17C;e nale&#x17C;y by&#x107; uczciwym i dlatego m&#xF3;wimy to wprost: cena idzie tylko w g&#xF3;r&#x119; i nigdy nie b&#x119;dzie wi&#x119;kszej promocji na nasz kurs ni&#x17C; teraz. Je&#x15B;li czekasz na black friday, &#x15B;wi&#x119;ta albo jak&#x105;&#x15B; wyj&#x105;tkow&#x105; okazj&#x119;&#x2026; no to ta okazja jest w&#x142;a&#x15B;nie teraz. Lepszej nie b&#x119;dzie.</p><p>To mo&#x17C;e co&#x15B; wi&#x119;cej o samym kursie. Jak typowi programi&#x15B;cie liczenie zaczynamy od Tygodnia 0 (kt&#xF3;rego nawet nie ma w agendzie!). A co w nim jest? Zazwyczaj jest to tylko jakie&#x15B; kr&#xF3;tkie wprowadzenie albo reklam&#xF3;wka, ale nie u nas! Ju&#x17C; w Tygodniu 0 otrzymujesz a&#x17C; 90 minut nagra&#x144; i ogromn&#x105; dawk&#x119; wiedzy na temat Reacta, Nexta, GraphQLa, TypeScripta oraz TailwindCSS. Ca&#x142;y tydzie&#x144; 0 wygl&#x105;da tak:</p><figure class="kg-card kg-image-card"><img src="https://news.typeofweb.com/content/images/2022/05/mailing--2---1-.png" class="kg-image" alt loading="lazy" width="2000" height="1186" srcset="https://news.typeofweb.com/content/images/size/w600/2022/05/mailing--2---1-.png 600w, https://news.typeofweb.com/content/images/size/w1000/2022/05/mailing--2---1-.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2022/05/mailing--2---1-.png 1600w, https://news.typeofweb.com/content/images/size/w2400/2022/05/mailing--2---1-.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Wi&#x119;c&#x2026; zapraszamy! :)</p><p>W Kursie Nowoczesnego Frontendu oferujemy Ci:<br>&#x2705; &#xA0;13 + 1 Tygodni <strong>intensywnej nauki</strong> (<a href="https://next.hyperfunctor.com/?ref=news.typeofweb.com#agenda">ca&#x142;a agenda jest tutaj</a>)<br>&#x2705; &#xA0;<strong>Do&#x17C;ywotni dost&#x119;p</strong> &#x2013; mo&#x17C;esz wr&#xF3;ci&#x107; do materia&#x142;&#xF3;w bez stresu kiedy zechcesz.<br>&#x2705; &#xA0;<strong>Przysz&#x142;e aktualizacje tre&#x15B;ci</strong> &#x2013; dostaniesz materia&#x142;y i poprawki z ka&#x17C;dej kolejnej edycji.<br>&#x2705; &#xA0;<strong>Zamkni&#x119;t&#x105; grup&#x119;</strong>, pomoc i materia&#x142;y &#x2013; online niemal 24/7.<br>&#x2705; &#xA0;Rozbudowane <strong>zadania domowe</strong><br>&#x2705; &#xA0;Wucht&#x119; <strong>materia&#x142;&#xF3;w dodatkowych</strong> i dygresji<br>&#x2705; &#xA0;Satysfakcj&#x119; lub zwrot pieni&#x119;dzy</p><p>Po zako&#x144;czeniu sprzeda&#x17C;y Kurs Nowoczesny Frontend znika z rynku, a kolejna edycja wr&#xF3;ci najwcze&#x15B;niej jesieni&#x105; &#x2013; ale NIGDY nie b&#x119;dzie ju&#x17C; tak tanio jak teraz.</p><p><strong>Tak niska cena obowi&#x105;zuje tylko przez tydzie&#x144; (do 8. maja):</strong></p><!--kg-card-begin: html--><h3 style="text-align: center;"><a href="https://sklep.hyperfunctor.com/cart/add_product/praktyczny-kurs-nowoczesny-frontend-next-js-react-graphql-i-typescript?ref=news.typeofweb.com" style="color: #db2777;">Do&#x142;&#x105;cz do Kursu Nowoczesnego Frontendu za 1476 z&#x142; brutto</a></h3><!--kg-card-end: html--><p></p>]]></content:encoded></item><item><title><![CDATA[Nagranie 🍿 z live'a i 2. Edycja kursu Next.js, GraphQL i TypeScripta]]></title><description><![CDATA[<p>Mam dla Ciebie dwie frontendowe sensacje!</p><h3 id="1-nagranie-z-livea-o-nowoczesnym-frontendzie-i-incremental-static-regeneration">1. Nagranie z live&apos;a o Nowoczesnym Frontendzie i Incremental Static Regeneration</h3><p>Nasz Live w czwartkowy wiecz&#xF3;r okaza&#x142; si&#x119; by&#x107; hitem. Nigdy nie mieli&#x15B;my tylu os&#xF3;b na &#x17C;ywo i przekazali&#x15B;my mas&</p>]]></description><link>https://news.typeofweb.com/nagranie-z-livea-i-2-edycja-kursu-next-js-graphql-i-typescripta/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf5</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Sun, 01 May 2022 08:24:30 GMT</pubDate><content:encoded><![CDATA[<p>Mam dla Ciebie dwie frontendowe sensacje!</p><h3 id="1-nagranie-z-livea-o-nowoczesnym-frontendzie-i-incremental-static-regeneration">1. Nagranie z live&apos;a o Nowoczesnym Frontendzie i Incremental Static Regeneration</h3><p>Nasz Live w czwartkowy wiecz&#xF3;r okaza&#x142; si&#x119; by&#x107; hitem. Nigdy nie mieli&#x15B;my tylu os&#xF3;b na &#x17C;ywo i przekazali&#x15B;my mas&#x119; wiedzy na temat budowania statycznych (ale nowoczesnych) aplikacji. Bez fa&#x142;szywej skromno&#x15B;ci: wiedza na najwy&#x17C;szym poziomie po&#x142;&#x105;czona z latami do&#x15B;wiadczenia.</p><p>Live znajdziesz tutaj: <a href="https://youtu.be/vt6Y3ahkgV8?ref=news.typeofweb.com">https://youtu.be/vt6Y3ahkgV8</a></p><h2 id="2-otwarcie-naboru-do-kursu-nowoczesnego-frontendu">2. Otwarcie naboru do kursu Nowoczesnego Frontendu</h2><p>Wystartowali&#x15B;my z drug&#x105; edycj&#x105; kursu <strong>Nowoczesnego Frontendu. Next, TypeScript i GraphQL</strong>, czyli combo, kt&#xF3;re potrafi wiele namiesza&#x107;. Wi&#x119;kszo&#x15B;&#x107; kurs&#xF3;w w Internecie jest pobie&#x17C;na, przestarza&#x142;a lub pe&#x142;na b&#x142;&#x119;d&#xF3;w i z&#x142;ych praktyk. Na pewno wiesz o czym m&#xF3;wimy. U nas jest inaczej.</p><p>My stawiamy na <strong>pragmatyzm i zero zb&#x119;dnej teorii</strong>, i przez wiele miesi&#x119;cy ci&#x119;&#x17C;ko pracowali&#x15B;my, aby dostarczy&#x107; Ci w&#x142;a&#x15B;nie taki materia&#x142;. Chcemy pokaza&#x107;, &#x17C;e z jednej strony praca frontendowca <strong>nie musi by&#x107; ci&#x105;g&#x142;ym skakaniem mi&#x119;dzy nowymi technologiami</strong> i bibliotekami (znasz to?), ale z drugiej strony wcale nie jest nudna! Je&#x15B;li chcesz si&#x119; rozwija&#x107;, <strong>zrozumie&#x107; uniwersalne koncepty</strong> i budowa&#x107; niezwykle <strong>wydajne aplikacje internetowe</strong> niezale&#x17C;nie od technologii, to jeste&#x15B; w dobrym miejscu!</p><!--kg-card-begin: html--><h3 style="text-align: center;"><a href="https://next.hyperfunctor.com/?ref=news.typeofweb.com" style="color: #db2777;">next.hyperfunctor.com</a></h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><a href="https://sklep.hyperfunctor.com/cart/add_product/praktyczny-kurs-nowoczesny-frontend-next-js-react-graphql-i-typescript?ref=news.typeofweb.com"><img src="https://news.typeofweb.com/content/images/2022/05/Mailing.png" class="kg-image" alt loading="lazy" width="2000" height="1125" srcset="https://news.typeofweb.com/content/images/size/w600/2022/05/Mailing.png 600w, https://news.typeofweb.com/content/images/size/w1000/2022/05/Mailing.png 1000w, https://news.typeofweb.com/content/images/size/w1600/2022/05/Mailing.png 1600w, https://news.typeofweb.com/content/images/size/w2400/2022/05/Mailing.png 2400w" sizes="(min-width: 720px) 720px"></a></figure><p>Oferujemy:<br>&#x2705; &#xA0;13. Tygodni <strong>intensywnej nauki</strong> (<a href="https://next.hyperfunctor.com/?ref=news.typeofweb.com#agenda">ca&#x142;a agenda jest tutaj</a>)<br>&#x2705; &#xA0;<strong>Do&#x17C;ywotni dost&#x119;p</strong> &#x2013; mo&#x17C;esz wr&#xF3;ci&#x107; do materia&#x142;&#xF3;w bez stresu kiedy zechcesz.<br>&#x2705; &#xA0;<strong>Przysz&#x142;e aktualizacje tre&#x15B;ci</strong> &#x2013; dostaniesz materia&#x142;y i poprawki z ka&#x17C;dej kolejnej edycji.<br>&#x2705; &#xA0;<strong>Zamkni&#x119;t&#x105; grup&#x119;</strong>, pomoc i materia&#x142;y &#x2013; online niemal 24/7.<br>&#x2705; &#xA0;Rozbudowane <strong>zadania domowe</strong><br>&#x2705; &#xA0;Wucht&#x119; <strong>materia&#x142;&#xF3;w dodatkowych</strong> i dygresji<br>&#x2705; &#xA0;Satysfakcj&#x119; lub zwrot pieni&#x119;dzy</p><h4 id="tak-niska-cena-obowi%C4%85zuje-tylko-przez-tydzie%C5%84-do-8-maja">Tak niska cena obowi&#x105;zuje tylko przez tydzie&#x144; (do 8. maja):</h4><!--kg-card-begin: html--><h3 style="text-align: center;"><a href="https://sklep.hyperfunctor.com/cart/add_product/praktyczny-kurs-nowoczesny-frontend-next-js-react-graphql-i-typescript?ref=news.typeofweb.com" style="color: #db2777;">Kup kurs Nowoczesny Frontend za 1476 z&#x142; brutto</a></h3><!--kg-card-end: html--><p><strong>Po zako&#x144;czeniu sprzeda&#x17C;y Kurs Nowoczesny Frontend znika z rynku</strong>, a kolejna edycja wr&#xF3;ci najwcze&#x15B;niej jesieni&#x105; &#x2013; ale <strong>NIGDY nie b&#x119;dzie ju&#x17C; tak tanio jak teraz</strong>.</p><p>Na stronie <a href="https://next.hyperfunctor.com/?ref=news.typeofweb.com">https://next.hyperfunctor.com</a> znajdziesz te&#x17C; <strong>lekcj&#x119; demo</strong>, &#x17C;eby osobi&#x15B;cie sprawdzi&#x107; jak wygl&#x105;da nasz kurs. Ponadto, dok&#x142;adnie opisali&#x15B;my <strong>czym ten kurs r&#xF3;&#x17C;ni si&#x119; od innych, do kogo konkretnie jest skierowany</strong> i <strong>dlaczego warto go wybra&#x107;</strong>. Na stronie znajdziesz r&#xF3;wnie&#x17C; <strong>opinie kursant&#xF3;w</strong> z pierwszej edycji oraz <strong>najcz&#x119;&#x15B;ciej zadawane pytania</strong> i odpowiedzi na nie. A je&#x15B;li pojawi&#x105; si&#x119; jakiekolwiek w&#x105;tpliwo&#x15B;ci &#x2013; to mo&#x17C;esz zawsze do nas napisa&#x107; lub, po prostu, odpisa&#x107; na tego maila.</p><!--kg-card-begin: html--><h3 style="text-align: center;"><a href="https://sklep.hyperfunctor.com/cart/add_product/praktyczny-kurs-nowoczesny-frontend-next-js-react-graphql-i-typescript?ref=news.typeofweb.com" style="color: #db2777;">Kup kurs Nowoczesny Frontend za 1476 z&#x142; brutto</a></h3><!--kg-card-end: html--><p>Do zobaczenia na kursie Nowoczesny Frontend!</p><p>Micha&#x142; &amp; Jakub&#x200C;&#x200C;&#x200C;&#x200C;<br><a href="https://next.hyperfunctor.com/?ref=news.typeofweb.com">next.hyperfunctor.com</a></p><p>P.S. Mamy polityk&#x119; &#x201E;satysfakcja lub zwrot pieni&#x119;dzy&#x201D;, wi&#x119;c niczym nie ryzykujesz!</p>]]></content:encoded></item><item><title><![CDATA[🔴 Live Nowoczesny Frontend: Incremental Static Regeneration]]></title><description><![CDATA[<p>Pami&#x119;tasz, &#x17C;e ju&#x17C; dzisiaj o 18:00 czekamy na Ciebie na livie? B&#x119;dziemy m&#xF3;wi&#x107; o tym, <strong>jak budowa&#x107; nowoczesny frontend z Next.js i Incremental Static Regeneration</strong>, a konkretnie:</p><p>&#x2705; Czy dynamiczne aplikacje da si&#x119; implementowa&#x107; jako <strong>statyczne</strong></p>]]></description><link>https://news.typeofweb.com/live-nowoczesny-frontend-incremental-static-regeneration-2/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf4</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Thu, 28 Apr 2022 06:01:00 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2022/04/YouTube-Cover-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2022/04/YouTube-Cover-1.png" alt="&#x1F534; Live Nowoczesny Frontend: Incremental Static Regeneration"><p>Pami&#x119;tasz, &#x17C;e ju&#x17C; dzisiaj o 18:00 czekamy na Ciebie na livie? B&#x119;dziemy m&#xF3;wi&#x107; o tym, <strong>jak budowa&#x107; nowoczesny frontend z Next.js i Incremental Static Regeneration</strong>, a konkretnie:</p><p>&#x2705; Czy dynamiczne aplikacje da si&#x119; implementowa&#x107; jako <strong>statyczne strony</strong>?</p><p>&#x2705; Jak budowa&#x107; <strong>nowoczesny frontend</strong>?</p><p>&#x2705; Czy Next.js to <strong>najlepszy wyb&#xF3;r</strong> do tworzenia rozbudowanych frontend&#xF3;w?</p><p>&#x2705; Dlaczego Incremental Static Regeneration to absolutny game changer?</p><!--kg-card-begin: html--><p style="text-align: center; font-size: 2rem;">&#x1F449; <a href="https://youtu.be/vt6Y3ahkgV8?ref=news.typeofweb.com" style="color: #db2777; text-decoration: underline;">Czekamy na Ciebie tutaj o 18:00</a> &#x1F448;<br> <a href="https://youtu.be/vt6Y3ahkgV8?ref=news.typeofweb.com" style="color: #db2777; text-decoration: underline;">https://youtu.be/vt6Y3ahkgV8</a></p><!--kg-card-end: html--><p>Jakub to marzyciel i perfekcjonista, kt&#xF3;ry zawsze ma jakie&#x15B; ciekawe angegdoty ze swoich spotka&#x144; z <strong>licznymi startuperami z Doliny Krzemowej</strong>. Micha&#x142; za&#x15B; to <strong>twarto st&#x105;paj&#x105;cy po ziemii realista</strong>, kt&#xF3;ry na wie&#x15B;&#x107; o nowych frameworkach tylko wywraca oczami. I dlatego w&#x142;a&#x15B;nie nasz duet jest tak ciekawy, bo <strong>zawsze si&#x119; kontrujemy i uzupe&#x142;niamy</strong> &#x1F525;</p><p>Nagranie z live&apos;a prawdopodobnie b&#x119;dzie dost&#x119;pne przez jaki&#x15B; czas, ale warto by&#x107; na &#x17C;ywo!</p><p>P.S. B&#x119;dzie czas na pytania i odpowiedzi</p><p>P.S.2 Porozmawiamy te&#x17C; o kursie Nowoczesny Frontend, wi&#x119;c je&#x15B;li masz jakiekolwiek pytania to zadaj je w trakcie!</p>]]></content:encoded></item><item><title><![CDATA[🔴 Live Nowoczesny Frontend: Incremental Static Regeneration]]></title><description><![CDATA[<p>Dzi&#x15B; przychodz&#x119; do Ciebie z dwoma newsami w temacie Next.js, React, GraphQL, TypeScripta i wszystkiego co zwi&#x105;zane z tworzeniem nowoczesnego frontendu.</p><p>Po pierwsze: Ju&#x17C; w ten czwartek (28. kwietnia) o 18:00 odb&#x119;dzie si&#x119; wyj&#x105;tkowy live pod has&#x142;</p>]]></description><link>https://news.typeofweb.com/live-nowoczesny-frontend-incremental-static-regeneration/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf3</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Tue, 26 Apr 2022 06:13:00 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2022/04/Insta-post--1---1--1.png" medium="image"/><content:encoded><![CDATA[<img src="https://news.typeofweb.com/content/images/2022/04/Insta-post--1---1--1.png" alt="&#x1F534; Live Nowoczesny Frontend: Incremental Static Regeneration"><p>Dzi&#x15B; przychodz&#x119; do Ciebie z dwoma newsami w temacie Next.js, React, GraphQL, TypeScripta i wszystkiego co zwi&#x105;zane z tworzeniem nowoczesnego frontendu.</p><p>Po pierwsze: Ju&#x17C; w ten czwartek (28. kwietnia) o 18:00 odb&#x119;dzie si&#x119; wyj&#x105;tkowy live pod has&#x142;em <strong>Nowoczesny Frontend: Next.js Incremental Static Regeneration</strong>. Ja, czyli Micha&#x142; Miszczyszyn (Type of Web) oraz Jakub Neander (Zaiste) pojawimy si&#x119; specjalnie dla Ciebie na &#x17C;ywo aby opowiedzie&#x107; o budowaniu wsp&#xF3;&#x142;czesnych aplikacji internetowych.</p><p><strong>Linka do do&#x142;&#x105;czenia do webinaru wy&#x15B;l&#x119; Ci w czwartek z samego rana.</strong></p><p><strong>O czym w og&#xF3;le b&#x119;dziemy m&#xF3;wi&#x107;? Dowiesz si&#x119;:</strong></p><p>&#x2705; Czy dynamiczne aplikacje da si&#x119; implementowa&#x107; jako <strong>statyczne strony</strong>?<br>&#x2705; Jak budowa&#x107; <strong>nowoczesny frontend</strong>?<br>&#x2705; Jak dzia&#x142;a Incremental Static Regeneration?<br>&#x2705; Czy Next.js to <strong>najlepszy wyb&#xF3;r</strong> do tworzenia rozbudowanych frontend&#xF3;w?</p><p>Na te i wiele innych pyta&#x144; odpowiemy w trakcie live&apos;a. B&#x119;dzie dyskusja, b&#x119;dzie te&#x17C; &#x26A0;&#xFE0F; live coding &#x26A0;&#xFE0F;, wi&#x119;c nie mo&#x17C;e Ci&#x119; zabrakn&#x105;&#x107;!</p><p>Co istotne, warto pojawi&#x107; si&#x119; na &#x17C;ywo nie tylko po to, aby m&#xF3;c zada&#x107; nam pytanie, ale te&#x17C; dlatego, &#x17C;e <strong>nagranie z live&apos;a b&#x119;dzie do obejrzenia tylko przez kr&#xF3;tki czas&#x2026; bo docelowo b&#x119;dzie dost&#x119;pne wy&#x142;&#x105;cznie dla naszych Kursant&#xF3;w i Kursantek!</strong></p><p>I to jest w&#x142;a&#x15B;nie ten news numero due, czyli: <strong>startujemy z drug&#x105; edycj&#x105; kursu online Next.js, GraphQL i TypeScripta</strong>! &#x1F389;</p><p>Wkr&#xF3;tce udost&#x119;pni&#x119; wi&#x119;cej informacji, lekcj&#x119; demo, (rewelacyjne) opinie kursant&#xF3;w pierwszej edycji, pe&#x142;n&#x105; ofert&#x119; oraz odpowiedzi na wszelkie pytania. Zainteresowanie jest spore, pyta&#x144; od Was wiele, ale damy rad&#x119; &#x1F609;</p><p>To tyle! Skupiamy si&#x119; na dostarczeniu Ci maksimum merytoryki, wi&#x119;c bez zb&#x119;dnego lania wody: <strong>widzimy si&#x119; na livie w czwartek, a p&#xF3;&#x17A;niej na kursie Nowoczesnego Frontendu</strong>.</p><p>P.S. Wiem, &#x17C;e dawno nie by&#x142;o newslettera. To si&#x119;&#xA0;zmieni :) Wkr&#xF3;tce wi&#x119;cej merytorycznych i ciekawych wiadomo&#x15B;ci.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Polski frontend i backend newsletter @ typeofweb.com #15]]></title><description><![CDATA[<div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div><h2 id="to-samo-w-r%C3%B3%C5%BCnych-j%C4%99zykach">To samo w r&#xF3;&#x17C;nych</h2>]]></description><link>https://news.typeofweb.com/15/</link><guid isPermaLink="false">666c67d24ad3a70001a65cf2</guid><dc:creator><![CDATA[Michał Miszczyszyn]]></dc:creator><pubDate>Fri, 11 Feb 2022 13:06:45 GMT</pubDate><media:content url="https://news.typeofweb.com/content/images/2022/02/cover_ghost_15.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F44B;</div><div class="kg-callout-text"><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</div></div><h2 id="to-samo-w-r%C3%B3%C5%BCnych-j%C4%99zykach">To samo w r&#xF3;&#x17C;nych j&#x119;zykach</h2><img src="https://news.typeofweb.com/content/images/2022/02/cover_ghost_15.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><p>Razem z <a href="https://www.instagram.com/pani.od.programowania/?ref=news.typeofweb.com">@pani.od.programowania</a> (Java), <a href="https://www.instagram.com/pogromcy_kodu/?ref=news.typeofweb.com">@pogromcy_kodu</a> (Python) <a href="https://www.instagram.com/szymonpaluch/?ref=news.typeofweb.com">@szymonpaluch</a> (Ruby) i <a href="https://www.instagram.com/michal_typeofweb/?ref=news.typeofweb.com">@michal_typofweb</a> (TS/JS) postanowili&#x15B;my stworzy&#x107; dla Was proste por&#xF3;wnanie popularnych j&#x119;zyk&#xF3;w programowania. Na pierwszy ogie&#x144; posz&#x142;a prosta instrukcja warunkowa &#x1F449; <code>IF</code> &#x1F448; Jak j&#x105; napisa&#x107; w TypeScripcie, a jak w Javce? Czy zapis z Pythona jest bardziej przyst&#x119;pny ni&#x17C; ten w Rubym?</p><p>Niezale&#x17C;nie od tego, czy dopiero zaczynasz z programowaniem, czy jeste&#x15B; ju&#x17C; przekozakiem to seria &#x201E;To samo w r&#xF3;&#x17C;nych j&#x119;zykach&#x201D; b&#x119;dzie dla Ciebie idealnym miejscem, &#x17C;eby dowiedzie&#x107; si&#x119; czego&#x15B; nowego!</p><p>&#x15A;led&#x17A;cie nas na bierz&#x105;co na Instagramie, kolejne posty ju&#x17C; w &#x15B;rod&#x119; o 19:00</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://news.typeofweb.com/content/images/2022/02/31.png" width="1080" height="1080" loading="lazy" alt="Polski frontend i backend newsletter @ typeofweb.com #15" srcset="https://news.typeofweb.com/content/images/size/w600/2022/02/31.png 600w, https://news.typeofweb.com/content/images/size/w1000/2022/02/31.png 1000w, https://news.typeofweb.com/content/images/2022/02/31.png 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://news.typeofweb.com/content/images/2022/02/32.png" width="1080" height="1080" loading="lazy" alt="Polski frontend i backend newsletter @ typeofweb.com #15" srcset="https://news.typeofweb.com/content/images/size/w600/2022/02/32.png 600w, https://news.typeofweb.com/content/images/size/w1000/2022/02/32.png 1000w, https://news.typeofweb.com/content/images/2022/02/32.png 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://news.typeofweb.com/content/images/2022/02/33.png" width="1080" height="1080" loading="lazy" alt="Polski frontend i backend newsletter @ typeofweb.com #15" srcset="https://news.typeofweb.com/content/images/size/w600/2022/02/33.png 600w, https://news.typeofweb.com/content/images/size/w1000/2022/02/33.png 1000w, https://news.typeofweb.com/content/images/2022/02/33.png 1080w" sizes="(min-width: 720px) 720px"></div></div></div></figure><h2 id="frontend">Frontend</h2><h3 id="nowy-projekt-netlify">Nowy projekt Netlify</h3><p>Netlify przygotowuje jaki&#x15B; tajny projekt. Og&#x142;oszenie ma nast&#x105;pi&#x107; 15. lutego o godzinie 19:00 czasu polskiego. W projekt zaanga&#x17C;owany jest Sean Grove &#x2013; osoba znana wszystkim w spo&#x142;eczno&#x15B;ci Rescript (ReasonML), a p&#xF3;&#x17A;nie GraphQL. Czy ma to jaki&#x15B; zwi&#x105;zek? Zobaczymy!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.netlify.com/events/join-the-product-launch?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Join the product launch</div><div class="kg-bookmark-description">A powerful serverless platform with an intuitive git-based workflow. Automated deployments, shareable previews, and much more. Get started for free!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.netlify.com/v3/static/favicon/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><span class="kg-bookmark-author">Netlify</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.sanity.io/images/o0o2tn5x/production/88412524319d8c210c23767ab16d29aa92eb4e0d-1200x630.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h3 id="sqlite-w-css">SQLite w CSS</h3><p>Jak po&#x142;&#x105;czy&#x107; si&#x119;&#xA0;z baz&#x105; danych SQLite z poziomu&#x2026; CSS? Okazuje si&#x119;, &#x17C;e jest to mo&#x17C;liwe! Wystarczy tylko szczypta magii w postaci Houdini&#x2026;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.leemeichin.com/posts/yes-i-can-connect-to-a-db-in-css.html?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Yes, I can connect to a DB in CSS</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">kamel&#xE5;s&#xE5; special topics in calamity something or other</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.leemeichin.com/img/yes-i-can-connect-to-a-db-in-css/tweet.jpg" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h3 id="recoil-06">Recoil 0.6</h3><p>Wysze&#x142; Recoil w wersji 0.6, a wnim w sumie nic ciekawego dla os&#xF3;b korzystaj&#x105;cych ze stabilnej wersji Reacta&#x2026; ale je&#x15B;li jeste&#x15B; nieco bardziej &#x17C;&#x105;dny/a przyg&#xF3;d, to zainstaluj sobie Reacta 18.0.0-rc.0, w kt&#xF3;rym mo&#x17C;na nieco, hmmm, <em>poszale&#x107;</em>. <code>useRecoilState_TRANSITION_SUPPORT_UNSTABLE</code> i inne hooki o podobnej nazwie czekaj&#x105; na Ciebie.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://recoiljs.org/blog/2022/01/28/0.6.0-release/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Recoil 0.6 | Recoil</div><div class="kg-bookmark-description">Recoil 0.6 introduces improved support for React 18, including concurrent rendering and transitions, along with new APIs, fixes, and optimizations.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://recoiljs.org/img/favicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><span class="kg-bookmark-author">Recoil</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://recoiljs.org/img/og-image.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h3 id="angular-powoli-dogania-konkurencj%C4%99">Angular powoli dogania konkurencj&#x119;</h3><p>Team Angulara niedawno wypu&#x15B;ci&#x142; RFC dotycz&#x105;ce &quot;Standalone Components&quot;, czyli pozbyciu si&#x119;&#xA0;NgModule na rzecz po prostu, najzwyczajniej w &#x15B;wiecie, prostych komponent&#xF3;w. Jest to co&#x15B; co by&#x142;o wytykane Angularowi od samego pocz&#x105;tku jego istnienia (jeszcze w wersjach 2-alpha) i wreszcie dzisiaj, po 6 (sic!) latach, rozpocz&#x119;&#x142;o si&#x119;&#xA0;rozmy&#x15B;lanie nad tym jak bardziej NgModule by&#x142;, jest i b&#x119;dzie zb&#x119;dny.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dev.to/angular/component-first-architecture-with-angular-and-standalone-components-3pjd?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Component-First Architecture with Angular and Standalone Components</div><div class="kg-bookmark-description">Angular recently had an RFC (Request for Comments) on Standalone Components. It is an effort to make...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--t7tVouP9--/c_limit,f_png,fl_progressive,q_80,w_192/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/devlogo-pwa-512.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><span class="kg-bookmark-author">DEV Community</span><span class="kg-bookmark-publisher">Colum Ferry</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nqn9D9kj--/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9p53n81kazc6t6us9bdo.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h3 id="angular-news-o-react">Angular News o React</h3><p>Kolejnym dowodem na to jak bardzo martwa jest spo&#x142;eczno&#x15B;&#x107; Angulara niech b&#x119;dzie fakt, &#x17C;e Angular News na Twitterze wrzuca informacje o&#x2026; React.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">Top 8 React Bootstrap Themes for Enthusiasts and Pros <a href="https://twitter.com/hashtag/React?src=hash&amp;ref_src=twsrc%5Etfw&amp;ref=news.typeofweb.com">#React</a> <a href="https://twitter.com/hashtag/ReactJS?src=hash&amp;ref_src=twsrc%5Etfw&amp;ref=news.typeofweb.com">#ReactJS</a><br>&gt; <a href="https://t.co/WdtKUhO2GF?ref=news.typeofweb.com">https://t.co/WdtKUhO2GF</a><br>Material Dashboard 2 React by Creative Tim <a href="https://t.co/bLti3aeOGs?ref=news.typeofweb.com">pic.twitter.com/bLti3aeOGs</a></p>&#x2014; Angular News (@AngularJS_News) <a href="https://twitter.com/AngularJS_News/status/1492115825612013570?ref_src=twsrc%5Etfw&amp;ref=news.typeofweb.com">February 11, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><h2 id="backend">Backend</h2><h3 id="asyncawait-w-rust">async/await w Rust</h3><p>Proces rozwoju Rusta jest bardzo dojrza&#x142;y i przez to te&#x17C; <em>nieco</em> powolny. Ale mamy pewien istotny update na temat prac projektowych, kt&#xF3;re trwaj&#x105; ju&#x17C; rok&#x2026; powitajcie async/await w Rust! Opr&#xF3;cz funkcji oznaczanych s&#x142;owem <code>async</code> oraz oczekiwania na ich rezultat przez <code>await</code>, Rust dodaje od razu r&#xF3;&#x17C;nie&#x17C; <code>for await</code> i <code>AsyncIterator</code>. Ka&#x17C;da osoba zaznajomiona z JS-em b&#x119;dzie si&#x119;&#xA0;czu&#x142;a jak ryba w wodzie.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.rust-lang.org/inside-rust/2022/02/03/async-in-2022.html?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Async Rust in 2022 | Inside Rust Blog</div><div class="kg-bookmark-description">Want to follow along with Rust development? Curious how you might get involved? Take a look!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.rust-lang.org/images/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><span class="kg-bookmark-author">Inside Rust Blog</span><span class="kg-bookmark-publisher">Async Working Group</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.rust-lang.org/static/images/rust-social-wide.jpg" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h3 id="nodejs-16140-lts">Node.js 16.14.0 (LTS)</h3><p>Wyszed&#x142; node.js 16.14.0. Poza pomniejszymi zmianami, jest jedna szczeg&#xF3;lnie warta uwagi: dodanie eksperymentalnego wsparcia dla <em>import assertions</em>, kt&#xF3;re obecnie s&#x105; w fazie 3 szkic&#xF3;w do ECMAScript. Node.js ukrywa na razie t&#x119; funkcj&#x119; za flag&#x105; <code>--experimental-json-modules</code>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nodejs.org/en/blog/release/v16.14.0/?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Node v16.14.0 (LTS) | Node.js</div><div class="kg-bookmark-description">Node.js&#xAE; is a JavaScript runtime built on Chrome&#x2019;s V8 JavaScript engine.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nodejs.org/static/images/favicons/apple-touch-icon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><span class="kg-bookmark-author">Node.js</span><span class="kg-bookmark-publisher">Node.js</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nodejs.org/static/images/logo-hexagon-card.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h3 id="redis-smq">redis-smq</h3><p>Lekka, prosta i bardzo wydajna kolejka oparta o Redisa. Dla Node.js. Niedawno wysz&#x142;a wersja 6! U&#x17C;ywacie?</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/weyoss/redis-smq?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - weyoss/redis-smq: A simple high-performance Redis message queue for Node.js.</div><div class="kg-bookmark-description">A simple high-performance Redis message queue for Node.js. - GitHub - weyoss/redis-smq: A simple high-performance Redis message queue for Node.js.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">weyoss</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/3e13cde5fe10a0a5c96209f70ab06212e09fd496f8ea2f52b2a27deb73b26887/weyoss/redis-smq" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h2 id="podcast">Podcast</h2><h3 id="requirepl-z-olafem-sulichem-z-frontlivepl">require.pl z Olafem Sulichem z frontlive.pl</h3><p>Pierwszy odcinek w formacie require().interview, czyli serii, w kt&#xF3;rej prowadz&#x105;cy (Artur Dudek i Adam Siekierski) rozmawiaj&#x105; z go&#x15B;&#x107;mi jak na rozmowie rekrutacyjnej &#x2013; konkretnie, technicznie, precyzyjnie. Pierwszym zaproszonym zosta&#x142; Olaf Sulich, a rozmowa dotyczy&#x142;a tematu dost&#x119;pno&#x15B;ci (<em>accessibility</em>). Warto pos&#x142;ucha&#x107;.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://require.pl/archive/32/dostepnosc-olaf-sulich-interview?ref=news.typeofweb.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">require(#32).interview - Dost&#x119;pno&#x15B;&#x107; feat. Olaf Sulich z Frontlive.pl</div><div class="kg-bookmark-description">W tym odcinku Require Podcast rozmawiali&#x15B;my z Olafem Sulichem, autorem bloga Frontlive.pl, na temat dost&#x119;pno&#x15B;ci, kt&#xF3;ra jest cz&#x119;sto pomijanym, a bardzo istotnym tematem w kontek&#x15B;cie frontendu</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://require.pl/icons/icon-512x512.png?v=39004b6cd8b8e6e1a68ad63d0ae051b2" alt="Polski frontend i backend newsletter @ typeofweb.com #15"><span class="kg-bookmark-author">Require Podcast</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://require.pl/logo.png" alt="Polski frontend i backend newsletter @ typeofweb.com #15"></div></a></figure><h3 id="podcast-type-of-web">Podcast Type of Web</h3><p>Przy okazji musz&#x119; wspomnie&#x107;, &#x17C;e nasze rozmowy z <a href="https://www.youtube.com/c/Typeofweb/videos?ref=news.typeofweb.com">kana&#x142;u Type of Web na YouTube</a> mo&#x17C;ecie te&#x17C; wys&#x142;ucha&#x107; w postaci podcastu na popularnych platformach:</p><!--kg-card-begin: markdown--><ul>
<li><a href="https://podcasts.apple.com/pl/podcast/type-of-web/id1555223309?ref=news.typeofweb.com">Apple Podcasts</a></li>
<li><a href="https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy80ZTNkZDQ1NC9wb2RjYXN0L3Jzcw%3D%3D&amp;ref=news.typeofweb.com">Google Podcasts</a></li>
<li><a href="https://open.spotify.com/show/6vhc4MnzRnBh4HQPk3JRIa?ref=news.typeofweb.com">Spotify</a></li>
<li>&#x2026; i innych</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-embed-card"><iframe src="https://anchor.fm/typeofweb/embed" height="102px" width="400px" frameborder="0" scrolling="no"></iframe></figure><h2 id="stopka">Stopka</h2><p>Podoba&#x142;o si&#x119;? Nie podoba&#x142;o si&#x119;? Daj mi zna&#x107;. Je&#x15B;li co&#x15B; z wrzuconych tu materia&#x142;&#xF3;w Ci si&#x119; przyda&#x142;o, to daj lajka, udost&#x119;pniaj, albo po prostu powiedz znajomym. Ch&#x119;tnie przyjmuj&#x119; te&#x17C; wszelkie sugestie. Dzi&#x119;ki!</p><p><strong><strong>Stale poszukuj&#x119; sponsor&#xF3;w.</strong></strong> Chcesz, aby Twoje materia&#x142;y lub og&#x142;oszenie by&#x142;o tutaj promowane? Odezwij si&#x119; na <a href="mailto:wspolpraca@typeofweb.com">wspolpraca@typeofweb.com</a> lub <a href="https://typeofweb.com/wspolpraca?ref=news.typeofweb.com">typeofweb.com/wspolpraca</a>. Dok&#x142;adn&#x105; ofert&#x119; znajdziesz na podstronie <a href="https://news.typeofweb.com/reklama/">Reklama</a>.</p>]]></content:encoded></item></channel></rss>