Jestem leniwy. I mówię to jako komplement dla siebie. Bo moja leniwość sprawia, że zamiast robić tę samą rzecz ręcznie po raz piętnasty, siadam i automatyzuję ją. A potem nigdy więcej o niej nie myślę.

Automatyzacja to jedna z tych umiejętności, które rozróżniają programistę od programisty, który buduje wartość. Możesz pisać kod 8 godzin dziennie. Albo możesz napisać kod raz, który pracuje za Ciebie 24/7.

Prowadzę agencję interaktywną, buduję własne produkty i prowadzę digital garden. Gdybym wszystko robił ręcznie, potrzebowałbym 20 godzin na dobę. Automatyzacja daje mi te godziny z powrotem.

Co warto automatyzować (a czego nie)

Zasada jest prosta: jeśli robisz coś więcej niż 3 razy i za każdym razem wygląda to tak samo, automatyzuj.

Automatyzuj:

  • Deployment kodu (CI/CD)
  • Testy (unit, integration, e2e)
  • Formatowanie i linting kodu
  • Wysyłanie raportów i powiadomień
  • Backup baz danych
  • Publikowanie treści (git push → deploy)
  • Fakturowanie powtarzalnych usług
  • Onboarding nowego klienta (maile powitalne, dostępy, checklist)

Nie automatyzuj:

  • Decyzji strategicznych
  • Komunikacji, która wymaga empatii
  • Code review (AI pomaga, ale nie zastępuje)
  • Rzeczy, które robisz raz na rok

Zła automatyzacja to automatyzacja czegoś, co zajmuje 5 minut, a automatyzowanie zajęło 3 godziny, i nigdy więcej tego nie robisz. Dobra automatyzacja to 3 godziny setup i 5 minut oszczędności dziennie, co przez rok daje 30+ godzin.

CI/CD: automatyzacja deploymentu

Jeśli ręcznie wchodzisz na serwer przez SSH i robisz git pull za każdym razem, kiedy chcesz wdrożyć zmianę, marnujesz czas i ryzykujesz błędy.

CI/CD (Continuous Integration / Continuous Deployment) to automatyczny pipeline: pushasz kod na GitHub, testy się uruchamiają, build się buduje, kod leci na serwer. Bez Twojego udziału.

W moim setupie: GitHub Actions + Vercel (dla frontendów Next.js) + DigitalOcean (dla backendu Strapi). Push na main = deploy na produkcję. Push na develop = deploy na staging. Zero ręcznej pracy.

Mój digital garden? Ten sam flow. Piszę notatkę w Obsidian, git push, GitHub Pages buduje Jekyll, strona zaktualizowana. Automatyzacja publikowania treści.

No-code automatyzacja: n8n, Make, Zapier

Nie musisz pisać kodu, żeby automatyzować. Narzędzia typu n8n, Make (dawny Integromat) i Zapier łączą usługi ze sobą wizualnie.

n8n. Open source, self-hosted. Moje ulubione, bo mogę postawić go na własnym serwerze i nie płacę za liczbę automatyzacji. Wady: wymaga technicznej wiedzy do postawienia.

Make. Potężny, wizualny, ładny. Darmowy plan na start, potem od 9 EUR/miesiąc. Dobry dla osób nietechnicznych.

Zapier. Najprostszy, najdroższy. Świetny UX, ale ceny rosną szybko. Dobry dla jednorazowych prostych automatyzacji.

Przykłady automatyzacji, które mam w agencji:

Nowy lead z formularza → Slack + CRM + mail. Klient wypełnia formularz kontaktowy na stronie. n8n łapie webhooka, dodaje lead do CRM, wysyła notyfikację na Slacka i automatyczny mail powitalny. Zero ręcznej pracy.

Nowa faktura → klient + księgowy. Tworzę fakturę w systemie, automatycznie leci mail do klienta z PDF-em i kopia do księgowego. Zamiast 3 kroków (wygeneruj PDF, wyślij mail, przekaż księgowemu) robię 1.

Monitoring strony → alert. Cron sprawdza, czy strony klientów odpowiadają z kodem 200. Jeśli nie, dostaję alert na telefon. Zanim klient zauważy problem, ja już go naprawiam.

Automatyzacja w kodzie

Jako programista masz jeszcze potężniejsze narzędzia:

Linting i formatowanie. ESLint + Prettier ustawione raz, działają wiecznie. Każdy plik formatowany automatycznie przy save. Zero dyskusji o taby vs spacje na code review.

Pre-commit hooks. Husky + lint-staged. Zanim commit wejdzie do repo, automatycznie formatujesz kod, uruchamiasz testy, sprawdzasz typy. Zły kod nie przejdzie.

Generatory kodu. Masz powtarzalną strukturę (nowy komponent, nowy endpoint API, nowy model w Strapi)? Napisz generator (np. Plop.js), który tworzy boilerplate jedną komendą.

Skrypty bash. Masz 5 komend, które uruchamiasz na start dnia (pull, install, build, start dev server, open browser)? Wrzuć je do skryptu start.sh i uruchamiaj jednym poleceniem.

Automatyzacja daily life

Nie chodzi tylko o kod. Automatyzuję też codzienne nawyki:

Notatki. Obsidian z daily notes. Każdego ranka nowa notatka z szablonem (template). Nie muszę tworzyć struktury. Jest gotowa.

Publikowanie na digital garden. Git push = strona zaktualizowana. Żadnego CMS, żadnego “opublikuj”. Markdown → HTML automatycznie.

Backup. Automatyczne backupy vaulta Obsidian, baz danych klientów i repozytoriów. Nie myślę o tym. Działa w tle.

Ile czasu oszczędza automatyzacja

Policzyłem kiedyś (w Obsidian, oczywiście):

  • CI/CD zamiast ręcznego deploy: ~2h/tydzień
  • Automatyczne maile i notyfikacje: ~1h/tydzień
  • Linting/formatting: ~30min/tydzień
  • Automatyczne backupy: ~30min/tydzień
  • Publikowanie digital garden: ~1h/tydzień

Razem: ~5 godzin tygodniowo. 20 godzin miesięcznie. 240 godzin rocznie. To 6 tygodni pracy, które automatyzacja mi oddaje.

I to tylko rzeczy, które zmierzyłem. Prawdziwa wartość automatyzacji jest w tym, czego NIE robisz. Nie martwisz się o deploy. Nie zastanawiasz się, czy backup poszedł. Nie tracisz czasu na powtarzalne czynności. Twój mózg jest wolny na rzeczy, które wymagają myślenia.

Od czego zacząć

Nie automatyzuj wszystkiego na raz. Zacznij od jednej rzeczy, która najbardziej Cię irytuje:

  1. Jeśli ręcznie deployujesz: ustaw GitHub Actions + Vercel/Netlify. Darmowe, 30 minut setup.
  2. Jeśli powtarzasz maile: ustaw Make/Zapier. Jeden flow, 15 minut.
  3. Jeśli nie masz lintingu: dodaj ESLint + Prettier do projektu. 20 minut, nigdy nie wrócisz.
  4. Jeśli nie robisz backupów: ustaw automatyczny backup teraz. Nie jutro. Teraz.

Automatyzacja to inwestycja czasu, która się spłaca. Im wcześniej zaczniesz, tym więcej godzin odzyskasz.