[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-nuxt-ssr-cache-strategy-en":3,"blog-adjacent-nuxt-ssr-cache-strategy-en":28,"blog-related-nuxt-ssr-cache-strategy-en":65},{"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":27},34,"nuxt-ssr-cache-strategy","Caching and First Paint in Nuxt SSR","Server rendering is not automatically fast. First paint depends on how requests are organised, not on the rendering mode.","\u003Cp>Many teams adopt SSR for first paint and SEO, then discover the first screen still takes one or two seconds. The cause is rarely rendering; it is serial data fetching, slow APIs or missing cache.\u003C\u002Fp>\n\u003Ch2>Three usual bottlenecks\u003C\u002Fh2>\n\u003Cp>Serial requests. The page waits for categories, list and recommendations in turn, so total time is the sum. Running them in parallel often halves it.\u003C\u002Fp>\n\u003Cp>No cache. Home and list pages are identical for everyone and can be cached on the server for a few dozen seconds, cutting API load sharply.\u003C\u002Fp>\n\u003Cp>Over-fetching. A list page requests detail fields, a detail page requests list data, and both waste bandwidth and query time.\u003C\u002Fp>\n\u003Ch2>Our defaults\u003C\u002Fh2>\n\u003Cp>Content pages get a short server-side cache, invalidated by an API call after editors publish, so nobody sees stale content.\u003C\u002Fp>\n\u003Cp>Critical first-screen requests run in parallel inside useAsyncData; non-critical modules load on the client later.\u003C\u002Fp>\n\u003Cp>Images and fonts go through a CDN so they do not compete for first-screen bandwidth.\u003C\u002Fp>\n\u003Cp>SSR only moves rendering to the server. Real speed comes from fewer requests, parallel requests and sensible caching.\u003C\u002Fp>","","blue","佳益方圆团队","2026-08-30T13:52:00+08:00",1,false,[16,17,18],"Nuxt","SSR","Performance",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},0,"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu","article",60,{},{"previous":29,"next":47},{"id":30,"slug":31,"title":32,"excerpt":33,"content":9,"cover":9,"tone":34,"author":11,"publishedAt":35,"updatedAt":35,"readingMinutes":13,"featured":14,"tags":36,"category":40},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",[37,38,39],"Startup","Cash Flow","Operations",{"id":41,"parentId":20,"slug":42,"name":43,"description":44,"icon":45,"cover":9,"tone":10,"kind":25,"sortOrder":46,"count":20},6,"founder-notes","Founder Notes","Reflections from the founding team on business, management and product, documenting the growth of a software company.","pen-tool",10,{"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},54,"permissions-are-product-design","Permission Design Is Product Design","Permissions are not a technical appendix. They decide what each person in the organisation can see and do.","slate","2026-08-28T13:52:00+08:00",[55,56,57],"Permissions","Product Design","Organisation",{"id":59,"parentId":20,"slug":60,"name":61,"description":62,"icon":63,"cover":9,"tone":10,"kind":25,"sortOrder":64,"count":20},2,"product-thinking","Product Thinking","Requirement analysis, user experience and product design methods, plus the thinking from business problems to product solutions.","lightbulb",50,[66,77,88],{"id":67,"slug":68,"title":69,"excerpt":70,"content":9,"cover":9,"tone":71,"author":11,"publishedAt":72,"updatedAt":72,"readingMinutes":13,"featured":14,"tags":73,"category":76},30,"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.","cyan","2026-10-17T09:00:00+08:00",[74,75,22],"Integration","APIs",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},{"id":13,"slug":78,"title":79,"excerpt":80,"content":9,"cover":9,"tone":71,"author":11,"publishedAt":81,"updatedAt":82,"readingMinutes":59,"featured":83,"tags":84,"category":87},"why-enterprise-systems-age","Why Enterprise Systems Start to Age After Three Years","A system can pass acceptance with every feature checked, then feel awkward three years later. The problem is rarely the code — it is the changes that were never considered at delivery.","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[85,86],"System Evolution","Architecture",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},{"id":89,"slug":90,"title":91,"excerpt":92,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":93,"updatedAt":93,"readingMinutes":13,"featured":14,"tags":94,"category":98},31,"idempotent-design-basics","Idempotency: Duplicate Submissions Are Not Just Double Clicks","Retries, redelivery and impatient users all send the same request more than once. Idempotency belongs in the API design.","2026-10-05T10:13:00+08:00",[95,96,97],"API Design","Idempotency","Reliability",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20}]