[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-seven-years-what-changed-en":3,"blog-related-seven-years-what-changed-en":27,"blog-adjacent-seven-years-what-changed-en":59},{"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":16,"seoSettings":26},21,"seven-years-what-changed","Seven Years: What Actually Changed","From three people to twenty, from taking any work to knowing what we are good at. Slower than expected, and more solid.","\u003Cp>In 2019 we worked from an apartment with three desks and a second-hand server. Seven years later the team has a rhythm of its own and clients outside the province, but some things never moved.\u003C\u002Fp>\n\u003Ch2>What changed\u003C\u002Fh2>\n\u003Cp>Delivery changed from experience-led to a process with discovery, milestone acceptance and a post-launch review.\u003C\u002Fp>\n\u003Cp>The team changed from generalists to dedicated product, QA and operations roles.\u003C\u002Fp>\n\u003Cp>Clients changed from mainly referrals to more than half arriving through public writing and renewals.\u003C\u002Fp>\n\u003Ch2>What did not\u003C\u002Fh2>\n\u003Cp>We still refuse to quote by man-days and still insist on agreeing scope first.\u003C\u002Fp>\n\u003Cp>We still decline commitments beyond our ability, even when the budget is large.\u003C\u002Fp>\n\u003Cp>Every project still ends with a written retrospective, even if it is one page.\u003C\u002Fp>\n\u003Cp>Seven years is not long, but long enough to prove one thing: do each project properly and the next one grows out of it.\u003C\u002Fp>","","cyan","佳益方圆团队","2026-05-28T12:23:00+08:00",1,false,[],{"id":17,"parentId":18,"slug":19,"name":20,"description":21,"icon":22,"cover":9,"tone":23,"kind":24,"sortOrder":25,"count":18},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,{},[28,38,48],{"id":25,"slug":29,"title":30,"excerpt":31,"content":9,"cover":9,"tone":23,"author":11,"publishedAt":32,"updatedAt":32,"readingMinutes":13,"featured":14,"tags":33,"category":37},"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",[34,35,36],"Startup","Pricing","Partnership",{"id":17,"parentId":18,"slug":19,"name":20,"description":21,"icon":22,"cover":9,"tone":23,"kind":24,"sortOrder":25,"count":18},{"id":39,"slug":40,"title":41,"excerpt":42,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":43,"updatedAt":43,"readingMinutes":13,"featured":14,"tags":44,"category":47},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.","2026-09-25T10:13:00+08:00",[34,45,46],"Client","Contract",{"id":17,"parentId":18,"slug":19,"name":20,"description":21,"icon":22,"cover":9,"tone":23,"kind":24,"sortOrder":25,"count":18},{"id":49,"slug":50,"title":51,"excerpt":52,"content":9,"cover":9,"tone":53,"author":11,"publishedAt":54,"updatedAt":54,"readingMinutes":13,"featured":14,"tags":55,"category":58},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.","indigo","2026-09-13T11:26:00+08:00",[34,56,57],"Clients","Judgement",{"id":17,"parentId":18,"slug":19,"name":20,"description":21,"icon":22,"cover":9,"tone":23,"kind":24,"sortOrder":25,"count":18},{"previous":60,"next":76},{"id":61,"slug":62,"title":63,"excerpt":64,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":65,"updatedAt":65,"readingMinutes":13,"featured":14,"tags":66,"category":70},119,"open-source-license-risk","Open Source Licence Risk: Used, Not Understood","Nearly every project uses open source, yet few can explain its obligations.","2026-05-30T12:23:00+08:00",[67,68,69],"Industry Watch","Open Source","Compliance",{"id":71,"parentId":18,"slug":72,"name":67,"description":73,"icon":74,"cover":9,"tone":23,"kind":24,"sortOrder":75,"count":18},5,"industry-watch","In-depth analysis of internet, software and digital industry trends with our own point of view.","globe",20,{"id":77,"slug":78,"title":79,"excerpt":80,"content":9,"cover":9,"tone":81,"author":11,"publishedAt":82,"updatedAt":82,"readingMinutes":13,"featured":14,"tags":83,"category":87},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.","slate","2026-05-26T13:36:00+08:00",[84,85,86],"Deployment","Offline","Delivery",{"id":13,"parentId":18,"slug":88,"name":89,"description":90,"icon":91,"cover":9,"tone":23,"kind":24,"sortOrder":92,"count":18},"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu",60]