[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"blog-list":3},[4],{"id":5,"title":6,"author":7,"body":8,"date":15,"description":16,"extension":17,"meta":18,"navigation":19,"path":20,"seo":21,"stem":22,"tags":23,"__hash__":28},"blog\u002Fblog\u002Fbuilding-shipmentpro.md","Why I Built ShipmentPro With Row-Level Security Instead of Application-Level Auth","Mohamed Abed",{"type":9,"value":10,"toc":11},"minimark",[],{"title":12,"searchDepth":13,"depth":13,"links":14},"",2,[],"2026-07-07","Most developers handle multi-tenant data isolation at the application layer. Here's why I chose PostgreSQL RLS instead — and what it cost me to get it right.","md",{},true,"\u002Fblog\u002Fbuilding-shipmentpro",{"title":6,"description":16},"blog\u002Fbuilding-shipmentpro",[24,25,26,27],"backend","security","postgresql","supabase","aoVteQxzbFm1SxprOivwbsxHa6OkV84tXsjCEUhfpyo",1783589640962]