<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Ramesh Mangalagiri</title>
  <link>https://rameshm.com/blog/</link>
  <description>Notes on .NET, React, Azure, building apps and learning.</description>
  <language>en</language>
  <atom:link href="https://rameshm.com/feed.xml" rel="self" type="application/rss+xml"/>
  <item>
    <title>Building an offline-first PDF reader with IndexedDB and a service worker</title>
    <link>https://rameshm.com/blog/offline-first-pdf-reader/</link>
    <guid>https://rameshm.com/blog/offline-first-pdf-reader/</guid>
    <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
    <description>How Foliant stays usable on a train with no signal: a service worker for the app shell, IndexedDB for the library, and a few habits that keep both honest.</description>
  </item>
  <item>
    <title>How I would plan an Azure App Service migration for a legacy .NET app</title>
    <link>https://rameshm.com/blog/azure-app-service-migration-plan/</link>
    <guid>https://rameshm.com/blog/azure-app-service-migration-plan/</guid>
    <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
    <description>A practical checklist for moving an older .NET application to Azure App Service: inventory first, then configuration, identity, data, cutover and rollback.</description>
  </item>
  <item>
    <title>What building an interview Anki deck taught me about learning</title>
    <link>https://rameshm.com/blog/anki-deck-lessons/</link>
    <guid>https://rameshm.com/blog/anki-deck-lessons/</guid>
    <pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate>
    <description>Lessons from writing 390+ flashcards for full-stack .NET, React and Azure interviews: one idea per card, answers in your own words, and why a deck is not the same as understanding.</description>
  </item>
</channel>
</rss>
