<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>
      <title>Kenneth Loto</title>
      <link>https://www.kennethloto.dev</link>
      <description>Thoughts on software engineering and web development.</description>
      <item>
          <title>From Leaflet to MapLibre: Open-Source Web Maps in 2026</title>
          <link>https://www.kennethloto.dev/blog/from-leaflet-to-maplibre-open-source-web-maps-in-2026</link>
          <description>How open-source web maps evolved from Leaflet to MapLibre — performance, 3D rendering, vector tiles, and where the ecosystem is heading in 2026.</description>
          <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>When a Rewrite Is Actually Worth It</title>
          <link>https://www.kennethloto.dev/blog/when-a-rewrite-is-actually-worth-it</link>
          <description>Not every rewrite is a mistake. Here's the framework I used to decide when rebuilding from scratch was the right call — and when it wasn't.</description>
          <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Rebuilding GIS4Health: PHP/Leaflet to Laravel + React</title>
          <link>https://www.kennethloto.dev/blog/rebuilding-gis4health-phpleaflet-to-laravel-react</link>
          <description>A before-and-after on rewriting a health mapping GIS — architecture decisions, mapping in React, and when a rewrite is actually worth it.</description>
          <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Building a Dog Stool Classifier: My Dataset Struggles</title>
          <link>https://www.kennethloto.dev/blog/building-a-dog-stool-classifier-my-dataset-struggles</link>
          <description>What I learned training a MobileNetV2 model on 1,050 images — dataset problems, model selection, and the fifth class I never wanted to add.</description>
          <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
        </item>
    </channel>
  </rss>