[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-categories-en":3,"blog-all-posts-en":56,"blog-index-all-10-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":14,"pageSize":72,"total":58,"list":73},9,[74,85,96,107,118,127,137,148,159],{"id":75,"slug":76,"title":77,"excerpt":78,"content":11,"cover":11,"tone":45,"author":64,"publishedAt":79,"updatedAt":79,"readingMinutes":49,"featured":66,"tags":80,"category":84},42,"offline-deployment-notes","Notes on Offline, Air-Gapped Deployment","Factory, government and large enterprise networks often cannot reach the internet, so deployment must be designed for it.","2026-05-26T13:36:00+08:00",[81,82,83],"Deployment","Offline","Delivery",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":86,"slug":87,"title":88,"excerpt":89,"content":11,"cover":11,"tone":37,"author":64,"publishedAt":90,"updatedAt":90,"readingMinutes":49,"featured":66,"tags":91,"category":95},62,"cheap-usability-testing","Cheap Ways to Run Usability Tests","No lab and no eye tracker needed. Five people, one laptop and an hour reveal most problems.","2026-05-24T13:36:00+08:00",[92,93,94],"Usability","Research","Product",{"id":40,"parentId":6,"slug":41,"name":42,"description":43,"icon":44,"cover":11,"tone":22,"kind":13,"sortOrder":46,"count":6},{"id":97,"slug":98,"title":99,"excerpt":100,"content":11,"cover":11,"tone":37,"author":64,"publishedAt":101,"updatedAt":101,"readingMinutes":49,"featured":66,"tags":102,"category":106},82,"migration-three-runs","Retrospective: Three Reruns for a Hundred Thousand Rows","The first run errored, the second disagreed on totals, the third passed. Each failure exposed a different problem.","2026-05-22T13:36:00+08:00",[103,104,105],"Retrospective","Migration","Legacy",{"id":32,"parentId":6,"slug":33,"name":34,"description":35,"icon":36,"cover":11,"tone":29,"kind":13,"sortOrder":38,"count":6},{"id":108,"slug":109,"title":110,"excerpt":111,"content":11,"cover":11,"tone":37,"author":64,"publishedAt":112,"updatedAt":112,"readingMinutes":49,"featured":66,"tags":113,"category":117},101,"who-joins-client-visits","Who Should Visit the Client","Client visits are not only for sales and project managers. Developers' presence is undervalued.","2026-05-20T13:36:00+08:00",[114,115,116],"Team Culture","Client Communication","Requirements",{"id":24,"parentId":6,"slug":25,"name":26,"description":27,"icon":28,"cover":11,"tone":37,"kind":13,"sortOrder":30,"count":6},{"id":119,"slug":120,"title":121,"excerpt":122,"content":11,"cover":11,"tone":37,"author":64,"publishedAt":123,"updatedAt":123,"readingMinutes":49,"featured":66,"tags":124,"category":126},120,"domestic-database-migration","Observations on Domestic Database Migration","Migration is the easy part; the next three years of stable operation is the hard part.","2026-05-18T13:36:00+08:00",[19,125,104],"Database",{"id":17,"parentId":6,"slug":18,"name":19,"description":20,"icon":21,"cover":11,"tone":45,"kind":13,"sortOrder":15,"count":6},{"id":47,"slug":128,"title":129,"excerpt":130,"content":11,"cover":11,"tone":29,"author":64,"publishedAt":131,"updatedAt":131,"readingMinutes":49,"featured":66,"tags":132,"category":136},"why-we-stay-in-lanzhou","Why We Stay in Lanzhou","Running a software company in a smaller city means fewer clients, harder hiring and a lag in information, but it has its own advantages.","2026-05-16T13:36:00+08:00",[133,134,135],"Startup","Lanzhou","Choice",{"id":5,"parentId":6,"slug":7,"name":8,"description":9,"icon":10,"cover":11,"tone":12,"kind":13,"sortOrder":14,"count":6},{"id":138,"slug":139,"title":140,"excerpt":141,"content":11,"cover":11,"tone":29,"author":64,"publishedAt":142,"updatedAt":142,"readingMinutes":49,"featured":66,"tags":143,"category":147},43,"barcode-and-rfid-basics","Barcodes and RFID: The First Step in Warehouse Digitalisation","Many warehouse projects start not with software but with turning every item into a scannable number.","2026-05-14T14:49:00+08:00",[144,145,146],"Warehouse","Barcode","Manufacturing",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":149,"slug":150,"title":151,"excerpt":152,"content":11,"cover":11,"tone":22,"author":64,"publishedAt":153,"updatedAt":153,"readingMinutes":49,"featured":66,"tags":154,"category":158},63,"error-message-audience","Who Is the Error Message Written For?","'Operation failed, please retry' is the least useful message there is. Users need to know what happened and what they can do.","2026-05-12T14:49:00+08:00",[155,156,157],"Errors","UX","Product Design",{"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":29,"author":64,"publishedAt":164,"updatedAt":164,"readingMinutes":49,"featured":66,"tags":165,"category":168},83,"handover-without-docs","Retrospective: A Month Lost to Missing Documentation","The core developer left and the successor spent a month before daring to change a line.","2026-05-10T14:49:00+08:00",[103,166,167],"Handover","Team",{"id":32,"parentId":6,"slug":33,"name":34,"description":35,"icon":36,"cover":11,"tone":29,"kind":13,"sortOrder":38,"count":6}]