$ man cygal.net

A meta-page about the site itself — what it's built with, where it lives, what it deliberately doesn't do. Meta-strona o samej stronie — z czego zbudowana, gdzie żyje, czego świadomie nie robi.

stackstack

  • Astro 6 — static site generator. Zero JS framework runtime; everything renders to plain HTML at build time. Astro 6 — generator statycznych stron. Zero JS-frameworka na runtime; wszystko jest renderowane do czystego HTML-a w trakcie buildu.
  • Self-hosted fonts — JetBrains Mono & Lora woff2 served from this domain, not Google CDN. Własne fonty — JetBrains Mono i Lora w woff2 serwowane z tej domeny, nie z Google CDN.
  • Vanilla CSS — no Tailwind, no CSS-in-JS, no preprocessor. Custom properties + scoped <style> blocks + one global stylesheet. Czyste CSS — bez Tailwinda, bez CSS-in-JS, bez preprocesorów. Custom properties + scopowane bloki <style> + jeden globalny stylesheet.
  • Inline JS only — three tiny scripts: language toggle, dropdown tap-to-open, and a Konami easter egg. Total < 2 KB. Tylko inline JS — trzy malutkie skrypty: przełącznik języka, tap-to-open w dropdownie i easter-egg z Konami. Łącznie < 2 KB.
  • Content Collections — blog posts as Markdown files in src/content/blog/; PL/EN versions linked by a shared translationKey. Content Collections — wpisy na blogu jako pliki Markdown w src/content/blog/; wersje PL/EN sparowane przez wspólny translationKey.
  • Shiki — syntax highlighting for code blocks (Tokyo Night theme). Shiki — podświetlanie składni w blokach kodu (motyw Tokyo Night).

hostinghosting

  • Server: hekate — OVH bare-metal box; also runs mail.systeam.pl, ssijpale.me, systeam.pl and a few sibling vhosts. Serwer: hekate — OVH dedyk; trzyma też mail.systeam.pl, ssijpale.me, systeam.pl i parę innych vhostów.
  • Web stack: Apache 2.4, vhost managed by ISPConfig 3 → static files in /var/www/cygal.net/web/. Stack WWW: Apache 2.4, vhost prowadzony przez ISPConfig 3 → pliki statyczne w /var/www/cygal.net/web/.
  • TLS: Let's Encrypt cert auto-renewed via certbot. TLS: certyfikat Let's Encrypt odnawiany automatycznie przez certbota.
  • Deploy: manual npm run buildrsync over SSH. CI later, when post cadence justifies the setup. Deploy: ręczny npm run buildrsync przez SSH. CI doczepiamy, jak tempo wpisów to uzasadni.
  • Backups before each deploy: tar of the current docroot to /tmp, so any deploy can be undone with one command. The source repo is the durable artifact. Backup przed każdym deployem: tar obecnego docroota do /tmp, dzięki czemu cofnięcie wymaga jednej komendy. Trwałym artefaktem jest źródłowe repo.

what this site does NOT doczego strona NIE robi

  • No tracking, no analytics, no cookies. Not Plausible, not Umami, nothing. If I ever want a number, I'll add a self-hosted log-only counter. Bez śledzenia, bez analytics, bez ciastek. Ani Plausible, ani Umami — nic. Jak kiedyś będę chciał jakąś liczbę, postawię sobie własny licznik na podstawie logów.
  • No third-party scripts. No tag managers, no embedded widgets, no fonts pulled from a CDN. Bez skryptów z trzecich domen. Bez tag managerów, bez wbudowanych widgetów, bez fontów z CDN-u.
  • No comments section. Drop me an email at pawel@cygal.net if you want to argue about something — slower replies, better signal. Bez sekcji komentarzy. Jak chcesz się o coś pokłócić — pisz na pawel@cygal.net. Wolniejsze odpowiedzi, lepszy sygnał.
  • No newsletter sign-up. The RSS feed is the subscription. Bez zapisu na newsletter. Subskrypcja to kanał RSS.
  • No JS framework. Pages weigh ~25 KB compressed. They open instantly even on a flaky connection. Bez JS-frameworka. Strony ważą ok. 25 KB po kompresji. Otwierają się od razu nawet na słabym łączu.

creditspodziękowania