<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>welldun — software × AI</title><description>welldun is where I build and document practical software + AI infrastructure — multi-tenant platforms, voice agents, email pipelines, and the systems behind them.</description><link>https://blog.welldun.ai/</link><language>en-us</language><item><title>Building a platform where customers design their own database</title><link>https://blog.welldun.ai/posts/00-series-intro/</link><guid isPermaLink="true">https://blog.welldun.ai/posts/00-series-intro/</guid><description>Why we&apos;re building a &apos;define-your-own-data&apos; platform — and what this series will cover.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>Drafting Table</category><category>intro</category><category>architecture</category></item><item><title>One engine, many schemas</title><link>https://blog.welldun.ai/posts/01-the-architecture-bet/</link><guid isPermaLink="true">https://blog.welldun.ai/posts/01-the-architecture-bet/</guid><description>The core bet: a registry as source of truth, JSON for storage, and generated SQL views on top.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>Drafting Table</category><category>architecture</category><category>postgres</category><category>jsonb</category></item><item><title>Keeping tenants apart with Row-Level Security</title><link>https://blog.welldun.ai/posts/02-tenant-isolation-rls/</link><guid isPermaLink="true">https://blog.welldun.ai/posts/02-tenant-isolation-rls/</guid><description>How Postgres makes data isolation a property of the database — and the view gotcha that nearly leaked everything.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>Drafting Table</category><category>security</category><category>postgres</category><category>multi-tenancy</category></item><item><title>Unique keys and foreign keys… on JSON</title><link>https://blog.welldun.ai/posts/03-constraints-and-relationships-on-json/</link><guid isPermaLink="true">https://blog.welldun.ai/posts/03-constraints-and-relationships-on-json/</guid><description>How to enforce real constraints and relationships when the data lives in a JSON blob and the schema was invented by a user.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>Drafting Table</category><category>postgres</category><category>constraints</category><category>jsonb</category></item><item><title>What a load test taught us</title><link>https://blog.welldun.ai/posts/04-what-load-testing-taught-us/</link><guid isPermaLink="true">https://blog.welldun.ai/posts/04-what-load-testing-taught-us/</guid><description>A bottleneck we couldn&apos;t see, a 400ms query that became 0.3ms, and why &apos;a lot of data&apos; isn&apos;t the same as &apos;slow.&apos;</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>Drafting Table</category><category>performance</category><category>postgres</category><category>load-testing</category></item></channel></rss>