<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Maciej Kucharski</title><link>/</link><description>Recent content on Maciej Kucharski</description><generator>Hugo</generator><language>pl</language><lastBuildDate>Sun, 06 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>Sklep internetowy Military Space Systems</title><link>/projects/military-space-systems/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>/projects/military-space-systems/</guid><description>&lt;p>Jestem autorem sklepu internetowego &lt;a href="https://github.com/2d3designservice/2d3designservice">Military Space Systems&lt;/a> — sklep sprzedaje repliki i modele kolekcjonerskie (rakiety kosmiczne, modele pojazdów, repliki rekwizytów), drukowane w 3D, z wysyłką do Wielkiej Brytanii, USA, Unii Europejskiej oraz reszty świata.&lt;/p>
&lt;p>Strona zbudowana jest na statycznym generatorze &lt;a href="https://gohugo.io/">Hugo&lt;/a> (motyw DoIt), a płatności obsługuje Stripe.&lt;/p>
&lt;p>Szczegóły techniczne:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Platforma i wdrożenie:&lt;/strong> Cloudflare Pages (Hugo extended) z automatycznym deployem z GitHub; domyślny host &lt;code>.pages.dev&lt;/code> zabezpieczony middlewarem przed indeksowaniem (noindex/404 „Strona w budowie&amp;quot;), więc w wynikach wyszukiwarki widoczna jest tylko właściwa domena.&lt;/li>
&lt;li>&lt;strong>Płatności:&lt;/strong> Stripe Checkout — sesja zakupu tworzona serwerowo przez Cloudflare Pages Function (&lt;code>POST /checkout&lt;/code>). Ceny i stawki wysyłki pobierane są z API Stripe skryptem Node podczas builda (&lt;code>scripts/fetch-stripe-prices.js&lt;/code> → &lt;code>data/stripe/*.json&lt;/code>), a mapa stref wysyłki (UK/US/EU/reszta świata) z dozwolonymi krajami trzymana jest we współdzielonym module funkcji.&lt;/li>
&lt;li>&lt;strong>Potwierdzenie zamówienia:&lt;/strong> osobna funkcja pobiera szczegóły sesji Stripe po udanym zakupie i pokazuje na stronie sukcesu numer paragonu widoczny też w mailu od Stripe.&lt;/li>
&lt;li>&lt;strong>Sklep:&lt;/strong> koszyk, wyszukiwarka produktów po stronie klienta (Lunr), produkty jako wpisy w Markdown, ceny w GBP.&lt;/li>
&lt;/ul></description></item><item><title>Strona internetowa Polskiej Szkoły Sobotniej w Burnley</title><link>/projects/polska-szkola-burnley/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>/projects/polska-szkola-burnley/</guid><description>&lt;p>Jestem autorem strony &lt;a href="https://polska-szkola-burnley.co.uk/">polska-szkola-burnley.co.uk&lt;/a>.&lt;/p>
&lt;p>Strona zbudowana jest na generatorze statycznym &lt;a href="https://gohugo.io/">Hugo&lt;/a> z motywem Universal, mocno dostosowanym pod szkołę: własne szablony, niestandardowe arkusze CSS oraz shortcode galerii zdjęć, który automatycznie czyta katalogi z obrazami i osadza lightboxa.&lt;/p>
&lt;p>Szczegóły techniczne:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Hosting i wdrożenie:&lt;/strong> Netlify z automatycznym buildem Hugo przy każdym pushu do GitHub; domena &lt;code>polska-szkola-burnley.co.uk&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Zarządzanie treścią:&lt;/strong> Decap CMS — panel administracyjny w &lt;code>/admin/&lt;/code>, dzięki czemu szkoła może aktualizować treści bez edycji kodu.&lt;/li>
&lt;li>&lt;strong>Formularze:&lt;/strong> funkcja serwerowa Netlify obsługuje formularz zapisu dziecka i wysyła zgłoszenia e-mailem (Nodemailer + SMTP Gmail); formularz kontaktowy korzysta z Formspree.&lt;/li>
&lt;li>&lt;strong>PWA i powiadomienia:&lt;/strong> manifest aplikacji, service worker wspierający tryb offline oraz powiadomienia push (OneSignal).&lt;/li>
&lt;li>&lt;strong>Dodatki:&lt;/strong> lekki system komentarzy Cusdis, galeria w stylu Google Photos, &lt;code>sitemap.xml&lt;/code>/&lt;code>robots.txt&lt;/code> i metadane pod social media.&lt;/li>
&lt;/ul></description></item></channel></rss>