StriveLab
Strony internetowe
Usługi
RealizacjeO mnieBlogPorozmawiajmy
PL
EN

Astro

Ultraszybkie projekty, łączące lekkość ze skalowalnością.

Next.js

Elastyczne i wydajne narzędzia dla biznesu, które dotrzymają kroku Twojemu rozwojowi.

React

Połączenie intuicyjności z wydajnością, które zapewnia bezproblemową skalowalność kodu.

SEO & Performance

Audyt techniczny i optymalizacja pod kątem SEO i GEO.

Automatyzacja AI

Bezpieczne automatyzacje procesów i agenci AI w n8n, Make i Claude.

QA & Automation

Testy automatyczne komponentów i E2E w Cypress.

Doradztwo produktowe

Połączenie perspektywy produktu, developera i marketingu w jednym miejscu

StriveLab
Strony internetowe
Usługi
RealizacjeO mnieBlogPorozmawiajmy
PL
EN

Astro

Ultraszybkie projekty, łączące lekkość ze skalowalnością.

Next.js

Elastyczne i wydajne narzędzia dla biznesu, które dotrzymają kroku Twojemu rozwojowi.

React

Połączenie intuicyjności z wydajnością, które zapewnia bezproblemową skalowalność kodu.

SEO & Performance

Audyt techniczny i optymalizacja pod kątem SEO i GEO.

Automatyzacja AI

Bezpieczne automatyzacje procesów i agenci AI w n8n, Make i Claude.

QA & Automation

Testy automatyczne komponentów i E2E w Cypress.

Doradztwo produktowe

Połączenie perspektywy produktu, developera i marketingu w jednym miejscu

Astro

Ultraszybkie projekty, łączące lekkość ze skalowalnością.

Next.js

Elastyczne i wydajne narzędzia dla biznesu, które dotrzymają kroku Twojemu rozwojowi.

React

Połączenie intuicyjności z wydajnością, które zapewnia bezproblemową skalowalność kodu.

SEO & Performance

Audyt techniczny i optymalizacja pod kątem SEO i GEO.

Automatyzacja AI

Bezpieczne automatyzacje procesów i agenci AI w n8n, Make i Claude.

QA & Automation

Testy automatyczne komponentów i E2E w Cypress.

Doradztwo produktowe

Połączenie perspektywy produktu, developera i marketingu w jednym miejscu

RealizacjeO mnieBlog
Porozmawiajmy
PL
EN

Nowoczesne strony internetowe dla firm, które myślą odważnie.

Przewiń do góry

Nazwa

StriveLab Maciej Sala

NIP

6772218995

REGON

524008527

E-mail

contact@strivelab.pl

Usługi główne
  • Tworzenie stron internetowych
  • Strony internetowe Next.js
  • Strony internetowe Astro
  • Strony internetowe React
Inne usługi
  • Usługi
  • SEO & Performance Sprint
  • QA & Stabilizacja
  • Konsultacje Product / Delivery
  • Automatyzacja Procesów AI
  • Aplikacje webowe Next.js
  • Współpraca ciągła
Strony
  • O mnie
  • Usługi
  • Realizacje
  • Blog

© 2026 StriveLab.pl

Polityka prywatności
Astro

Pierwszy projekt w Astro — od npm create astro do wdrożenia w 15 minut

Czym jest Astro i jak postawić pierwszy projekt: npm create astro, struktura katalogów, routing oparty na plikach, pierwszy komponent i wdrożenie statycznej strony. Przewodnik dla początkujących.

OpublikujLinkedInFacebookWyślij
Autor
Maciej Sala
Opublikowano
29 maja 2026 00:00
Czytanie
5 min czytania
Aktualizacja
4 czerwca 2026 12:20

W Astro jedna komenda stawia projekt, serwer lokalny i pierwszy widok, więc nie musisz spędzać połowy dnia od godzin konfiguracji. Domyślnie dostajesz szybki, statyczny HTML, a JavaScript dokładasz dopiero tam, gdzie faktycznie jest potrzebny. Przejdziemy od npm create astro do wdrożonej strony i po drodze wyjaśnię, jakie potrzeby spełnia projekt stworzony w Astro.

Artykuł w skrócie

  • Astro to framework zorientowany na treść z jedną zasadą: zero JavaScriptu domyślnie — strona to statyczny HTML, a możesz włączyć punktowo interaktywność.
  • Projekt stawiasz jedną komendą npm create astro@latest; wymaga Node 22.12+ (wersje nieparzyste niewspierane).
  • Routing jest oparty na plikach — plik w src/pages/ automatycznie staje się stroną; nawiasy kwadratowe ([slug].astro) tworzą trasy dynamiczne.
  • Statyczną stronę wdrażasz bez adaptera na dowolnym hostingu plików (Vercel, Netlify, Cloudflare Pages).

Ten artykuł to punkt startowy serii o Astro — jeśli reszta serii zakłada, że masz już projekt, to tutaj go zakładamy od pustego folderu. Bez wcześniejszej wiedzy o Astro, za to z wyjaśnieniem, dlaczego robimy rzeczy tak, a nie inaczej. Zapraszam do lektury.

Czym jest Astro i jaki problem rozwiązuje

Astro to framework webowy zbudowany wokół jednej obserwacji: większość stron internetowych wysyła do przeglądarki znacznie więcej JavaScriptu, niż potrzebuje. Blog czy strona firmowa to w 90% treść — tekst, obrazy, linki. A mimo to klasyczne aplikacje React czy Vue ładują cały framework, żeby wyświetlić akapit, który mógłby być zwykłym HTML-em.

Astro nazywa ten nadmiar bloatem JavaScriptu i rozwiązuje go u źródła: domyślnie generuje czysty HTML i nie wysyła do przeglądarki ani jednej linijki frameworkowego JS. Interaktywność — formularz, slider, kalkulator — dodajesz świadomie, tylko tam, gdzie jest potrzebna. To podejście nazywa się Architektura wysp (Islands Architecture) to wzorzec, w którym większość strony jest statycznym HTML-em, a interaktywne fragmenty hydratują się jako niezależne wyspy. i rozkładam je szczegółowo w osobnym artykule.

Dla kogo Astro: blogi, dokumentacja, strony firmowe, landing page, portfolio, lekki e-commerce. Wszędzie tam, gdzie treść jest najważniejsza, a interaktywność punktowa. Dla aplikacji z dużą ilością stanu (dashboardy, panele) lepszy bywa Next.js — porównuję oba w osobnym artykule.

Zanim zaczniesz: Node 22.12+

Astro 6 wymaga Node.js w wersji 22.12.0 lub wyższej. Wersje nieparzyste (jak v23) nie są wspierane, sprawdzisz swoją za pomocą:

Code
node --version

Jeśli masz starszą wersję, po prostu zaktualizuj Node (np. przez nvm) zanim ruszysz dalej — to najczęstsza przyczyna błędów na samym starcie.

Krok 1: Utworzenie projektu

Jedna komenda stawia cały projekt z interaktywnym kreatorem:

Code
npm create astro@latest

Kreator zapyta o nazwę projektu, szablon startowy (wybierz pusty albo blog), TypeScript i instalację zależności - po chwili masz działający projekt.

Info

Wszystkie komendy w tym artykule pokazuję dla npm, ale Astro działa tak samo z każdym menedżerem pakietów. Odpowiedniki: yarn create astro oraz pnpm create astro@latest zamiast npm create, a dalej yarn dev / pnpm dev i yarn build / pnpm build w miejsce npm run dev i npm run build. Wybierz jeden i trzymaj się go w projekcie.

Wchodzisz do katalogu i uruchamiasz serwer deweloperski:

Code
cd moj-projekt
npm run dev

Serwer startuje pod localhost:4321 i odświeża stronę na bieżąco przy każdej zmianie pliku. Pierwsza strona już działa.

Info

Port 4321 to celowy znak rozpoznawczy Astro (odliczanie 4-3-2-1). Jeśli jest zajęty, Astro automatycznie wybierze następny wolny i wypisze go w terminalu.

Krok 2: Struktura projektu

Astro ma przewidywalną i minimalną strukturę katalogów, której najważniejsze elementy wyglądają tak:

Code
moj-projekt/
├── src/
│   ├── pages/          ← każdy plik = strona (routing)
│   │   └── index.astro ← strona główna (/)
│   ├── components/     ← komponenty wielokrotnego użytku
│   └── layouts/        ← szablony wspólne dla stron
├── public/             ← statyczne zasoby (obrazy, robots.txt)
├── astro.config.mjs    ← konfiguracja Astro
├── tsconfig.json       ← konfiguracja TypeScript
└── package.json

Dwa katalogi zapamiętaj od razu:

  • src/pages/ — serce routingu, gdzie każdy plik staje się stroną (o tym za chwilę).
  • public/ — pliki kopiowane do builda dosłownie i bez przetwarzania. Tu trafia robots.txt, favicon i statyczne obrazy.

Krok 3: Routing oparty na plikach

Astro nie ma osobnej konfiguracji tras. Struktura plików w src/pages/ jest mapą URL-i — to Routing oparty na plikach to model, w którym ścieżka pliku w projekcie automatycznie wyznacza adres URL strony, bez ręcznej konfiguracji tras.:

Code
src/pages/index.astro        → /
src/pages/o-mnie.astro       → /o-mnie
src/pages/blog/index.astro   → /blog
src/pages/blog/pierwszy.astro → /blog/pierwszy

Dla tras dynamicznych (np. wpis bloga, którego nazwa nie jest znana z góry) używasz nawiasów kwadratowych w nazwie pliku:

Code
src/pages/blog/[slug].astro  → /blog/cokolwiek

Wewnątrz takiej strony Astro wymaga funkcji getStaticPaths, która mówi, jakie konkretne adresy wygenerować podczas builda:

Code
---
// src/pages/blog/[slug].astro
export function getStaticPaths() {
  return [
    { params: { slug: 'pierwszy-wpis' } },
    { params: { slug: 'drugi-wpis' } },
  ]
}
 
const { slug } = Astro.params
---
 
<h1>Wpis: {slug}</h1>

To wszystko dostajesz bez konfiguracji routera i bez rejestrowania tras.

Krok 4: Pierwszy komponent .astro

Komponent Astro to plik .astro z dwiema częściami: frontmatter (sekcja skryptu między ---, wykonywana na serwerze/podczas builda) i szablon (HTML poniżej):

Code
---
// src/components/Karta.astro — frontmatter: kod serwerowy
const { tytul, opis } = Astro.props
---
 
<!-- Szablon: HTML z interpolacją -->
<article class="karta">
  <h2>{tytul}</h2>
  <p>{opis}</p>
</article>
 
<style>
  .karta {
    padding: 1.5rem;
    border-radius: 0.5rem;
    border: 1px solid #e5e7eb;
  }
</style>

Trzy rzeczy warte uwagi:

  • Astro.props — komponent przyjmuje dane jak funkcja przyjmuje argumenty.
  • {tytul} — interpolacja wyrażeń JavaScript w HTML, składnia bliska JSX.
  • <style> — style są domyślnie ograniczone do komponentu (scoped), więc nie wyciekają na resztę strony.

Używasz go w stronie, importując i osadzając:

Code
---
// src/pages/index.astro
import Karta from '../components/Karta.astro'
---
 
<Karta tytul="Witaj" opis="To mój pierwszy komponent w Astro." />

Ten komponent nie wysyła do przeglądarki ani bajta JavaScriptu — renderuje się do czystego HTML podczas builda i tak właśnie wygląda „zero JS domyślnie" w praktyce.

Krok 5: Build i wdrożenie

Statyczną stronę budujesz jedną komendą:

Code
npm run build

Astro generuje folder dist/ z gotowymi plikami HTML, CSS i zoptymalizowanymi zasobami. Dla statycznej strony nie potrzebujesz adaptera — to zwykłe pliki, które wdrożysz na dowolnym hostingu:

  • Vercel / Netlify / Cloudflare Pages — podłączasz repozytorium z GitHuba, a one budują i wdrażają automatycznie przy każdym pushu, darmowy plan w zupełności wystarczy dla małej strony.
  • Dowolny CDN albo serwer plików — wrzucasz zawartość dist/.

Adapter (Vercel, Netlify, Cloudflare, Node) dokładasz dopiero, gdy potrzebujesz renderowania na serwerze albo funkcji dynamicznych — to temat późniejszych artykułów serii, m.in. o Cloudflare Workers.

Top tip

npm create astro@latest → wybierz szablon → cd projekt && npm run dev → edytuj src/pages/index.astro → npm run build → podłącz repo do Vercel/Netlify.

Co dalej

Masz działający projekt, a teraz reszta serii układa się w naturalną ścieżkę:

  • Zrozum fundament — architektura wysp wyjaśnia, dlaczego Astro jest szybkie.

  • Dodaj treść z walidacją — Content Collections zamieniają pliki Markdown w typowany system.

  • Dodaj interaktywność świadomie — dyrektywy client decydują, co i kiedy dostaje JavaScript.

  • Zadbaj o widoczność — SEO w Astro pokazuje, jak wykorzystać przewagę wydajnościową w Google.

Werdykt Labu

Astro obniża próg wejścia do minimum: za pomocą jednej komendy stawiamy projekt, routing wynika ze struktury plików, a domyślny tryb to szybki statyczny HTML, który wdrażamy bez adaptera. Komponent .astro renderuje się do czystego HTML bez wysyłania JavaScriptu — i to jest cała filozofia frameworka w jednym pliku.

Jeśli dotąd kojarzyłeś nowoczesny frontend ze ścianą konfiguracji, Astro jest miłym zaskoczeniem — zaczynasz od treści, a złożoność dokładasz dopiero wtedy, gdy projekt jej naprawdę potrzebuje. Proste i bardzo użyteczne dla blogów, stron portfolio i mniejszych, opartych o treść witryn www.

Jeśli planujesz stronę w Astro i chcesz ją zbudować dobrze od pierwszego commita — odezwij się.

  • Czym jest Astro i jaki problem rozwiązuje1 min
  • Zanim zaczniesz: Node 22.12+1 min
  • Krok 1: Utworzenie projektu1 min
  • Krok 2: Struktura projektu1 min
  • Krok 3: Routing oparty na plikach1 min
  • Krok 4: Pierwszy komponent .astro1 min
  • Krok 5: Build i wdrożenie1 min
  • Co dalej1 min
  • Werdykt Labu1 min

Często zadawane pytania

Źródła i dokumentacjaZweryfikowano: 29 maja 2026

Komendy, wymagania środowiskowe i strukturę projektu zweryfikowano na podstawie oficjalnej dokumentacji Astro:

Astro docs: Install and setup, Astro docs: Project structure, Astro docs: Routing, Astro docs: Components, Astro docs: Deploy your site.

Seria

Astro w praktyce 2026
Część 1 / 9
  1. Pierwszy projekt w Astro — od npm create astro do wdrożenia w 15 minut
  2. 2Astro 6 — przewodnik po nowościach: Cloudflare Workers, Live Content Collections, Fonts API i CSP
  3. 3Architektura wysp w Astro — czym są wyspy i dlaczego zero JS domyślnie zmienia zasady gry
  4. 4Client directives w Astro — client:load, client:idle, client:visible, client:media, client:only w praktyce
  5. 5Server Islands w Astro — dynamiczne fragmenty na statycznej stronie
  6. 6Astro View Transitions — płynne przejścia między stronami bez budowania SPA
  7. 7SEO w Astro — Core Web Vitals, dane uporządkowane i techniczny fundament rankingu w 2026
  8. 8Migracja bloga z WordPress na Astro — eksport treści, przekierowania 301 i zachowanie pozycji w Google
  9. 9Lighthouse 100/100 w Astro — case study optymalizacji strony usługowej
Maciej Sala

O autorze

Maciej Sala

Maciej Sala — Product Manager i Frontend Developer z bogatym doświadczeniem w marketingu internetowym oraz SEO. Na co dzień pracuje z Reactem, Next.js i TypeScriptem, a ostatnio także z Astro i narzędziami do automatyzacji procesów AI. Sprawnie łączy perspektywę produktową z praktycznym podejściem do kodu. Przez kilka lat był związany z branżą gier wideo jako project manager i game designer. Absolwent historii na Uniwersytecie Jagiellońskim oraz studiów podyplomowych z marketingu internetowego na AGH w Krakowie. Po godzinach trenuje na siłowni, maluje figurki i rozwija własne projekty side-projecty.

Moje artykułyWięcej o mnie

Pomagam przekładać takie tematy na konkretne wdrożenia w frontendzie, SEO, analityce i procesie produktowym.

Skontaktuj się ze mną

Biblioteka wiedzy

Czytaj dalej

Zobacz więcej wpisów
Astro.js vs Next.js w 2026 — kompleksowe porównanie frameworków
Astro.js vs Next.js w 2026 — kompleksowe porównanie frameworków

Porównanie Astro 6 i Next.js 16 z perspektywy wdrożeń: architektura, JavaScript po stronie klienta, SEO, DX, hosting i konkretne przypadki użycia.

Maciej Sala

Maciej Sala

Founder Strivelab

15 kwietnia 2026
Astro 6 — przewodnik po nowościach: Cloudflare Workers, Live Content Collections, Fonts API i CSP
Astro 6 — przewodnik po nowościach: Cloudflare Workers, Live Content Collections, Fonts API i CSP

Co nowego w Astro 6: workerd jako środowisko uruchomieniowe w trybie programistycznym, Live Content Collections, wbudowane Fonts API, Content Security Policy i nowy kompilator Rust.

Maciej Sala

Maciej Sala

Founder Strivelab

24 kwietnia 2026
Architektura wysp w Astro — czym są wyspy i dlaczego zero JS domyślnie zmienia zasady gry
Architektura wysp w Astro — czym są wyspy i dlaczego zero JS domyślnie zmienia zasady gry

Architektura wysp to fundament Astro. Wyjaśniam, czym są wyspy, jak działa selektywna hydratacja, kiedy daje realną przewagę i gdzie jest jej granica — z przykładami kodu i benchmarkami.

Maciej Sala

Maciej Sala

Founder Strivelab

24 kwietnia 2026
Poprzedni wpisClaude Opus 4.8: co nowy flagowiec Anthropic zmienia w pracy agentów i Claude CodePremiera Claude Opus 4.8 (28 maja 2026): wyższe wyniki na SWE-bench Pro i Terminal-Bench, „honesty” jako oś narracji, dynamic workflows w Claude Code, kontrola wysiłku i tańszy fast mode. Konkretna analiza dla zespołów budujących agenty.
Maciej Sala

Maciej Sala

Founder Strivelab

28 maja 2026
Następny wpisLighthouse 100/100 w Astro — case study optymalizacji strony usługowejJak osiągnąć 100/100 w Lighthouse dla strony Astro: optymalizacja LCP, CLS i INP przez astro:assets, Fonts API, dyrektywy client i lazy loading third-party scripts. Case study z konkretnymi metrykami.
Maciej Sala

Maciej Sala

Founder Strivelab

29 maja 2026