
Prowadzenie projektu SaaS w pojedynkę to ciągła walka o zachowanie kontekstu. Kiedy skaczesz między kodem backendu, konfiguracją klastra Kubernetes, a planowaniem marketingu, wiedza zaczyna uciekać. Przerabiałem Jirę, Trello, Notion – wszystko to na pewnym etapie staje się przerostem formy nad treścią.
Ostatecznie postawiłem na najprostsze rozwiązanie: zbiór plików Markdown spiętych w Obsidianie, zarządzanych z poziomu terminala przy pomocy lokalnych agentów AI (Claude Code, Gemini CLI). W tym wpisie pokażę, jak to wygląda w praktyce na przykładzie mojego projektu, Planu Budowlanego.
Czym w ogóle jest Obsidian (i dlaczego nic nie kosztuje)?
Dla tych, którzy jeszcze nie korzystali: Obsidian to aplikacja do zarządzania wiedzą (PKM – Personal Knowledge Management). W przeciwieństwie do Notion czy Evernote, nie trzyma Twoich danych na cudzych serwerach. Cała „baza” (tzw. Vault) to po prostu zwykły folder z plikami tekstowymi .md na Twoim dysku. Sama aplikacja jest w 100% darmowa (do użytku osobistego).
Co z synchronizacją między laptopem a telefonem? Twórcy Obsidiana oferują płatną usługę Obsidian Sync, ale jako inżynier możesz to łatwo obejść. Wystarczy wrzucić folder z Vaultem na Google Drive, Dropboxa lub iCloud, aby mieć darmową synchronizację w tle. Z kolei ja, pracując z kodem, preferuję wtyczkę obsidian-git – dzięki niej cały mój Vault jest regularnie commitowany do prywatnego repozytorium na GitHubie. To daje mi pełną historię wersji, backup i kontrolę.
Struktura: Pliki tekstowe jako Single Source of Truth
Cała organizacja projektu to po prostu repozytorium Git z plikami .md. Brak rozpraszaczy, brak vendor lock-in. Struktura jest prosta, ale rygorystycznie przestrzegana:
Api/Flows/– Tu trzymam specyfikację API i logikę biznesową. Kiedy zmieniam endpoint, aktualizuję plik Markdown. To jest moje Single Source of Truth. Kiedy piszę nowy kod, nie zgaduję, jakie pola ma przyjmować payload.ADRs/(Architecture Decision Records) – Ważne decyzje (np. przejście z mikrousług na monolit, wybór narzędzi autoryzacji) lądują tutaj wraz z datą, statusem i uzasadnieniem. Jeśli za pół roku zapomnę, dlaczego wyrzuciłem Kafkę na rzecz Martena, mam do tego notatkę.Zadania/– Zwykły plikBacklog.mdz checklistami. Używamobsidian-tasks-plugin, żeby wyświetlać je w zgrabnych widokach, ale pod spodem to wciąż zwykły tekst.Plans/– Przyszłe, zaplanowane funkcjonalności dla backendu, frontendu i aplikacji mobilnej.DevOps/iMarketing/– Monitoring, checklisty przed publikacją oraz drafty.
AI jako „system operacyjny” dla notatek
Samo trzymanie notatek w Markdownie to nic nowego. Zmiana paradygmatu następuje w momencie, gdy wpuścisz do tego katalogu agentów AI działających w terminalu. Ponieważ wszystko to pliki tekstowe, AI „rozumie” mój projekt od podszewki. Wystarczy plik z instrukcjami (GEMINI.md / CLAUDE.md) w głównym katalogu, który mówi modelowi, gdzie co leży.
Napisałem sobie zestaw dedykowanych skryptów (skilli), które automatyzują operacje na tych plikach:
- Triage logów produkcyjnych (
k8s-log-triage): Odpalam komendę w terminalu. Agent łączy się z Kubernetesem, pobiera logi z podów, analizuje błędy i automatycznie otwiera mi plikTODO.mdw Obsidianie, dopisując techniczne szczegóły błędu jako nowe zadanie. - Generowanie raportów (
generate-feedback-report): Pobranie feedbacku użytkowników z Firebase Firestore i wygenerowanie sformatowanego raportu z błędami do folderuRaporty/to teraz jedna komenda. - Changelogi (
generate-changelog-post): Agent czyta surowy plikchangelog.jsonz frontendu i na jego podstawie pisze posty z aktualnościami na landing page.
Techniczny detal: Model Context Protocol (MCP)
Jak spiąć to wszystko, żeby agent AI natywnie „widział” strukturę Obsidiana? Używam do tego Model Context Protocol (MCP) – otwartego standardu, który pozwala modelom bezpiecznie integrować się z lokalnymi narzędziami.
Zamiast dawać agentowi po prostu płaski dostęp do systemu plików, podpinam pod Gemini CLI lub Claude Code dedykowany serwer MCP dla Obsidiana. W konfiguracji agenta wystarczy wskazać ścieżkę do Vaulta. Dzięki temu AI zyskuje zestaw precyzyjnych narzędzi: potrafi robić wyszukiwania pełnotekstowe, czytać bazę wiedzy, a nawet inteligentnie dopisywać treść do konkretnych nagłówków w istniejących notatkach, nie psując przy tym reszty pliku. To potężny przeskok względem zwykłego „czytania plików tekstowych”.
Porządki (Knowledge Refactoring)
Jako inżynierowie dbamy o czysty kod, ale często zapominamy o „czystej wiedzy”. Niedawno zdałem sobie sprawę, że moje plany rozjechały się po różnych podkatalogach (Api/Docs/plans, Mobile/Docs itp.), a dokumenty architektoniczne dublowały się w starych folderach.
Razem z agentem zrobiliśmy typowy refactoring bazy wiedzy:
- Usunęliśmy puste, nieużywane foldery.
- Scaliliśmy wszystkie notatki DevOps/Infrastruktura w jedno miejsce.
- Wydzieliliśmy osobny katalog
Plans/na rzeczy do zrobienia, zostawiając dokumentację komponentów wyłącznie jako opis „stanu obecnego”.
Efekt? Agent AI działa o wiele precyzyjniej, bo nie musi zgadywać, który z trzech podobnie brzmiących plików jest tym właściwym. Ja z kolei mam absolutną pewność, że jeśli szukam specyfikacji procesu logowania, znajdę go w Api/Flows/Authentication_Flows.md.
Jeśli prowadzisz projekt jako solofounder, polecam odpuścić ciężkie narzędzia. Zwykłe pliki tekstowe połączone z CLI agentem robią lepszą robotę, a co najważniejsze – dają pełną kontrolę i nie odciągają od pisania kodu.
Tagi SEO: Obsidian, SaaS, Solopreneur, AI, Claude Code, Gemini CLI, Architektura, Markdown, Automatyzacja, MCP, API, DevOps













