<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Multi-Tenant on Kuldeep Pisda</title><link>https://kdpisda.in/tag/multi-tenant/</link><description>Recent content in Multi-Tenant on Kuldeep Pisda</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 30 May 2026 10:00:00 +0530</lastBuildDate><atom:link href="https://kdpisda.in/tag/multi-tenant/index.xml" rel="self" type="application/rss+xml"/><item><title>Category-Scoped SMS Opt-Outs (A2P 10DLC) in a Multi-Tenant Platform</title><link>https://kdpisda.in/category-scoped-sms-opt-outs-a2p-10dlc/</link><pubDate>Sat, 30 May 2026 10:00:00 +0530</pubDate><guid>https://kdpisda.in/category-scoped-sms-opt-outs-a2p-10dlc/</guid><description>&lt;p&gt;Here&amp;rsquo;s a compliance bug that never throws an exception, never pages you, and quietly makes your product worse: a customer texts &lt;strong&gt;STOP&lt;/strong&gt; to cancel a promo, and now they also stop getting the &amp;ldquo;your technician is on the way&amp;rdquo; text they actually wanted. The code did exactly what it was told. The product still failed the person.&lt;/p&gt;
&lt;p&gt;I hit this while owning the outbound and texting stack on a venture-backed AI voice platform for the home-services industry — an AI receptionist that answers calls and texts for contractors, books jobs into their field-service CRM, and runs outbound campaigns. The last big thing I shipped there was making SMS opt-out &lt;strong&gt;category-scoped&lt;/strong&gt; instead of global. It sounds like a checkbox. It&amp;rsquo;s actually an end-to-end change that touches your inbound webhook, your outbound send path, your CRM sync, and your dashboard. This is how I did it, and why the obvious implementation is the wrong one.&lt;/p&gt;</description></item><item><title>One Django Codebase, Four LLM Vendors</title><link>https://kdpisda.in/one-django-codebase-four-llm-vendors/</link><pubDate>Fri, 24 Apr 2026 10:00:00 +0530</pubDate><guid>https://kdpisda.in/one-django-codebase-four-llm-vendors/</guid><description>&lt;p&gt;Here&amp;rsquo;s a requirement that sounds simple until you sit with it: every tenant on a whitelabel platform should be able to pick their own LLM vendor and bring their own API keys. One customer runs everything through Claude, the next insists on GPT for compliance reasons, a third wants Gemini because that&amp;rsquo;s who their cloud contract is with, and someone eventually asks for Perplexity because they want search-grounded answers. Same codebase, same deploy, four different providers billed to four different accounts.&lt;/p&gt;</description></item></channel></rss>