[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-product-or-project-shop-en":3,"blog-adjacent-product-or-project-shop-en":30,"blog-related-product-or-project-shop-en":64},{"id":4,"slug":5,"title":6,"excerpt":7,"content":8,"cover":9,"tone":10,"author":11,"publishedAt":12,"updatedAt":12,"readingMinutes":13,"featured":14,"tags":15,"category":19,"seoSettings":29},18,"product-or-project-shop","Product Company or Project Shop?","Every project-driven team asks this. Our answer is not either\u002For, but which capabilities repeat often enough to reuse.","\u003Cp>Project work gives predictable cash but locks up people; product work offers scale but spends money with no visible return. We oscillated between the two for years until we changed the question.\u003C\u002Fp>\n\u003Ch2>From identity to capability\u003C\u002Fh2>\n\u003Cp>Instead of asking whether we are a product or a project company, ask which capabilities have appeared three or more times across projects.\u003C\u002Fp>\n\u003Cp>Only repeated capabilities deserve productisation, such as permission backends, content management or reporting engines. A one-off feature becomes a liability even if it ships as a product.\u003C\u002Fp>\n\u003Ch2>The compromise we settled on\u003C\u002Fh2>\n\u003Cp>We turn high-reuse modules into an internal component library. It is never sold, but it removes about thirty percent of the code from each project.\u003C\u002Fp>\n\u003Cp>Each year we pick one direction for a small product bet, capped at two months and two people, so failure never threatens the core business.\u003C\u002Fp>\n\u003Cp>Projects keep us alive; products give us room to imagine. Turn repetitive work into assets before talking about transformation.\u003C\u002Fp>","","indigo","佳益方圆团队","2026-07-03T09:44:00+08:00",1,false,[16,17,18],"Startup","Product","Strategy",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},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,{},{"previous":31,"next":47},{"id":32,"slug":33,"title":34,"excerpt":35,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":36,"updatedAt":36,"readingMinutes":13,"featured":14,"tags":37,"category":41},116,"private-domain-tools","How Many Private-Domain Tools Does a Company Need?","SCRM, community, livestream, membership: the more tools, the more fragmented the customer.","2026-07-05T09:44:00+08:00",[38,39,40],"Industry Watch","Private Domain","Tools",{"id":42,"parentId":21,"slug":43,"name":38,"description":44,"icon":45,"cover":9,"tone":26,"kind":27,"sortOrder":46,"count":21},5,"industry-watch","In-depth analysis of internet, software and digital industry trends with our own point of view.","globe",20,{"id":48,"slug":49,"title":50,"excerpt":51,"content":9,"cover":9,"tone":52,"author":11,"publishedAt":53,"updatedAt":53,"readingMinutes":13,"featured":14,"tags":54,"category":58},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.","slate","2026-07-01T10:57:00+08:00",[55,56,57],"Migration","Legacy","Delivery",{"id":13,"parentId":21,"slug":59,"name":60,"description":61,"icon":62,"cover":9,"tone":26,"kind":27,"sortOrder":63,"count":21},"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu",60,[65,74,85],{"id":28,"slug":66,"title":67,"excerpt":68,"content":9,"cover":9,"tone":26,"author":11,"publishedAt":69,"updatedAt":69,"readingMinutes":13,"featured":14,"tags":70,"category":73},"quote-by-scope-not-hours","Why We Quote by Scope, Not by Man-Days","Man-day pricing looks fair, but it pushes every uncertainty onto the client. We would rather agree on scope and assumptions first, then talk about money.","2026-10-07T09:00:00+08:00",[16,71,72],"Pricing","Partnership",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"id":75,"slug":76,"title":77,"excerpt":78,"content":9,"cover":9,"tone":79,"author":11,"publishedAt":80,"updatedAt":80,"readingMinutes":13,"featured":14,"tags":81,"category":84},11,"three-lessons-from-first-client","Three Lessons From Our First Client","Our first project in 2019 was worth thirty thousand yuan and taught us more about contracts, acceptance and honesty than any course.","cyan","2026-09-25T10:13:00+08:00",[16,82,83],"Client","Contract",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"id":86,"slug":87,"title":88,"excerpt":89,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":90,"updatedAt":90,"readingMinutes":13,"featured":14,"tags":91,"category":94},12,"choosing-clients-not-deals","Choosing Clients Matters More Than Choosing Projects","The same contract can grow a team or drain it. We now screen clients with three questions.","2026-09-13T11:26:00+08:00",[16,92,93],"Clients","Judgement",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21}]