<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Lunora Blog</title>
    <link>https://lunora.sh/blog</link>
    <description>News, insights, and engineering deep dives from the team building Lunora.</description>
    <language>en</language>
    <atom:link href="https://lunora.sh/blog/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Firestore's typed values, and the export that isn't JSON</title>
      <link>https://lunora.sh/blog/firestore-typed-values-and-the-export-that-isnt-json</link>
      <guid isPermaLink="true">https://lunora.sh/blog/firestore-typed-values-and-the-export-that-isnt-json</guid>
      <description>Building the Firebase importer meant discovering that gcloud firestore export writes protobuf, not JSON — and that the format worth supporting was somewhere else entirely.</description>
      <category>Engineering</category>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Migrating off Convex, files and all</title>
      <link>https://lunora.sh/blog/migrate-convex-files-and-all</link>
      <guid isPermaLink="true">https://lunora.sh/blog/migrate-convex-files-and-all</guid>
      <description>lunora import now moves a Convex export's blobs, not just its documents — verified before write, references rewritten, and safe to re-run. Here's why ids surviving is the whole trick.</description>
      <category>Engineering</category>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Supabase to Lunora, without the reshape script</title>
      <link>https://lunora.sh/blog/supabase-to-lunora-without-a-reshape-script</link>
      <guid isPermaLink="true">https://lunora.sh/blog/supabase-to-lunora-without-a-reshape-script</guid>
      <description>lunora import --from supabase reads your CSV dumps directly. The interesting part is what it refuses to do: a conversion that would lose a digit fails the run instead of rounding.</description>
      <category>Engineering</category>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>we deleted the sync server</title>
      <link>https://lunora.sh/blog/we-deleted-the-sync-server</link>
      <guid isPermaLink="true">https://lunora.sh/blog/we-deleted-the-sync-server</guid>
      <description>local-first sync on Cloudflare Durable Objects, with no separate sync service to run.</description>
      <category>Engineering</category>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Build a real-time chat on Cloudflare in 5 minutes</title>
      <link>https://lunora.sh/blog/build-a-realtime-chat-on-cloudflare</link>
      <guid isPermaLink="true">https://lunora.sh/blog/build-a-realtime-chat-on-cloudflare</guid>
      <description>A short tutorial: build a typed, live-syncing chat app on Cloudflare Workers and Durable Objects with Lunora. Schema, functions, a React client, two tabs that sync.</description>
      <category>Tutorials</category>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Introducing Lunora</title>
      <link>https://lunora.sh/blog/introducing-lunora</link>
      <guid isPermaLink="true">https://lunora.sh/blog/introducing-lunora</guid>
      <description>Lunora is a type-safe, real-time backend for Cloudflare: Convex-style DX, typed queries and reactive subscriptions, on your own Workers and Durable Objects. Open source, alpha.</description>
      <category>Announcements</category>
      <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Realtime by default, not as an afterthought</title>
      <link>https://lunora.sh/blog/realtime-by-default</link>
      <guid isPermaLink="true">https://lunora.sh/blog/realtime-by-default</guid>
      <description>How Lunora turns every query into a live subscription, with optimistic updates and an offline queue baked in.</description>
      <category>Engineering</category>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Lunora Studio: your backend, in the open</title>
      <link>https://lunora.sh/blog/lunora-studio-deep-dive</link>
      <guid isPermaLink="true">https://lunora.sh/blog/lunora-studio-deep-dive</guid>
      <description>A local admin UI for your schema, data, SQL, dashboards, time-travel, and workflows — running against your live edge database, with nothing to install.</description>
      <category>Updates</category>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>