<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kamil Kaletka — Blog</title>
    <link>https://kamilkaletka.dev/en/blog</link>
    <description>Articles on AI, full-stack and automation.</description>
    <language>en</language>
    <lastBuildDate>Fri, 05 Jun 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://kamilkaletka.dev/en/blog/rss.xml" rel="self" type="application/rss+xml"/>
    
    <item>
      <title>Pi-hole + AdGuard — DNS as a network-level filter</title>
      <link>https://kamilkaletka.dev/en/blog/pi-hole-dns-warstwa-filtrujaca</link>
      <description>Browser adblock leaves the TV and phone exposed. DNS-level filtering covers every device. Showing my Pi-hole + AdGuard upstream setup.</description>
      <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/pi-hole-dns-warstwa-filtrujaca</guid>
      <category>self-hosted</category><category>networking</category><category>privacy</category><category>homelab</category>
    </item>
    <item>
      <title>Telegram bot as a remote control for the agent — architecture and safety</title>
      <link>https://kamilkaletka.dev/en/blog/telegram-bot-pilot-do-agenta</link>
      <description>Telegram is my main interface to Claude Code when I&apos;m away from the terminal. Showing how I set up the bot, secured it against prompt injection, and how it talks to the agent.</description>
      <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/telegram-bot-pilot-do-agenta</guid>
      <category>claude-code</category><category>telegram</category><category>automation</category><category>self-hosted</category>
    </item>
    <item>
      <title>Prompt caching — how I calculate Opus 4.7 costs (and why the bill isn&apos;t scary)</title>
      <link>https://kamilkaletka.dev/en/blog/prompt-caching-jak-licze-koszty</link>
      <description>Opus 4.7 looks expensive. Five minutes of prompt caching cuts cost by 90%. Showing how it works, how to measure, and which cadence patterns actually move the bill.</description>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/prompt-caching-jak-licze-koszty</guid>
      <category>claude-code</category><category>opus</category><category>economics</category><category>advanced</category>
    </item>
    <item>
      <title>Memory in Claude Code — what it actually remembers and how to steer it</title>
      <link>https://kamilkaletka.dev/en/blog/memory-w-claude-code-co-pamieta</link>
      <description>Memory is a Claude Code mechanism that persists facts about you, the project and preferences across sessions. Showing how it works under the hood, when to use it, and when CLAUDE.md is better.</description>
      <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/memory-w-claude-code-co-pamieta</guid>
      <category>claude-code</category><category>memory</category><category>advanced</category><category>productivity</category>
    </item>
    <item>
      <title>n8n or a plain bash script — when is the workflow tool overkill</title>
      <link>https://kamilkaletka.dev/en/blog/n8n-vs-skrypt-bash-kiedy-co</link>
      <description>n8n is great for orchestration, but often bash + cron does the same faster and cheaper. Here&apos;s the rule I use and three examples of each from my setup.</description>
      <pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/n8n-vs-skrypt-bash-kiedy-co</guid>
      <category>automation</category><category>n8n</category><category>devops</category><category>tools</category>
    </item>
    <item>
      <title>Obsidian + CouchDB livesync — my Notion replacement</title>
      <link>https://kamilkaletka.dev/en/blog/obsidian-couchdb-livesync-jak-notion</link>
      <description>Notion was comfortable, but data on someone else&apos;s server and a format lock-in. Obsidian + CouchDB livesync gives the same, locally, with markdown on disk. Showing the setup.</description>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/obsidian-couchdb-livesync-jak-notion</guid>
      <category>tools</category><category>self-hosted</category><category>obsidian</category><category>productivity</category>
    </item>
    <item>
      <title>Writing your own Claude Code skills — zero to MVP in 30 minutes</title>
      <link>https://kamilkaletka.dev/en/blog/pisanie-wlasnych-skilli-claude-code</link>
      <description>A skill is a small markdown file that adds a slash command with dedicated logic to Claude Code. Showing how to write one from scratch, where to put it, and which mistakes to avoid.</description>
      <pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/pisanie-wlasnych-skilli-claude-code</guid>
      <category>claude-code</category><category>skills</category><category>automation</category><category>tutorial</category>
    </item>
    <item>
      <title>Cloudflare Tunnel + Zero Trust — homelab without exposing ports</title>
      <link>https://kamilkaletka.dev/en/blog/cloudflare-tunnel-zero-trust-homelab</link>
      <description>I have 4 machines, dozens of services and zero ports open to the internet. All access goes through Cloudflare Tunnel with Zero Trust auth. Showing how I set it up and what&apos;s worth knowing.</description>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/cloudflare-tunnel-zero-trust-homelab</guid>
      <category>self-hosted</category><category>networking</category><category>cloudflare</category><category>security</category>
    </item>
    <item>
      <title>Vikunja — a task tracker that talks to agents</title>
      <link>https://kamilkaletka.dev/en/blog/vikunja-task-tracker-z-agentami</link>
      <description>Trello was comfortable but my data lived on someone else&apos;s server. Vikunja is a local alternative, plus MCP. Showing how I wired it into Claude Code and what actually changed in my workflow.</description>
      <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/vikunja-task-tracker-z-agentami</guid>
      <category>tools</category><category>self-hosted</category><category>MCP</category><category>productivity</category>
    </item>
    <item>
      <title>Background agents and Ralph loop — when they pay off, when they burn tokens</title>
      <link>https://kamilkaletka.dev/en/blog/background-agents-ralph-loop-kiedy-warto</link>
      <description>Background agents and Ralph-style loops are powerful, but easy to turn into a token furnace. Showing my three real cases and the rule for when to even turn this on.</description>
      <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/background-agents-ralph-loop-kiedy-warto</guid>
      <category>claude-code</category><category>agents</category><category>automation</category>
    </item>
    <item>
      <title>MCP servers I actually use — review after 6 months</title>
      <link>https://kamilkaletka.dev/en/blog/mcp-serwery-ktore-realnie-uzywam</link>
      <description>I have 12 MCP servers wired in — Home Assistant, Proxmox, Cloudflare, Vikunja, Gmail, Calendar, n8n. Showing which actually pay off and which sat unused until I unhooked them.</description>
      <pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/mcp-serwery-ktore-realnie-uzywam</guid>
      <category>MCP</category><category>claude-code</category><category>integrations</category><category>homelab</category>
    </item>
    <item>
      <title>Plan mode in Claude Code — when to turn it on, when not to bother</title>
      <link>https://kamilkaletka.dev/en/blog/plan-mode-claude-code-best-practices</link>
      <description>Plan mode shipped recently and already changed my workflow. When I use it, when it slows me down, and what questions to ask so the plan is actually useful.</description>
      <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/plan-mode-claude-code-best-practices</guid>
      <category>claude-code</category><category>plan-mode</category><category>methodology</category>
    </item>
    <item>
      <title>claudeclaw + cron — Claude as an assistant with its own schedule</title>
      <link>https://kamilkaletka.dev/en/blog/claudeclaw-cron-claude-z-grafikiem</link>
      <description>Claude Code can work even when I&apos;m not driving. claudeclaw is the mechanism that schedules tasks for it — daily briefings, PR reviews, dependency audits. Showing how it works on my setup.</description>
      <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/claudeclaw-cron-claude-z-grafikiem</guid>
      <category>claude-code</category><category>cron</category><category>automation</category><category>self-hosted</category>
    </item>
    <item>
      <title>AI image generation in 2026 — Gemini 3.1 Pro vs Flux vs SDXL — what I use and when</title>
      <link>https://kamilkaletka.dev/en/blog/ai-image-generation-2026-gemini-flux-sdxl</link>
      <description>Four models, three price points, one case study (cover image for the blog). Showing what works for which use case, where the API hurts, and when it pays to go back to Sharp + Canvas.</description>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/ai-image-generation-2026-gemini-flux-sdxl</guid>
      <category>AI</category><category>tools</category><category>image-generation</category><category>productivity</category>
    </item>
    <item>
      <title>Cookie consent and GDPR for small businesses in 2026 — what you need to avoid fines</title>
      <link>https://kamilkaletka.dev/en/blog/cookie-consent-rodo-male-firmy-2026</link>
      <description>Cookiebot is 99 EUR/mo, Iubenda 27 EUR. For an agritourism, salon or one-person company that&apos;s absurd. Showing free / DIY setups that pass the regulator&apos;s audit.</description>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/cookie-consent-rodo-male-firmy-2026</guid>
      <category>web-design</category><category>GDPR</category><category>small-business</category><category>compliance</category>
    </item>
    <item>
      <title>Restic + Backblaze B2 in homelab — backup that actually works, costs $1.20/mo, lets me sleep</title>
      <link>https://kamilkaletka.dev/en/blog/restic-backup-homelab-co-uzywam</link>
      <description>After two years with various solutions (Borg, Duplicati, hand rsync) I landed on Restic + B2. Full setup with systemd timer, encryption, retention policy and Telegram alerts.</description>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/restic-backup-homelab-co-uzywam</guid>
      <category>homelab</category><category>devops</category><category>self-hosted</category><category>backup</category>
    </item>
    <item>
      <title>Schema.org for small businesses — Local SEO that actually works in 2026</title>
      <link>https://kamilkaletka.dev/en/blog/schema-org-male-firmy-local-seo-ktory-dziala</link>
      <description>For agritourism, salon, clinic: copy-paste JSON-LD plus what bonuses Google gives (rich results, knowledge panel, maps). Showing 4 schema types I drop in for clients and measurable effects.</description>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/schema-org-male-firmy-local-seo-ktory-dziala</guid>
      <category>web-design</category><category>SEO</category><category>small-business</category><category>local-business</category>
    </item>
    <item>
      <title>Stripe + BLIK + Przelewy24 for small businesses — what took me 6h saves you a week</title>
      <link>https://kamilkaletka.dev/en/blog/stripe-blik-przelewy24-male-firmy</link>
      <description>Online payments setup for an agritourism, honey shop, course — from account to first webhook. Concrete walls that hit you (BLIK on Stripe, VAT invoices, data retention), with doc links.</description>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/stripe-blik-przelewy24-male-firmy</guid>
      <category>payments</category><category>e-commerce</category><category>small-business</category><category>tutorial</category>
    </item>
    <item>
      <title>Hooks in Claude Code — how I enforce discipline on the agent</title>
      <link>https://kamilkaletka.dev/en/blog/hooks-w-claude-code-dyscyplina</link>
      <description>Hooks are a small piece of config that turns Claude Code into a tool with real guardrails. Showing my setups: blocking destructive commands, enforcing commit policy, telemetry to Telegram.</description>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/hooks-w-claude-code-dyscyplina</guid>
      <category>claude-code</category><category>hooks</category><category>automation</category><category>devops</category>
    </item>
    <item>
      <title>How much does an agritourism website cost in 2026 — honest math</title>
      <link>https://kamilkaletka.dev/en/blog/ile-kosztuje-strona-dla-agroturystyki-2026</link>
      <description>Real rates for an agritourism, guesthouse or farm stay website: 2,990 PLN to 7,990 PLN + care plan. Showing what each tier gets you and what to avoid.</description>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/ile-kosztuje-strona-dla-agroturystyki-2026</guid>
      <category>web-design</category><category>agritourism</category><category>pricing</category><category>small-business</category>
    </item>
    <item>
      <title>Claude Opus 4.7 — first impressions after a week with 1M context</title>
      <link>https://kamilkaletka.dev/en/blog/claude-opus-4-7-pierwsze-wrazenia</link>
      <description>Opus 4.7 ships with a million token context, plan mode and a fast toggle. I switched from Sonnet 4.6 as my default — here&apos;s what changed, where it pays off, and where I stick with the cheaper model.</description>
      <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/claude-opus-4-7-pierwsze-wrazenia</guid>
      <category>AI</category><category>claude-code</category><category>opus</category><category>review</category>
    </item>
    <item>
      <title>Claude Code skills in 2026: what&apos;s worth knowing, what to avoid, and why 36% try to rob you</title>
      <link>https://kamilkaletka.dev/en/blog/claude-code-skille-warto-znac</link>
      <description>Skills ate slash commands, the plugin marketplace has 1,234 entries, official Anthropic skills are doing design work, and ToxicSkills found prompt injection in over a third of them. Practical ecosystem map: what to install, what to scan, what to delete.</description>
      <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/claude-code-skille-warto-znac</guid>
      <category>AI</category><category>claude-code</category><category>skills</category><category>productivity</category><category>security</category>
    </item>
    <item>
      <title>MCP in 2026 — from hype to grown-up tech with grown-up problems</title>
      <link>https://kamilkaletka.dev/en/blog/mcp-w-2026-przeglad-rynku</link>
      <description>A year ago Model Context Protocol was supposed to change everything. Today it&apos;s a standard, but the ecosystem has 20k servers, 92% exploitation odds at 10 plugins, and context bloat eating 70% of the window. Market overview, top 15, and 2026 trends.</description>
      <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/mcp-w-2026-przeglad-rynku</guid>
      <category>AI</category><category>MCP</category><category>claude-code</category><category>security</category>
    </item>
    <item>
      <title>How Claude Code changed my workflow — automations that run 24/7</title>
      <link>https://kamilkaletka.dev/en/blog/jak-claude-code-zmienil-moj-workflow</link>
      <description>A concrete tour of how an AI agent works on my server: from Telegram through Home Assistant to deploying sites. What works, what doesn&apos;t, and how to set it up.</description>
      <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/jak-claude-code-zmienil-moj-workflow</guid>
      <category>AI</category><category>automation</category><category>claude-code</category><category>self-hosted</category>
    </item>
    <item>
      <title>Spec-Driven Development in Claude Code — why I no longer write &apos;just build me X&apos; prompts</title>
      <link>https://kamilkaletka.dev/en/blog/spec-driven-development-claude-code</link>
      <description>A five-stage process for planning a feature before the first line of code. Fewer iterations, fewer bugs, less refactoring. Concrete example: the very blog you&apos;re reading.</description>
      <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
      <author>kamilkaletka8@gmail.com (Kamil Kaletka)</author>
      <guid isPermaLink="true">https://kamilkaletka.dev/en/blog/spec-driven-development-claude-code</guid>
      <category>AI</category><category>claude-code</category><category>methodology</category><category>productivity</category>
    </item>
  </channel>
</rss>