[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-three-lessons-from-first-client-en":3,"blog-adjacent-three-lessons-from-first-client-en":30,"blog-related-three-lessons-from-first-client-en":63},{"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},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.","\u003Cp>Our first order came from an acquaintance: a marketing site with a small admin panel, thirty thousand yuan. There were three of us, and we signed a two-page contract because we wanted a project more than we wanted protection.\u003C\u002Fp>\n\u003Ch2>1. A friendly introduction is not a contract\u003C\u002Fh2>\n\u003Cp>The scope grew in conversation, from a brochure site to a mini platform with members and payments, while the budget stayed put. With no scope clause we spent the project explaining ourselves, and nobody ended up happy.\u003C\u002Fp>\n\u003Cp>Since then every contract lists scope, change process and acceptance criteria. It is twice as long and far cheaper to discuss.\u003C\u002Fp>\n\u003Ch2>2. Acceptance criteria come before the first line of code\u003C\u002Fh2>\n\u003Cp>That client waited two months after launch to say something felt off, without being able to say what. Without verifiable criteria, rework has no bottom.\u003C\u002Fp>\n\u003Cp>Today we split acceptance into a feature list, performance targets and a content checklist, and confirm them item by item.\u003C\u002Fp>\n\u003Ch2>3. Say the hard things early\u003C\u002Fh2>\n\u003Cp>We told that client what we could do, what we advised against and what would cost extra. They trusted us more, not less, and later introduced two more projects.\u003C\u002Fp>\n\u003Cp>The profit on that first order was negative. The lessons were not. It shaped almost everything we do on projects since.\u003C\u002Fp>","","cyan","佳益方圆团队","2026-09-25T10:13:00+08:00",1,false,[16,17,18],"Startup","Client","Contract",{"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":26,"author":11,"publishedAt":36,"updatedAt":36,"readingMinutes":13,"featured":14,"tags":37,"category":41},109,"local-software-budget","Two New Trends in Local Software Budgets","Totals are flat, but the way money is spent has changed: fewer big one-off projects, more sustained investment.","2026-09-27T10:13:00+08:00",[38,39,40],"Industry Watch","Budget","IT Strategy",{"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":26,"author":11,"publishedAt":52,"updatedAt":53,"readingMinutes":13,"featured":14,"tags":54,"category":57},3,"miniapp-or-app","Mini Program or App? Start with Where the Business Happens","Technical preference should not decide the platform. Frequency, sharing, retention and capability boundaries are what really determine the right carrier.","2026-09-25T09:00:00+08:00","2026-10-18T15:58:14.677+08:00",[55,56],"Mobile","Technology Selection",{"id":13,"parentId":21,"slug":58,"name":59,"description":60,"icon":61,"cover":9,"tone":26,"kind":27,"sortOrder":62,"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,[64,73,84],{"id":28,"slug":65,"title":66,"excerpt":67,"content":9,"cover":9,"tone":26,"author":11,"publishedAt":68,"updatedAt":68,"readingMinutes":13,"featured":14,"tags":69,"category":72},"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,70,71],"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":74,"slug":75,"title":76,"excerpt":77,"content":9,"cover":9,"tone":78,"author":11,"publishedAt":79,"updatedAt":79,"readingMinutes":13,"featured":14,"tags":80,"category":83},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",[16,81,82],"Clients","Judgement",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"id":85,"slug":86,"title":87,"excerpt":88,"content":9,"cover":9,"tone":89,"author":11,"publishedAt":90,"updatedAt":90,"readingMinutes":13,"featured":14,"tags":91,"category":94},13,"cash-flow-before-margin","Cash Flow Beats Margin","Margin is a number in the ledger; cash flow decides whether the company survives to the next payment.","teal","2026-09-01T12:39:00+08:00",[16,92,93],"Cash Flow","Operations",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21}]