---
title: "Portfolio"
canonical_url: "https://www.adriannita.pl/projekty/portfolio"
---

> Index of every page on this site: [llms.txt](https://www.adriannita.pl/llms.txt)

## Zadanie

Potrzebowałem strony, która w 30 sekund pokaże, że dowożę produkcyjne systemy, i da prostą drogę do kontaktu. Do tego dwa języki i CV, które nie rozjedzie się ze stroną.

## Co zrobiłem

Plan, architekturę i teksty ustaliłem sam, kod pisałem z Claude Code. Każdą zmianę czytałem i sprawdzałem w przeglądarce, zanim trafiła na produkcję.

## Decyzje

### Statyczny HTML

Strony są prerenderowane, więc nie ma serwera do utrzymania. Jedyny endpoint to formularz kontaktowy, który działa jako funkcja na Cloudflare.

### Animacje w CSS

Nagłówek, oś doświadczenia i wejścia sekcji działają na animacjach sterowanych scrollem, bez JavaScriptu. Przy ograniczeniu ruchu się wyłączają.

### E-mail składany w przeglądarce

Pełnego adresu nie ma ani w HTML-u, ani w bundlu, więc boty zbierające adresy go nie znajdą.

## Co poprawiałem po drodze

Treść sekcji czekała na hydratację i przy wolnym łączu mogła zostać niewidoczna. Odsłanianie przeniosłem do CSS i jednego obserwatora, niezależnego od ładowania sekcji.

Rok w stopce i w liczbie lat rozjeżdżał się po Nowym Roku między HTML-em a przeglądarką. Teraz trafia do payloadu z buildu.

## Efekt

Strona działa pod adresem [adriannita.pl](https://www.adriannita.pl/). Każdy push przechodzi lint, typy, testy i build, a po wdrożeniu smoke test sprawdza stronę i formularz.

## Sitemap

See the full [sitemap](https://www.adriannita.pl/sitemap.md) for all pages.
