<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://michalsn.dev/tags/ai/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/building-an-ai-chat-with-codeigniter-ollama-and-neuron-ai/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/codeigniter4/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/neuronai/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/ollama/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/php/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/sse/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/streaming/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/</loc>
    <lastmod>2026-02-12T19:55:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/frankenphp/</loc>
    <lastmod>2026-02-02T07:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/performance/</loc>
    <lastmod>2026-02-02T07:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-frankenphp-worker-mode/</loc>
    <lastmod>2026-02-02T07:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/worker-mode/</loc>
    <lastmod>2026-02-02T07:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/advanced-model-relations-codeigniter4/</loc>
    <lastmod>2026-01-03T17:08:27+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/database/</loc>
    <lastmod>2026-01-03T17:08:27+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/dependencies/</loc>
    <lastmod>2025-12-16T16:39:11+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/managing-dependencies-in-application-modules/</loc>
    <lastmod>2025-12-16T16:39:11+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/modules/</loc>
    <lastmod>2025-12-16T16:39:11+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/how-to-handle-module-updates/</loc>
    <lastmod>2025-12-08T15:20:39+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/deferred-writes/</loc>
    <lastmod>2025-11-30T10:34:02+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/settings/</loc>
    <lastmod>2025-11-30T10:34:02+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/building-a-production-ready-file-handler-for-codeigniter-4-settings/</loc>
    <lastmod>2025-10-29T19:33:19+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/dead-letter-exchanges-in-rabbitmq/</loc>
    <lastmod>2025-09-15T16:09:31+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/queue/</loc>
    <lastmod>2025-09-15T16:09:31+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/rabbitmq/</loc>
    <lastmod>2025-09-15T16:09:31+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/signals/</loc>
    <lastmod>2025-08-21T20:10:31+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/unix/</loc>
    <lastmod>2025-08-21T20:10:31+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/unix-signals-in-php-building-bulletproof-cli-applications/</loc>
    <lastmod>2025-08-21T20:10:31+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/cve/</loc>
    <lastmod>2025-07-29T07:17:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/security/</loc>
    <lastmod>2025-07-29T07:17:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/when-false-cves-cause-real-problems/</loc>
    <lastmod>2025-07-29T07:17:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/event-aware-pagination-in-codeigniter4-models/</loc>
    <lastmod>2025-07-14T17:45:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/model-events/</loc>
    <lastmod>2025-07-14T17:45:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/pagination/</loc>
    <lastmod>2025-07-14T17:45:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/authentication/</loc>
    <lastmod>2025-07-02T20:10:32+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/impersonation-with-codeigniter-shield/</loc>
    <lastmod>2025-07-02T20:10:32+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/shield/</loc>
    <lastmod>2025-07-02T20:10:32+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/agents/</loc>
    <lastmod>2025-06-20T18:39:09+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/getting-started-with-neuronai-workflows/</loc>
    <lastmod>2025-06-20T18:39:09+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/workflow/</loc>
    <lastmod>2025-06-20T18:39:09+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/architecture/</loc>
    <lastmod>2025-06-15T18:24:44+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/beyond-mvc-managers-in-codeigniter/</loc>
    <lastmod>2025-06-15T18:24:44+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/mvc/</loc>
    <lastmod>2025-06-15T18:24:44+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/configuration/</loc>
    <lastmod>2025-06-02T14:08:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/env/</loc>
    <lastmod>2025-06-02T14:08:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/managing-multiple-env-files-in-codeigniter-4/</loc>
    <lastmod>2025-06-02T14:08:21+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/scheduling-unique-tasks-with-codeigniter/</loc>
    <lastmod>2025-05-06T10:14:47+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/tasks/</loc>
    <lastmod>2025-05-06T10:14:47+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/chained-queue-jobs-in-codeigniter/</loc>
    <lastmod>2025-04-17T20:03:24+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/canvas/</loc>
    <lastmod>2025-03-26T09:21:49+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/edu-snake-game-in-vanilla-javascript/</loc>
    <lastmod>2025-03-26T09:21:49+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/game/</loc>
    <lastmod>2025-03-26T09:21:49+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/javascript/</loc>
    <lastmod>2025-03-26T09:21:49+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/effortless-multi-language-content-translation/</loc>
    <lastmod>2024-12-29T21:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/i18n/</loc>
    <lastmod>2024-12-29T21:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/model/</loc>
    <lastmod>2024-12-29T21:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/multilanguage/</loc>
    <lastmod>2024-12-29T21:32:17+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/colima/</loc>
    <lastmod>2024-12-23T19:40:57+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/docker/</loc>
    <lastmod>2024-12-23T19:40:57+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/macos/</loc>
    <lastmod>2024-12-23T19:40:57+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/oci8/</loc>
    <lastmod>2024-12-23T19:40:57+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/setting-up-oci8-and-oracle-xe-with-docker/</loc>
    <lastmod>2024-12-23T19:40:57+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-model-relations/</loc>
    <lastmod>2024-12-12T10:30:52+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/relations/</loc>
    <lastmod>2024-12-12T10:30:52+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/tracking/</loc>
    <lastmod>2024-11-06T18:06:23+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/user-tracking-with-javascript/</loc>
    <lastmod>2024-11-06T18:06:23+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/alerts/</loc>
    <lastmod>2024-09-26T12:35:09+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-htmx-alerts/</loc>
    <lastmod>2024-09-26T12:35:09+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/htmx/</loc>
    <lastmod>2024-09-26T12:35:09+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/embeddings/</loc>
    <lastmod>2024-06-09T09:44:19+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/rag/</loc>
    <lastmod>2024-06-09T09:44:19+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/working-with-php-ollama-and-embeddings/</loc>
    <lastmod>2024-06-09T09:44:19+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-markdown-pages/</loc>
    <lastmod>2023-12-29T12:17:23+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/markdown/</loc>
    <lastmod>2023-12-29T12:17:23+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/yaml/</loc>
    <lastmod>2023-12-29T12:17:23+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-queue/</loc>
    <lastmod>2023-10-14T15:36:19+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-tags/</loc>
    <lastmod>2023-09-28T09:31:27+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/tags/</loc>
    <lastmod>2023-09-28T09:31:27+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/auth0/</loc>
    <lastmod>2023-08-16T18:31:53+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/auth0-codeigniter-4-package/</loc>
    <lastmod>2023-08-16T18:31:53+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/kinde/</loc>
    <lastmod>2023-07-27T10:04:27+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/using-kinde-with-codeigniter-4/</loc>
    <lastmod>2023-07-27T10:04:27+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-signed-url/</loc>
    <lastmod>2022-12-28T10:11:43+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/signed-url/</loc>
    <lastmod>2022-12-28T10:11:43+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-htmx/</loc>
    <lastmod>2022-12-12T09:30:53+01:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/generating-a-custom-domain-links-in-codeigniter-4/</loc>
    <lastmod>2022-07-31T16:01:38+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/subdomain/</loc>
    <lastmod>2022-07-31T16:01:38+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/aws/</loc>
    <lastmod>2022-07-07T18:24:14+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/bref/</loc>
    <lastmod>2022-07-07T18:24:14+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/serverless/</loc>
    <lastmod>2022-07-07T18:24:14+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/serverless-codeigniter-4/</loc>
    <lastmod>2022-07-07T18:24:14+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/cname/</loc>
    <lastmod>2021-11-22T16:10:35+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/domain/</loc>
    <lastmod>2021-11-22T16:10:35+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/verify-cname-for-domain/</loc>
    <lastmod>2021-11-22T16:10:35+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/setting-dynamic-subdomains-for-every-user-account/</loc>
    <lastmod>2021-10-18T11:42:57+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/insert-on-duplicate-key-update-with-codeigniter-4/</loc>
    <lastmod>2021-10-15T13:10:11+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/mariadb/</loc>
    <lastmod>2021-10-15T13:10:11+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/mysql/</loc>
    <lastmod>2021-10-15T13:10:11+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/sql/</loc>
    <lastmod>2021-10-15T13:10:11+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-4-mix-versioning/</loc>
    <lastmod>2021-08-25T21:05:40+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/mix/</loc>
    <lastmod>2021-08-25T21:05:40+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/codeigniter-4-mix/</loc>
    <lastmod>2021-08-23T23:04:33+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/integrating-codeigniter-4-with-auth0/</loc>
    <lastmod>2021-06-06T15:51:17+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/dropzone/</loc>
    <lastmod>2021-05-09T16:49:45+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/s3/</loc>
    <lastmod>2021-05-09T16:49:45+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/upload-files-directly-to-s3-with-dropzonejs-and-codeigniter-4/</loc>
    <lastmod>2021-05-09T16:49:45+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/tags/uuid/</loc>
    <lastmod>2021-04-24T18:24:51+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/posts/uuid-with-codeigniter-4/</loc>
    <lastmod>2021-04-24T18:24:51+02:00</lastmod>
  </url><url>
    <loc>https://michalsn.dev/archives/</loc>
  </url><url>
    <loc>https://michalsn.dev/categories/</loc>
  </url><url>
    <loc>https://michalsn.dev/projects/</loc>
  </url><url>
    <loc>https://michalsn.dev/privacy/</loc>
  </url><url>
    <loc>https://michalsn.dev/search/</loc>
  </url>
</urlset>
