---
title: Ten blog to folder plików markdown
slug: why-this-blog-has-no-cms
locale: pl
description: Za blogiem LiteTMS nie stoi żaden CMS. Każdy wpis to plik markdown w repozytorium produktu, sprawdzany w CI i serwowany jako HTML, surowy markdown i RSS.
date: 2026-07-15
updated: 2026-07-15
category: technology
tags: markdown, blog, aieo, engineering
author: LiteTMS Team
draft: false
---

Za tym blogiem nie stoi żaden CMS ani baza danych. Każdy wpis to plik markdown w tym samym repozytorium co kod LiteTMS, więc publikacja wpisu wygląda dokładnie tak jak wydanie nowej funkcji: commit i deploy.

Chcieliśmy zrobić to inaczej niż większość firm, dlatego w tym wpisie pokazujemy cały mechanizm, łącznie ze źródłem strony, którą właśnie czytasz.

## Jak to robią wszyscy inni

Typowy firmowy blog stoi na pełnym systemie CMS. Baza danych, panel administracyjny, konta użytkowników, wtyczki i szablon, którego nikt do końca nie rozumie. Cała ta maszyneria istnieje po to, żeby zespół redaktorów mógł publikować bez dotykania kodu.

My nie mamy zespołu redaktorów, a w repozytorium kodu i tak siedzimy cały dzień. Więc maszynerię pominęliśmy. Każdy dodatkowy system trzeba aktualizować, backupować i zabezpieczać. Folderu z plikami tekstowymi nie trzeba.

## Jak wygląda plik wpisu

Poniżej przycięta kopia nagłówka tego konkretnego wpisu i zarys treści:

```markdown
---
title: Ten blog to folder plików markdown
slug: why-this-blog-has-no-cms
locale: pl
description: Za blogiem LiteTMS nie stoi żaden CMS. Każdy wpis to...
date: 2026-07-15
category: technology
tags: markdown, blog, aieo, engineering
draft: false
---

Pierwszy akapit odpowiada na tytuł samodzielnie, bo to właśnie jego
cytują wyszukiwarki i asystenci AI.

## Nagłówek sekcji

Zwykły markdown. Nic egzotycznego.

## FAQ

### Czy ta próbka pokazuje sekcję FAQ?

Tak. Każda linia ### to dosłowne pytanie z odpowiedzią zaraz pod spodem.
```

Blok na górze to płaska lista par klucz i wartość. Pod spodem jest zwykły markdown, renderowany standardową biblioteką. Jeden plik na język: ten wpis istnieje jako plik `.pl.md` i `.en.md` o tej samej nazwie, a wersję polską piszemy od zera po polsku zamiast tłumaczyć maszynowo.

Sekcja `## FAQ` na końcu próbki to prawdziwa konwencja, nie ozdobnik. Każde pytanie brzmi tak, jak człowiek wpisałby je w wyszukiwarkę, a build zamienia te pary w dane strukturalne, które wyszukiwarki potrafią pokazać jako rozszerzone wyniki. Żywy przykład masz na dole tej strony.

## Walidator zamiast panelu redakcyjnego

Zanim cokolwiek trafi na produkcję, skrypt builda czyta każdy plik wpisu i sprawdza go ze schematem. Opis musi mieć od 80 do 170 znaków. Kategoria musi być jedną z pięciu dozwolonych wartości. Data musi być prawdziwą datą kalendarzową, a slug musi zgadzać się z nazwą pliku.

Potem skrypt zapisuje jeden plik indeksu z metadanymi wszystkich wpisów i tylko ten plik czyta strona. Lista wpisów kosztuje tyle samo przy pięciuset wpisach, co przy pięciu.

Ten sam skrypt odpala się w CI przy każdym pushu. Jeśli wpis jest niepoprawny albo ktoś zapomniał przebudować indeks, build pada i nic się nie wdraża. Zepsuta treść nie ma jak dojechać na produkcję, bo produkcja dostaje wyłącznie to, co przeszło walidator.

## Po co komu markdown

Markdown wygrał z powodów zupełnie niemodnych. Plik markdown przeczytasz w każdym edytorze tekstu, z narzędziami albo bez. Diffuje się linia po linii, więc wpis przechodzi przegląd dokładnie tak jak kod: widać, które zdanie się zmieniło. No i jest najtańszym możliwym formatem do wciągnięcia przez asystenta AI, a to z miesiąca na miesiąc znaczy coraz więcej.

Właśnie dlatego każdy wpis serwujemy na trzy sposoby. Strona, którą czytasz, to wersja HTML. Dopisz `.md` do adresu w przeglądarce, a dostaniesz surowy plik źródłowy, bajt w bajt taki, jaki leży w repozytorium, serwowany jako czysty markdown. A każdy język ma swój kanał RSS dla czytników i agregatorów.

Jest też maszynowy katalog wszystkich opublikowanych wpisów pod adresem [/blog/index.md](/blog/index.md), a plik `llms.txt` tej strony kieruje na niego crawlery AI. Nic z tego nie robi duplikatów w wyszukiwarkach, bo surowe pliki niosą nagłówek noindex i link kanoniczny z powrotem do strony HTML.

## Co z tego masz jako czytelnik

Nic z powyższego nie jest funkcją produktu. To decyzja o tym, jak prowadzimy własne publikowanie, i pasuje do obietnicy z [pierwszego wpisu](/pl/blog/welcome-to-the-litetms-blog): żadnych wymyślonych liczb i tekst, który możesz sprawdzić u źródła. Sam LiteTMS jest zbudowany na tym samym upodobaniu do prostych, przejrzystych mechanizmów. Jeśli chcesz się rozejrzeć, [rejestracja jest darmowa](/pl/register).

## FAQ

### Czy mogę przeczytać wpis z bloga LiteTMS jako zwykły markdown?

Tak. Dopisz `.md` do adresu dowolnego wpisu, a strona przekieruje cię do surowego pliku źródłowego serwowanego jako czysty markdown. Katalog wszystkich opublikowanych wpisów znajdziesz pod /blog/index.md.

### Dlaczego blog LiteTMS nie ma CMS-a?

Bo CMS byłby drugim systemem do łatania i zabezpieczania, a publikują tu wyłącznie osoby pracujące na co dzień w repozytorium produktu. Pliki markdown plus walidator w CI robią tę samą robotę przy dużo mniejszym utrzymaniu.

### Czy pisanie pod asystentów AI nie psuje tekstu dla ludzi?

Nie. Struktura, którą nagradzają asystenci, czyli konkretny pierwszy akapit, opisowe nagłówki i dosłowne pytania z krótkimi odpowiedziami, to ta sama struktura, dzięki której artykuł dobrze się skanuje wzrokiem. Surowy markdown to osobny format, więc artykuł, który czytasz, pozostaje zwykłym artykułem.
