[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-categories-en":3,"blog-all-posts-en":56,"blog-index-all-8-en":71},[4,16,23,31,39,48],{"id":5,"parentId":6,"slug":7,"name":8,"description":9,"icon":10,"cover":11,"tone":12,"kind":13,"sortOrder":14,"count":15},6,0,"founder-notes","Founder Notes","Reflections from the founding team on business, management and product, documenting the growth of a software company.","pen-tool","","blue","article",10,20,{"id":17,"parentId":6,"slug":18,"name":19,"description":20,"icon":21,"cover":11,"tone":22,"kind":13,"sortOrder":15,"count":15},5,"industry-watch","Industry Watch","In-depth analysis of internet, software and digital industry trends with our own point of view.","globe","cyan",{"id":24,"parentId":6,"slug":25,"name":26,"description":27,"icon":28,"cover":11,"tone":29,"kind":13,"sortOrder":30,"count":15},4,"team-culture","Team and Culture","Company events, tech sharing, team building and hiring culture that show the daily life of the Jiayifangyuan team.","users","indigo",30,{"id":32,"parentId":6,"slug":33,"name":34,"description":35,"icon":36,"cover":11,"tone":37,"kind":13,"sortOrder":38,"count":15},3,"project-retrospective","Project Retrospectives","Real project records from zero to one, covering problems, solutions, lessons learned and final outcomes.","clipboard-check","teal",40,{"id":40,"parentId":6,"slug":41,"name":42,"description":43,"icon":44,"cover":11,"tone":45,"kind":13,"sortOrder":46,"count":47},2,"product-thinking","Product Thinking","Requirement analysis, user experience and product design methods, plus the thinking from business problems to product solutions.","lightbulb","slate",50,22,{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":55},1,"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu",60,24,{"language":57,"page":49,"pageSize":49,"total":58,"list":59},"en",126,[60],{"id":30,"slug":61,"title":62,"excerpt":63,"content":11,"cover":11,"tone":22,"author":64,"publishedAt":65,"updatedAt":65,"readingMinutes":49,"featured":66,"tags":67,"category":70},"integration-api-pitfalls","Five Traps in Enterprise System Integration","However complete the API documentation is, integration usually stalls on field semantics, timeouts and repeated pushes.","佳益方圆团队","2026-10-17T09:00:00+08:00",false,[68,69,51],"Integration","APIs",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"language":57,"page":72,"pageSize":73,"total":58,"list":74},8,9,[75,86,97,108,119,129,140,149,159],{"id":76,"slug":77,"title":78,"excerpt":79,"content":11,"cover":11,"tone":45,"author":64,"publishedAt":80,"updatedAt":80,"readingMinutes":49,"featured":66,"tags":81,"category":85},39,"legacy-data-migration","Data Migration: Understand the Old Ledger First","Migrations rarely fail on technology. They fail because nobody can describe what the legacy data actually contains.","2026-07-01T10:57:00+08:00",[82,83,84],"Migration","Legacy","Delivery",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":87,"slug":88,"title":89,"excerpt":90,"content":11,"cover":11,"tone":45,"author":64,"publishedAt":91,"updatedAt":91,"readingMinutes":49,"featured":66,"tags":92,"category":96},59,"ai-feature-positioning","Positioning an AI Feature","Treating a large model as a universal assistant usually produces features nobody uses. Start from a specific task.","2026-06-29T10:57:00+08:00",[93,94,95],"AI","Positioning","Adoption",{"id":40,"parentId":6,"slug":41,"name":42,"description":43,"icon":44,"cover":11,"tone":22,"kind":13,"sortOrder":46,"count":6},{"id":98,"slug":99,"title":100,"excerpt":101,"content":11,"cover":11,"tone":29,"author":64,"publishedAt":102,"updatedAt":102,"readingMinutes":49,"featured":66,"tags":103,"category":107},79,"acceptance-dispute-retro","Retrospective: The Cost of Vague Acceptance Criteria","The system was finished and the client said it was not what they wanted. Every argument returned to one line: it was never specified.","2026-06-27T10:57:00+08:00",[104,105,106],"Retrospective","Acceptance","Requirements",{"id":32,"parentId":6,"slug":33,"name":34,"description":35,"icon":36,"cover":11,"tone":29,"kind":13,"sortOrder":38,"count":6},{"id":109,"slug":110,"title":111,"excerpt":112,"content":11,"cover":11,"tone":45,"author":64,"publishedAt":113,"updatedAt":113,"readingMinutes":49,"featured":66,"tags":114,"category":118},98,"knowledge-base-habit","A Knowledge Base Is a Habit","A knowledge base does not get used because it exists. It exists when every problem starts there.","2026-06-25T10:57:00+08:00",[115,116,117],"Team Culture","Knowledge Management","Documentation",{"id":24,"parentId":6,"slug":25,"name":26,"description":27,"icon":28,"cover":11,"tone":37,"kind":13,"sortOrder":30,"count":6},{"id":120,"slug":121,"title":122,"excerpt":123,"content":11,"cover":11,"tone":37,"author":64,"publishedAt":124,"updatedAt":124,"readingMinutes":49,"featured":66,"tags":125,"category":128},117,"supply-chain-gap","Digital Fault Lines in Supply Chains","Every company has its own systems; connecting them is where the gaps appear.","2026-06-23T10:57:00+08:00",[19,126,127],"Supply Chain","Digitalisation",{"id":17,"parentId":6,"slug":18,"name":19,"description":20,"icon":21,"cover":11,"tone":45,"kind":13,"sortOrder":15,"count":6},{"id":130,"slug":131,"title":132,"excerpt":133,"content":11,"cover":11,"tone":12,"author":64,"publishedAt":134,"updatedAt":134,"readingMinutes":49,"featured":66,"tags":135,"category":139},19,"brand-for-small-teams","Where a Small Company's Brand Comes From","Without an ad budget, a brand is built by every delivery, every email and every problem taken seriously.","2026-06-21T10:57:00+08:00",[136,137,138],"Startup","Brand","Reputation",{"id":5,"parentId":6,"slug":7,"name":8,"description":9,"icon":10,"cover":11,"tone":12,"kind":13,"sortOrder":14,"count":6},{"id":38,"slug":141,"title":142,"excerpt":143,"content":11,"cover":11,"tone":22,"author":64,"publishedAt":144,"updatedAt":144,"readingMinutes":49,"featured":66,"tags":145,"category":148},"testing-on-a-budget","What to Test When the Budget Is Tight","Without a dedicated QA team you still need a strategy. Spend the limited effort where failures cost the most.","2026-06-19T11:10:00+08:00",[146,147,51],"Testing","Quality",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":54,"slug":150,"title":151,"excerpt":152,"content":11,"cover":11,"tone":12,"author":64,"publishedAt":153,"updatedAt":153,"readingMinutes":49,"featured":66,"tags":154,"category":158},"pricing-tiers-design","Designing Pricing Tiers","Tiers are not random feature buckets. They should let a client recognise which one they belong to.","2026-06-17T11:10:00+08:00",[155,156,157],"Pricing","Commercial","Product",{"id":40,"parentId":6,"slug":41,"name":42,"description":43,"icon":44,"cover":11,"tone":22,"kind":13,"sortOrder":46,"count":6},{"id":160,"slug":161,"title":162,"excerpt":163,"content":11,"cover":11,"tone":45,"author":64,"publishedAt":164,"updatedAt":164,"readingMinutes":49,"featured":66,"tags":165,"category":168},80,"database-pool-outage","Incident Review: Running Out of Database Connections","The system went down at nine on a Monday morning because one connection was never closed.","2026-06-15T11:10:00+08:00",[104,166,167],"Incident","Database",{"id":32,"parentId":6,"slug":33,"name":34,"description":35,"icon":36,"cover":11,"tone":29,"kind":13,"sortOrder":38,"count":6}]