Ta strona, którą teraz czytasz, to mój digital garden. Nie blog. Nie portfolio. Cyfrowy ogród, w którym pomysły rosną w swoim tempie.

Cała ta strona to folder z plikami Markdown, które piszę w Obsidian, a Jekyll zamienia je w stronę internetową za darmo, hostowaną na GitHub Pages.

Jeśli chcesz zbudować coś podobnego (albo po prostu szukasz sposobu jak założyć bloga, który nie wygląda jak każdy inny), ten post opisuje mój cały setup. Krok po kroku.

Czym jest digital garden

Digital garden to publiczna kolekcja notatek. Nie blog z datami i presją publikowania. Nie wiki z formalną strukturą. Coś pomiędzy.

W tradycyjnym blogu piszesz post, publikujesz, idziesz dalej. Post staje się zamrożony w czasie. W digital garden notatki żyją. Wracasz do nich, poprawiasz, rozbudowujesz, łączysz z nowymi pomysłami. Niektóre są gotowe. Inne to szkice. I to jest OK.

Dla mnie digital garden rozwiązał problem, który miałem z blogowaniem: presję pisania “skończonych” tekstów. Tu nie muszę niczego kończyć. Mogę opublikować notatkę, która jest w 60% gotowa, i wrócić do niej za miesiąc. Albo nie wrócić. Nikt nie narzeka.

Jeśli chcesz wiedzieć więcej o tym, jak prowadzę notatki, przeczytaj mój post o tym jak zacząć z Obsidian.

Dlaczego Obsidian + Jekyll (a nie Notion, WordPress, Astro…)

Rozważałem kilka opcji:

Obsidian Publish to oficjalne rozwiązanie od twórców Obsidian. Klikasz “publish” i notatka jest online. Proste, ale płatne (kilkanaście dolarów miesięcznie) i masz ograniczoną kontrolę nad wyglądem.

WordPress to overkill na digital garden. Za dużo opcji, za wolny, za dużo utrzymania. Digital garden to pliki Markdown, nie baza danych MySQL.

Astro / Next.js byłyby dobre (buduję w Next.js na co dzień), ale to jak branie kombajnu do skoszenia trawnika. Jekyll robi to, czego potrzebuję, bez zbędnej złożoności.

Jekyll + GitHub Pages wygrał, bo:

  • darmowy hosting na GitHub Pages
  • natywna obsługa Markdown (Jekyll to generator statycznych stron z plików .md)
  • mogę napisać custom plugin do wikilinków Obsidian
  • deploy automatyczny: push na GitHub = strona zaktualizowana
  • pełna kontrola nad każdym pikselem

Architektura: jak to działa

Cały flow wygląda tak:

Obsidian vault (notatki .md)
    ↓ git push
GitHub repo
    ↓ GitHub Actions / GitHub Pages
Jekyll build (konwersja .md → .html)
    ↓
mrellwart.com (statyczna strona)

W praktyce: piszę notatkę w Obsidian, robię git push, i za minutę notatka jest online. Zero logowania do panelu. Zero klikania “opublikuj”. Jeden command w terminalu.

Krok po kroku: jak to postawić

1. Przygotuj vault Obsidian

Nie musisz publikować całego vaulta. Ja mam folder _notes z notatkami, które chcę upublicznić. Reszta vaulta (osobiste notatki, drafty, daily notes) jest w .gitignore i nigdy nie trafia na stronę.

Struktura mojego vaulta:

vault/
├── _notes/           ← te idą na stronę
│   ├── o-mnie.md
│   ├── notion-vs-obsidian.md
│   └── jak-zaczac-z-obsidian.md
├── daily/            ← prywatne, nie publikowane
├── projects/         ← prywatne
└── .gitignore

2. Postaw Jekyll

Jeśli nigdy nie używałeś Jekyll, nie martw się. To generator statycznych stron napisany w Ruby. Instalujesz go, dajesz mu folder z plikami Markdown, a on wypluwa gotowy HTML.

bash

gem install bundler jekyll
jekyll new my-garden
cd my-garden
jekyll serve

Otwierasz localhost:4000 i masz stronę. Teraz przenosisz swoje notatki z Obsidian do folderu Jekyll i zaczynasz konfigurować.

Jest kilka gotowych szablonów Jekyll stworzonych specjalnie pod digital garden (np. digital-garden-jekyll-template od Maxime Vaillancourt). Możesz zacząć od jednego z nich i modyfikować pod siebie.

3. Custom plugin do wikilinków

To jest kluczowy element. Obsidian używa [[wikilinków]], ale Jekyll ich nie rozumie natywnie. Potrzebujesz pluginu, który konwertuje [[nazwa notatki]] na prawdziwy HTML link <a href="/nazwa-notatki">nazwa notatki</a>.

Piszesz prosty plugin Ruby w folderze _plugins/:

ruby

# _plugins/wikilinks.rb
Jekyll::Hooks.register :notes, :post_render do |note|
  note.output = note.output.gsub(/\[\[([^\]]+)\]\]/) do |match|
    title = $1
    slug = title.downcase.strip.gsub(' ', '-')
    "<a href='/#{slug}'>#{title}</a>"
  end
end

To jest uproszczona wersja. Mój plugin obsługuje też aliasy ([[slug|wyświetlany tekst]]), backlinki i notatki, które jeszcze nie istnieją. Ale na start ta wersja wystarczy.

4. Flexoki jako schemat kolorów

Flexoki to ciepła, niskokonkrastowa paleta kolorów stworzona przez Steph Ango (CEO Obsidian). Używam jej, bo:

  • nie pali oczu o 2 w nocy
  • wygląda elegancko bez wysiłku
  • ma wersję light i dark
  • jest darmowa i open source

Wystarczy pobrać zmienne CSS z repozytorium Flexoki i podpiąć je do swojego szablonu Jekyll.

5. Deploy na GitHub Pages

Tworzysz repozytorium na GitHub, pushes vault (lub jego publiczną część) i włączasz GitHub Pages w ustawieniach repo. GitHub automatycznie buduje Jekyll i hostuje stronę.

bash

git init
git remote add origin [email protected]:twoj-user/twoj-garden.git
git add .
git commit -m "initial garden"
git push -u origin main

W ustawieniach repo: Settings → Pages → Source: Deploy from a branch → main. Gotowe. Strona jest live pod twoj-user.github.io/twoj-garden.

Chcesz własną domenę? Dodaj plik CNAME z Twoją domeną i skonfiguruj DNS. GitHub Pages obsługuje custom domeny i SSL za darmo.

Codzienny workflow

Mój typowy dzień z digital garden:

  1. Otwieram Obsidian
  2. Piszę notatki (daily notes, drafty postów, pomysły)
  3. Kiedy notatka jest gotowa do publikacji, przenoszę ją do _notes/
  4. git add . && git commit -m "nowa notatka" && git push
  5. Za minutę jest online

Nie otwieram żadnego panelu CMS. Nie loguję się do żadnego dashboardu. Nie klikam “opublikuj”. Piszę w Obsidian, pushuję, koniec.

Jeśli edytuję starą notatkę (a robię to często, bo to digital garden, nie blog), ten sam flow: edytuję w Obsidian, push, gotowe.

Alternatywy, jeśli nie chcesz Jekyll

Nie musisz używać Jekyll. Inne opcje do postawienia digital garden z Obsidian:

  • Quartz (darmowy, dedykowany pod Obsidian, najłatwiejszy start)
  • Obsidian Digital Garden plugin (darmowy, publikujesz prosto z Obsidian)
  • Obsidian Publish (płatny, zero konfiguracji)
  • Astro + Starlight (jeśli chcesz pełną kontrolę i znasz JS)

Jekyll wybrałem, bo lubię mieć pełną kontrolę i nie boję się Ruby. Ale jeśli zaczynasz, Quartz jest prawdopodobnie najszybszą drogą do działającego digital garden.

Dlaczego to lepsze niż tradycyjny blog

Blog mówi: “napisz coś skończonego, opublikuj, idź dalej”.

Digital garden mówi: “napisz coś, opublikuj, wracaj, poprawiaj, łącz z nowymi pomysłami”.

Dla mnie to działa, bo:

  • nie mam presji pisania “gotowych” postów
  • wracam do notatek i je rozbudowuję (ten post pewnie też się zmieni)
  • wikilinki tworzą sieć połączeń, której blog nie daje
  • ludzie odwiedzają stronę i zostają dłużej, bo skaczą między notatkami

Jeśli myślisz o tym, jak założyć bloga jako programista, rozważ digital garden. To inny format, ale dla osób, które lubią myśleć nieliniowo i nie chcą się zmuszać do regularnych publikacji, może być dokładnie tym, czego szukasz.

Moja strona zaczęła się od jednej notatki. Teraz jest ich kilkadziesiąt. I codziennie przybywa.