<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Stone.js Blog</title>
    <link>https://stonejs.dev/blog</link>
    <atom:link href="https://stonejs.dev/blog/feed.xml" rel="self" type="application/rss+xml" />
    <description>Cloud-native architecture solutions with Stone.js: a diagram, the modules that solve it, and a ready starter.</description>
    <language>en</language>
    <item>
      <title>Give your coding agent Stone.js superpowers</title>
      <link>https://stonejs.dev/blog/agent-superpowers</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/agent-superpowers</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
      <description>One command, `stone mcp`, serves your coding agent the framework’s knowledge and a live, read-only view of your own app: its routes, commands and config, plus any tools you add.</description>
      <category>agents</category><category>mcp</category><category>ai</category>
    </item>
    <item>
      <title>Stateless auth at the edge</title>
      <link>https://stonejs.dev/blog/stateless-auth-at-the-edge</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/stateless-auth-at-the-edge</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
      <description>Verify a token at the boundary instead of holding a session, and the same auth guard runs on Node, serverless, the edge and agents, with nothing to store.</description>
      <category>auth</category><category>edge</category><category>security</category>
    </item>
    <item>
      <title>One domain, three runtimes</title>
      <link>https://stonejs.dev/blog/one-domain-three-runtimes</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/one-domain-three-runtimes</guid>
      <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
      <description>One codebase, unchanged, running on Node, AWS Lambda and the edge. Not three apps: three runtimes. The thing a single-target framework cannot do.</description>
      <category>architecture</category><category>adapters</category><category>cloud-native</category>
    </item>
    <item>
      <title>Introducing Stone.js</title>
      <link>https://stonejs.dev/blog/introducing-stone-js</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/introducing-stone-js</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <description>An application is an act, not an object. Write the domain once; the context applies to it at run time. This is the Continuum, and this is Stone.js.</description>
      <category>architecture</category><category>continuum</category>
    </item>
    <item>
      <title>One schema, validated on the backend and the form</title>
      <link>https://stonejs.dev/blog/isomorphic-validation</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/isomorphic-validation</guid>
      <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
      <description>Validation duplicated between the API and the UI always drifts. Write the shape once, enforce it at the boundary with a 422, and validate the same schema in the form.</description>
      <category>validation</category><category>dx</category>
    </item>
    <item>
      <title>A public API contract, generated from the schemas you already write</title>
      <link>https://stonejs.dev/blog/openapi-from-your-schemas</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/openapi-from-your-schemas</guid>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <description>A hand-written OpenAPI spec drifts the day after you write it. Derive the document from your validation schemas instead, and serve it with Swagger UI.</description>
      <category>openapi</category><category>api</category>
    </item>
    <item>
      <title>Multi-tenancy with subdomain routing</title>
      <link>https://stonejs.dev/blog/multi-tenant-subdomains</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/multi-tenant-subdomains</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
      <description>Tenant-per-subdomain without header-parsing plumbing. A subdomain parameter turns multi-tenancy into routing: capture the tenant from the host and read it on the event.</description>
      <category>routing</category><category>saas</category><category>multi-tenancy</category>
    </item>
    <item>
      <title>Direct-to-cloud file uploads with signed URLs</title>
      <link>https://stonejs.dev/blog/signed-url-file-uploads</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/signed-url-file-uploads</guid>
      <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
      <description>Uploading large files without proxying the bytes through your API. Issue a short-lived signed URL, let the client upload straight to storage, then save only the metadata.</description>
      <category>architecture</category><category>storage</category><category>cloud-native</category>
    </item>
    <item>
      <title>Real-time features: live updates and presence</title>
      <link>https://stonejs.dev/blog/real-time-features</link>
      <guid isPermaLink="true">https://stonejs.dev/blog/real-time-features</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
      <description>Live dashboards, presence and notifications, framed by their architecture: the SSE and WebSocket flow, how a held-open connection fits the per-event model, and where it runs on the edge.</description>
      <category>realtime</category><category>cloud-native</category>
    </item>
  </channel>
</rss>
