[{"data":1,"prerenderedAt":48},["ShallowReactive",2],{"blog:list:en":3},[4],{"id":5,"title":6,"body":7,"date":39,"description":40,"extension":41,"meta":42,"navigation":43,"path":44,"seo":45,"stem":46,"__hash__":47},"blog_en\u002Fblog\u002F2026-09-02-separating-the-site.md","One site, one publisher",{"type":8,"value":9,"toc":34},"minimark",[10,14,18,23,31],[11,12,6],"h1",{"id":13},"one-site-one-publisher",[15,16,17],"p",{},"This site used to live inside the application monorepo. It does not any more.",[19,20,22],"h2",{"id":21},"the-failure-that-decided-it","The failure that decided it",[15,24,25,26,30],{},"Two repositories publishing one hosting target is last-writer-wins ",[27,28,29],"strong",{},"with no error",". The tooling\npublishes whichever ran most recently and exits successfully — so an older build silently replaces a\nnewer one, and nothing anywhere reports it.",[15,32,33],{},"The fix is structural rather than procedural: one site, one publisher.",{"title":35,"searchDepth":36,"depth":36,"links":37},"",2,[38],{"id":21,"depth":36,"text":22},"2026-09-02","Why kilogent.com moved into its own repository, and the failure that made it necessary.","md",{},true,"\u002Fblog\u002F2026-09-02-separating-the-site",{"title":6,"description":40},"blog\u002F2026-09-02-separating-the-site","ATTObyeEWwcSRCVAJQCqbl3-zIMm5V-N_0NioQZNbw8",1790184143063]