[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-nuxt-3-end-of-life-migrate-to-nuxt-4":3,"related-nuxt-3-end-of-life-migrate-to-nuxt-4":917},{"data":4,"meta":915},[5],{"id":6,"documentId":7,"title":8,"slug":9,"excerpt":10,"content":11,"readingTime":785,"createdAt":786,"updatedAt":787,"publishedAt":788,"featuredImage":789,"author":823,"category":830,"tags":836,"seo":886},66,"t9ak08c4qq3vmxdnhv5bqjcf","Nuxt 3 Is End of Life: Migrate to Nuxt 4 Now or Wait for Nuxt 5?","nuxt-3-end-of-life-migrate-to-nuxt-4","Nuxt 3 reached end of life on 31 July 2026 and Nuxt 5 is not out yet. Here is what that means for a production app, when to migrate to Nuxt 4, when waiting is defensible, and what drives the effort.",[12,21,25,31,35,86,91,117,128,132,143,147,158,162,166,199,210,216,220,224,235,239,243,268,272,276,280,312,316,352,396,400,411,415,419,455,493,497,503,516,522,539,543,547,583,636,646,650,661,681,685,703,707,711,715,719,723,727,731,735,739,743,747,751,755],{"type":13,"children":14},"paragraph",[15,19],{"bold":16,"text":17,"type":18},true,"TL;DR:","text",{"text":20,"type":18}," Nuxt 3 reached end of life on 31 July 2026, so it no longer receives security or bug fixes. Nuxt 5 is still unreleased as of mid-November 2026. For most production apps the answer is to migrate to Nuxt 4 now: it is the only supported version, it is a small step from Nuxt 3, and Nuxt's policy keeps it supported for at least six months after Nuxt 5 ships. Waiting only makes sense if a critical module blocks you, a change freeze is in force or the app is about to be retired, and then only with paid extended support and a dated plan.",{"type":13,"children":22},[23],{"text":24,"type":18},"If you pay for a Nuxt application rather than write it, the Nuxt 3 end of life can look like a developer's problem. It becomes yours the first time a security questionnaire asks which framework versions you run. This guide is for founders, product owners, agency owners and engineering managers. It covers what the Nuxt 3 EOL changes in practice, whether waiting for Nuxt 5 is a sensible bet, what makes a migration large or small, and how to keep your search rankings through the move.",{"type":26,"level":27,"children":28},"heading",2,[29],{"text":30,"type":18},"What Nuxt 3 end of life means for an app in production",{"type":13,"children":32},[33],{"text":34,"type":18},"Your app does not stop working. Nuxt 3 stays on npm and your site keeps serving pages. What changes is what happens when something goes wrong.",{"type":36,"image":37,"children":83},"image",{"id":38,"ext":39,"url":40,"hash":41,"mime":42,"name":43,"size":44,"width":45,"height":46,"formats":47,"provider":80,"createdAt":81,"updatedAt":81,"alternativeText":82},273,".png","https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fnuxt_version_support_timeline_a75c3138af.png","nuxt_version_support_timeline_a75c3138af","image\u002Fpng","nuxt-version-support-timeline.png",48.55,1536,1024,{"large":48,"small":57,"medium":65,"thumbnail":72},{"ext":39,"url":49,"hash":50,"mime":42,"name":51,"path":52,"size":53,"width":54,"height":55,"sizeInBytes":56},"\u002Fuploads\u002Flarge_nuxt_version_support_timeline_a75c3138af.png","large_nuxt_version_support_timeline_a75c3138af","large_nuxt-version-support-timeline.png",null,186.16,1000,667,186158,{"ext":39,"url":58,"hash":59,"mime":42,"name":60,"path":52,"size":61,"width":62,"height":63,"sizeInBytes":64},"\u002Fuploads\u002Fsmall_nuxt_version_support_timeline_a75c3138af.png","small_nuxt_version_support_timeline_a75c3138af","small_nuxt-version-support-timeline.png",70.04,500,333,70041,{"ext":39,"url":66,"hash":67,"mime":42,"name":68,"path":52,"size":69,"width":70,"height":62,"sizeInBytes":71},"\u002Fuploads\u002Fmedium_nuxt_version_support_timeline_a75c3138af.png","medium_nuxt_version_support_timeline_a75c3138af","medium_nuxt-version-support-timeline.png",124.13,750,124128,{"ext":39,"url":73,"hash":74,"mime":42,"name":75,"path":52,"size":76,"width":77,"height":78,"sizeInBytes":79},"\u002Fuploads\u002Fthumbnail_nuxt_version_support_timeline_a75c3138af.png","thumbnail_nuxt_version_support_timeline_a75c3138af","thumbnail_nuxt-version-support-timeline.png",23.39,234,156,23391,"local","2026-11-11T11:43:59.583Z","Timeline of Nuxt major versions showing Nuxt 2 supported from September 2018 to June 2024, Nuxt 3 from November 2022 to July 2026, Nuxt 4 from July 2025 and still supported, and Nuxt 5 estimated for the fourth quarter of 2026",[84],{"text":85,"type":18},"",{"type":26,"level":87,"children":88},3,[89],{"text":90,"type":18},"No more security patches",{"type":13,"children":92},[93,95,101,103,108,110,115],{"text":94,"type":18},"The ",{"url":96,"type":97,"children":98},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","link",[99],{"text":100,"type":18},"Nuxt roadmap",{"text":102,"type":18}," lists 3.x as unsupported, with an end-of-life date of 31 July 2026. The ",{"url":104,"type":97,"children":105},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fv4",[106],{"text":107,"type":18},"Nuxt 4 announcement",{"text":109,"type":18}," originally promised maintenance only until the end of January 2026, which is why some articles still quote that date. It was later moved to 31 July, and that date has now passed. The independent tracker ",{"url":111,"type":97,"children":112},"https:\u002F\u002Fendoflife.date\u002Fnuxt",[113],{"text":114,"type":18},"endoflife.date",{"text":116,"type":18}," shows the same dates.",{"type":13,"children":118},[119,121,126],{"text":120,"type":18},"The effect is already visible. On 2 November 2026 the Nuxt team shipped version 4.6.4, described in the ",{"url":122,"type":97,"children":123},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Freleases\u002Ftag\u002Fv4.6.4",[124],{"text":125,"type":18},"release notes",{"text":127,"type":18}," as a security release fixing eight advisories in Nuxt and three more in Nitro, its server engine. There was no matching 3.x release. Whether or not those issues affect Nuxt 3, nobody upstream is checking or patching that line any more.",{"type":26,"level":87,"children":129},[130],{"text":131,"type":18},"Compliance and customer questionnaires",{"type":13,"children":133},[134,136,141],{"text":135,"type":18},"Running unsupported software is a recognised risk category. OWASP's Top 10 entry on ",{"url":137,"type":97,"children":138},"https:\u002F\u002Ftop10.owasp.org\u002F2021\u002FA06_2021-Vulnerable_and_Outdated_Components",[139],{"text":140,"type":18},"Vulnerable and Outdated Components",{"text":142,"type":18}," says you are likely vulnerable \"if the software is vulnerable, unsupported, or out of date\". If you sell to enterprises or hold SOC 2, ISO 27001 or PCI obligations, an end-of-life framework is a finding you will have to explain, with either a migration date or a compensating control.",{"type":26,"level":87,"children":144},[145],{"text":146,"type":18},"Module support dries up",{"type":13,"children":148},[149,151,156],{"text":150,"type":18},"Module authors build and test against the current major version. Over time, new releases of official and community modules tend to stop supporting the old one, so a Nuxt 3 app ends up pinned to older versions of its dependencies as well. It is the pattern we describe in our post on ",{"url":152,"type":97,"children":153},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Flegacy-system-modernization-mistakes-ai-workflows",[154],{"text":155,"type":18},"legacy system modernisation mistakes",{"text":157,"type":18},": the upgrade never gets cheaper by waiting.",{"type":26,"level":27,"children":159},[160],{"text":161,"type":18},"What changed in Nuxt 4, in plain language",{"type":13,"children":163},[164],{"text":165,"type":18},"Nuxt 4 went stable on 16 July 2025 after a year of public testing. The team called it a stability-focused release, and that is fair: there is no new rendering model and no rewrite of how pages are built. The main changes are:",{"type":167,"format":168,"children":169},"list","unordered",[170,181,187,193],{"type":171,"children":172},"list-item",[173,175,177,179],{"bold":16,"text":174,"type":18},"A tidier project layout.",{"text":176,"type":18}," Application code moves into an ",{"code":16,"text":178,"type":18},"app\u002F",{"text":180,"type":18}," folder. Nuxt still detects the old layout, so the move is recommended, not forced.",{"type":171,"children":182},[183,185],{"bold":16,"text":184,"type":18},"More consistent data fetching.",{"text":186,"type":18}," The functions that load page data share results more predictably and have slightly different defaults. Most of the real code review goes here.",{"type":171,"children":188},[189,191],{"bold":16,"text":190,"type":18},"Stricter TypeScript.",{"text":192,"type":18}," App code and server code are type-checked separately, which often surfaces bugs that were already there.",{"type":171,"children":194},[195,197],{"bold":16,"text":196,"type":18},"Updated metadata handling.",{"text":198,"type":18}," The library that manages titles and meta tags moved to a new major version, which matters for SEO.",{"type":13,"children":200},[201,203,208],{"text":202,"type":18},"The Nuxt team wrote that they hoped \"most Nuxt 3 projects can upgrade with a minimum of effort\". The ",{"url":204,"type":97,"children":205},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade",[206],{"text":207,"type":18},"official upgrade guide",{"text":209,"type":18}," rates each change by impact, and most are marked minimal. It also ships a codemod that applies the mechanical changes automatically:",{"type":211,"children":212,"language":215},"code",[213],{"text":214,"type":18},"npx codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe","plaintext",{"type":13,"children":217},[218],{"text":219,"type":18},"The guide pins a specific codemod version, so check it for the current one. The codemod handles the repetitive edits. It does not test your app, check your modules or confirm your pages still render the same HTML. That is the part you pay people for.",{"type":26,"level":27,"children":221},[222],{"text":223,"type":18},"Migrate to Nuxt 4 now or wait for Nuxt 5?",{"type":13,"children":225},[226,228,233],{"text":227,"type":18},"There is a serious argument for waiting. TuxCare, which sells extended support for Nuxt 3, ",{"url":229,"type":97,"children":230},"https:\u002F\u002Ftuxcare.com\u002Fblog\u002Fnuxt-3-eol\u002F",[231],{"text":232,"type":18},"sets it out clearly",{"text":234,"type":18},": \"If you migrate 3 to 4 now, you're committing to another migration cycle once Nuxt 5 ships.\" Their alternative is to stay on Nuxt 3 with paid security cover, skip Nuxt 4 and jump straight to Nuxt 5 once it stabilises. To be fair to them, the same article says that \"for most Nuxt 3 apps, upgrading to Nuxt 4 is the right move.\"",{"type":13,"children":236},[237],{"text":238,"type":18},"We agree with that last sentence. We have a commercial interest too, since we do migrations, so here is the reasoning for you to judge.",{"type":26,"level":87,"children":240},[241],{"text":242,"type":18},"Where Nuxt 5 actually stands",{"type":13,"children":244},[245,247,252,254,259,261,266],{"text":246,"type":18},"The roadmap lists Nuxt 5 as \"Q4 2026 (estimated)\". As of 11 November 2026 there is no stable, beta or release-candidate version of Nuxt 5 on the ",{"url":248,"type":97,"children":249},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Freleases",[250],{"text":251,"type":18},"releases page",{"text":253,"type":18},", and the ",{"url":255,"type":97,"children":256},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade",[257],{"text":258,"type":18},"Nuxt 5 upgrade guide",{"text":260,"type":18}," says it \"is still in development\". Its biggest change is Nitro v3, which the guide calls \"a major rewrite of the server engine\". Nitro v3 itself only reached release-candidate stage at the end of October 2026, according to its ",{"url":262,"type":97,"children":263},"https:\u002F\u002Fgithub.com\u002Fnitrojs\u002Fnitro\u002Freleases",[264],{"text":265,"type":18},"release history",{"text":267,"type":18},".",{"type":13,"children":269},[270],{"text":271,"type":18},"An estimate is not a date. Even once Nuxt 5 ships, community modules need time to catch up with a rewritten server engine before a production app can safely move.",{"type":26,"level":87,"children":273},[274],{"text":275,"type":18},"Why Nuxt 4 is not a wasted step",{"type":13,"children":277},[278],{"text":279,"type":18},"Three facts weaken the \"two migrations\" objection:",{"type":167,"format":281,"children":282},"ordered",[283,289,306],{"type":171,"children":284},[285,287],{"bold":16,"text":286,"type":18},"The support window is defined.",{"text":288,"type":18}," Nuxt commits \"to support each major version of Nuxt for a minimum of six months after the release of the next major version\". Since Nuxt 5 has not shipped, Nuxt 4 is covered until at least May 2027, and later for every week Nuxt 5 slips.",{"type":171,"children":290},[291,293,295,300,302,304],{"bold":16,"text":292,"type":18},"Nuxt 4 is the on-ramp to Nuxt 5.",{"text":294,"type":18}," The ",{"url":296,"type":97,"children":297},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fv4-6",[298],{"text":299,"type":18},"Nuxt 4.6 release post",{"text":301,"type":18}," says \"most of what's new in Nuxt 5 is already in 4.6, either on by default or behind a flag\". One setting, ",{"code":16,"text":303,"type":18},"future.compatibilityVersion: 5",{"text":305,"type":18},", switches on the Nuxt 5 defaults inside Nuxt 4 so a team can fix what breaks at its own pace.",{"type":171,"children":307},[308,310],{"bold":16,"text":309,"type":18},"Skipping a major doubles the jump.",{"text":311,"type":18}," Going from 3 to 5 means absorbing the Nuxt 4 changes and the Nitro rewrite in one release, on an app that has had no security fixes in the meantime. Two small, tested steps carry less risk than one large one.",{"type":26,"level":87,"children":313},[314],{"text":315,"type":18},"A decision by app type",{"type":36,"image":317,"children":350},{"id":318,"ext":39,"url":319,"hash":320,"mime":42,"name":321,"size":322,"width":45,"height":46,"formats":323,"provider":80,"createdAt":348,"updatedAt":348,"alternativeText":349},274,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fnuxt_migrate_now_or_wait_decision_056c60fa46.png","nuxt_migrate_now_or_wait_decision_056c60fa46","nuxt-migrate-now-or-wait-decision.png",59.04,{"large":324,"small":330,"medium":336,"thumbnail":342},{"ext":39,"url":325,"hash":326,"mime":42,"name":327,"path":52,"size":328,"width":54,"height":55,"sizeInBytes":329},"\u002Fuploads\u002Flarge_nuxt_migrate_now_or_wait_decision_056c60fa46.png","large_nuxt_migrate_now_or_wait_decision_056c60fa46","large_nuxt-migrate-now-or-wait-decision.png",237.97,237965,{"ext":39,"url":331,"hash":332,"mime":42,"name":333,"path":52,"size":334,"width":62,"height":63,"sizeInBytes":335},"\u002Fuploads\u002Fsmall_nuxt_migrate_now_or_wait_decision_056c60fa46.png","small_nuxt_migrate_now_or_wait_decision_056c60fa46","small_nuxt-migrate-now-or-wait-decision.png",86.23,86228,{"ext":39,"url":337,"hash":338,"mime":42,"name":339,"path":52,"size":340,"width":70,"height":62,"sizeInBytes":341},"\u002Fuploads\u002Fmedium_nuxt_migrate_now_or_wait_decision_056c60fa46.png","medium_nuxt_migrate_now_or_wait_decision_056c60fa46","medium_nuxt-migrate-now-or-wait-decision.png",156.43,156425,{"ext":39,"url":343,"hash":344,"mime":42,"name":345,"path":52,"size":346,"width":77,"height":78,"sizeInBytes":347},"\u002Fuploads\u002Fthumbnail_nuxt_migrate_now_or_wait_decision_056c60fa46.png","thumbnail_nuxt_migrate_now_or_wait_decision_056c60fa46","thumbnail_nuxt-migrate-now-or-wait-decision.png",27.97,27969,"2026-11-11T11:44:01.667Z","Decision matrix showing whether to migrate to Nuxt 4 now or wait, for seven situations: public marketing and content sites, SaaS dashboards, apps under compliance audits, apps on Nuxt 2, apps blocked by a module, apps in a change freeze, and apps being retired",[351],{"text":85,"type":18},{"type":167,"format":168,"children":353},[354,360,366,372,378,384,390],{"type":171,"children":355},[356,358],{"bold":16,"text":357,"type":18},"Public marketing or content site:",{"text":359,"type":18}," migrate now. It is public, the job is small and search traffic depends on it.",{"type":171,"children":361},[362,364],{"bold":16,"text":363,"type":18},"SaaS dashboard holding customer data:",{"text":365,"type":18}," migrate now. An unpatched server layer in front of user accounts is a poor place to economise.",{"type":171,"children":367},[368,370],{"bold":16,"text":369,"type":18},"App under SOC 2, ISO 27001 or PCI audit:",{"text":371,"type":18}," migrate now, or buy extended support to cover the gap until you can.",{"type":171,"children":373},[374,376],{"bold":16,"text":375,"type":18},"Still on Nuxt 2:",{"text":377,"type":18}," start now and go straight to Nuxt 4.",{"type":171,"children":379},[380,382],{"bold":16,"text":381,"type":18},"Blocked by a module with no Nuxt 4 version:",{"text":383,"type":18}," replace the module if you can. If you truly cannot, wait with extended support and review the position each quarter.",{"type":171,"children":385},[386,388],{"bold":16,"text":387,"type":18},"In a change freeze or regulated release window:",{"text":389,"type":18}," wait with extended support, and use the time to prepare in place.",{"type":171,"children":391},[392,394],{"bold":16,"text":393,"type":18},"Being retired within months:",{"text":395,"type":18}," do not migrate. Limit its exposure and switch it off on schedule.",{"type":26,"level":87,"children":397},[398],{"text":399,"type":18},"If you do wait, wait with cover",{"type":13,"children":401},[402,404,409],{"text":403,"type":18},"Commercial extended support exists for this case. ",{"url":405,"type":97,"children":406},"https:\u002F\u002Fwww.herodevs.com\u002Fsupport\u002Fnuxt-nes",[407],{"text":408,"type":18},"HeroDevs",{"text":410,"type":18}," offers Never-Ending Support covering Nuxt 2.x and 3.x, and TuxCare sells a similar service. Both provide patched builds of the framework. They are a reasonable bridge and a poor destination: you pay a subscription to stand still while your modules keep ageing. Put an end date on it.",{"type":26,"level":27,"children":412},[413],{"text":414,"type":18},"What drives Nuxt migration cost and effort",{"type":13,"children":416},[417],{"text":418,"type":18},"We are not going to print a price here. Nuxt migration cost depends on the codebase, and any number given without seeing yours would be a guess. What we can tell you is what moves the estimate.",{"type":36,"image":420,"children":453},{"id":421,"ext":39,"url":422,"hash":423,"mime":42,"name":424,"size":425,"width":45,"height":46,"formats":426,"provider":80,"createdAt":451,"updatedAt":451,"alternativeText":452},275,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fnuxt_migration_effort_drivers_55e50d4e94.png","nuxt_migration_effort_drivers_55e50d4e94","nuxt-migration-effort-drivers.png",43.52,{"large":427,"small":433,"medium":439,"thumbnail":445},{"ext":39,"url":428,"hash":429,"mime":42,"name":430,"path":52,"size":431,"width":54,"height":55,"sizeInBytes":432},"\u002Fuploads\u002Flarge_nuxt_migration_effort_drivers_55e50d4e94.png","large_nuxt_migration_effort_drivers_55e50d4e94","large_nuxt-migration-effort-drivers.png",192.16,192162,{"ext":39,"url":434,"hash":435,"mime":42,"name":436,"path":52,"size":437,"width":62,"height":63,"sizeInBytes":438},"\u002Fuploads\u002Fsmall_nuxt_migration_effort_drivers_55e50d4e94.png","small_nuxt_migration_effort_drivers_55e50d4e94","small_nuxt-migration-effort-drivers.png",73.13,73129,{"ext":39,"url":440,"hash":441,"mime":42,"name":442,"path":52,"size":443,"width":70,"height":62,"sizeInBytes":444},"\u002Fuploads\u002Fmedium_nuxt_migration_effort_drivers_55e50d4e94.png","medium_nuxt_migration_effort_drivers_55e50d4e94","medium_nuxt-migration-effort-drivers.png",126.77,126771,{"ext":39,"url":446,"hash":447,"mime":42,"name":448,"path":52,"size":449,"width":77,"height":78,"sizeInBytes":450},"\u002Fuploads\u002Fthumbnail_nuxt_migration_effort_drivers_55e50d4e94.png","thumbnail_nuxt_migration_effort_drivers_55e50d4e94","thumbnail_nuxt-migration-effort-drivers.png",24.55,24548,"2026-11-11T11:44:03.864Z","Chart of five Nuxt migration effort drivers (number of modules, custom modules and plugins, data fetching complexity, testing needed and SEO verification) rated low, medium or high for a small site, a content platform and a SaaS dashboard",[454],{"text":85,"type":18},{"type":167,"format":168,"children":456},[457,463,469,475,487],{"type":171,"children":458},[459,461],{"bold":16,"text":460,"type":18},"Module count.",{"text":462,"type":18}," Every module is a compatibility check. Ten well-maintained official modules are easy. Three abandoned community ones are not.",{"type":171,"children":464},[465,467],{"bold":16,"text":466,"type":18},"Custom modules and plugins.",{"text":468,"type":18}," Code that hooks into Nuxt's internals is the code most likely to break, and no codemod understands it.",{"type":171,"children":470},[471,473],{"bold":16,"text":472,"type":18},"Data fetching complexity.",{"text":474,"type":18}," The more pages load data in unusual ways, the more of the Nuxt 4 changes need human review.",{"type":171,"children":476},[477,479,481,486],{"bold":16,"text":478,"type":18},"Test coverage.",{"text":480,"type":18}," With good automated tests, most of the checking is automatic. Without them, every page is checked by hand or tests are written first. See our post on ",{"url":482,"type":97,"children":483},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fnon-functional-testing-software-scaling",[484],{"text":485,"type":18},"non-functional testing",{"text":267,"type":18},{"type":171,"children":488},[489,491],{"bold":16,"text":490,"type":18},"Starting point.",{"text":492,"type":18}," Nuxt 3 to 4 is an upgrade. Nuxt 2 to 4 is a migration to a different version of Vue, and a different size of budget.",{"type":26,"level":87,"children":494},[495],{"text":496,"type":18},"How that plays out for three typical apps",{"type":13,"children":498},[499,501],{"bold":16,"text":500,"type":18},"A small marketing site",{"text":502,"type":18}," has few pages, a handful of official modules and little custom code. The work is mostly mechanical, and more of the effort goes into verifying SEO parity than changing code.",{"type":13,"children":504},[505,507,509,514],{"bold":16,"text":506,"type":18},"A content platform",{"text":508,"type":18}," (a blog, documentation site or headless storefront) has many templates, a CMS integration and heavy prerendering. Effort concentrates in data fetching and page-by-page verification, because organic traffic is the business. If your content lives in a headless CMS, give the integration its own line in the plan (our ",{"url":510,"type":97,"children":511},"https:\u002F\u002Fnetling.digital\u002Fhire\u002Fstrapi-developers",[512],{"text":513,"type":18},"Strapi developers",{"text":515,"type":18}," cover that side).",{"type":13,"children":517},[518,520],{"bold":16,"text":519,"type":18},"A SaaS dashboard",{"text":521,"type":18}," has authentication, complex state, custom plugins and server routes. SEO matters less behind a login, but custom code and stricter TypeScript checks take longer, and test coverage decides how calm the release is.",{"type":13,"children":523},[524,526,531,533,538],{"text":525,"type":18},"A proper estimate starts with an audit: every module, plugin, store and build customisation, marked as compatible, replaceable or removable. That is the first step of the staged playbook we use when clients ",{"url":527,"type":97,"children":528},"https:\u002F\u002Fnetling.digital\u002Fhire\u002Fnuxt-developers",[529],{"text":530,"type":18},"hire Nuxt developers",{"text":532,"type":18}," from us: audit what you have, prepare in place, migrate in slices, verify page by page, then cut over and clean up. For wider budgeting context, see our guide to ",{"url":534,"type":97,"children":535},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fcustom-web-application-development-cost-2026",[536],{"text":537,"type":18},"custom web application development cost",{"text":267,"type":18},{"type":26,"level":27,"children":540},[541],{"text":542,"type":18},"Keeping your search rankings through the move",{"type":13,"children":544},[545],{"text":546,"type":18},"A framework upgrade should be invisible to Google: same URLs, same content, same or better speed. Rankings are lost when something small changes unnoticed across hundreds of pages, so we compare old and new, page by page, on five points.",{"type":36,"image":548,"children":581},{"id":549,"ext":39,"url":550,"hash":551,"mime":42,"name":552,"size":553,"width":45,"height":46,"formats":554,"provider":80,"createdAt":579,"updatedAt":579,"alternativeText":580},276,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fnuxt_migration_seo_checklist_illustration_5f39d54973.png","nuxt_migration_seo_checklist_illustration_5f39d54973","nuxt-migration-seo-checklist-illustration.png",31.78,{"large":555,"small":561,"medium":567,"thumbnail":573},{"ext":39,"url":556,"hash":557,"mime":42,"name":558,"path":52,"size":559,"width":54,"height":55,"sizeInBytes":560},"\u002Fuploads\u002Flarge_nuxt_migration_seo_checklist_illustration_5f39d54973.png","large_nuxt_migration_seo_checklist_illustration_5f39d54973","large_nuxt-migration-seo-checklist-illustration.png",152.89,152885,{"ext":39,"url":562,"hash":563,"mime":42,"name":564,"path":52,"size":565,"width":62,"height":63,"sizeInBytes":566},"\u002Fuploads\u002Fsmall_nuxt_migration_seo_checklist_illustration_5f39d54973.png","small_nuxt_migration_seo_checklist_illustration_5f39d54973","small_nuxt-migration-seo-checklist-illustration.png",58.21,58211,{"ext":39,"url":568,"hash":569,"mime":42,"name":570,"path":52,"size":571,"width":70,"height":62,"sizeInBytes":572},"\u002Fuploads\u002Fmedium_nuxt_migration_seo_checklist_illustration_5f39d54973.png","medium_nuxt_migration_seo_checklist_illustration_5f39d54973","medium_nuxt-migration-seo-checklist-illustration.png",101.44,101442,{"ext":39,"url":574,"hash":575,"mime":42,"name":576,"path":52,"size":577,"width":77,"height":78,"sizeInBytes":578},"\u002Fuploads\u002Fthumbnail_nuxt_migration_seo_checklist_illustration_5f39d54973.png","thumbnail_nuxt_migration_seo_checklist_illustration_5f39d54973","thumbnail_nuxt-migration-seo-checklist-illustration.png",21.62,21624,"2026-11-11T11:44:06.183Z","Flat illustration of a Nuxt migration SEO checklist with five checks: rendered HTML, redirects, metadata, structured data and Core Web Vitals",[582],{"text":85,"type":18},{"type":167,"format":168,"children":584},[585,598,611,617,623],{"type":171,"children":586},[587,589,591,596],{"bold":16,"text":588,"type":18},"Rendered HTML parity.",{"text":590,"type":18}," The HTML the server sends must contain the same headings, copy and links as before. Google's ",{"url":592,"type":97,"children":593},"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fcrawling-indexing\u002Fjavascript\u002Fjavascript-seo-basics",[594],{"text":595,"type":18},"JavaScript SEO guidance",{"text":597,"type":18}," notes that server-side or pre-rendering \"is still a great idea because it makes your website faster for users and crawlers\".",{"type":171,"children":599},[600,602,604,609],{"bold":16,"text":601,"type":18},"Redirects.",{"text":603,"type":18}," Ideally no URL changes at all. If any do, Google's ",{"url":605,"type":97,"children":606},"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fcrawling-indexing\u002Fsite-move-with-url-changes",[607],{"text":608,"type":18},"site move documentation",{"text":610,"type":18}," recommends mapping every old URL to its new one with permanent server-side redirects, and keeping them \"for as long as possible, generally at least 1 year\".",{"type":171,"children":612},[613,615],{"bold":16,"text":614,"type":18},"Metadata.",{"text":616,"type":18}," Titles, descriptions, canonical tags and hreflang come from the library that changed in Nuxt 4. Compare them across every route.",{"type":171,"children":618},[619,621],{"bold":16,"text":620,"type":18},"Structured data.",{"text":622,"type":18}," JSON-LD for articles, products, FAQs and breadcrumbs is easy to drop silently. Validate it before and after.",{"type":171,"children":624},[625,627,629,634],{"bold":16,"text":626,"type":18},"Core Web Vitals.",{"text":628,"type":18}," Per ",{"url":630,"type":97,"children":631},"https:\u002F\u002Fweb.dev\u002Farticles\u002Fvitals",[632],{"text":633,"type":18},"web.dev",{"text":635,"type":18},", a good page has a Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint of 200 milliseconds or less and Cumulative Layout Shift of 0.1 or less, measured at the 75th percentile of page loads. Record your numbers before the migration so you can prove they held.",{"type":13,"children":637},[638,640,644],{"text":639,"type":18},"After launch, watch Search Console and your server error rates for a few weeks. This verification stage is where a specialist ",{"url":527,"type":97,"children":641},[642],{"text":643,"type":18},"Nuxt development agency",{"text":645,"type":18}," earns its fee. The upgrade commands are public. The discipline of checking every template is not.",{"type":26,"level":27,"children":647},[648],{"text":649,"type":18},"Still on Nuxt 2? The longer path",{"type":13,"children":651},[652,654,659],{"text":653,"type":18},"Nuxt 2 ",{"url":655,"type":97,"children":656},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fnuxt2-eol",[657],{"text":658,"type":18},"reached end of life on 30 June 2024",{"text":660,"type":18},", so these apps have now been without upstream security fixes for more than two years. The path is longer because Nuxt 2 runs on Vue 2, and Nuxt 3 and 4 run on Vue 3. Three pieces of work dominate:",{"type":167,"format":168,"children":662},[663,669,675],{"type":171,"children":664},[665,667],{"bold":16,"text":666,"type":18},"Vuex to Pinia.",{"text":668,"type":18}," State management moves to Pinia, the store Vue now recommends.",{"type":171,"children":670},[671,673],{"bold":16,"text":672,"type":18},"Options API to Composition API.",{"text":674,"type":18}," Not every component has to be rewritten, but mixins and anything built on Nuxt 2-only features do.",{"type":171,"children":676},[677,679],{"bold":16,"text":678,"type":18},"Modules and build setup.",{"text":680,"type":18}," Nuxt 2 modules have to be replaced with versions built for Nuxt 3 and later, some have no direct successor, and the default build tool changes from webpack to Vite.",{"type":13,"children":682},[683],{"text":684,"type":18},"Nuxt Bridge, which the Nuxt docs describe as \"a compatibility layer that allows you to use Nuxt 3+ features in Nuxt 2 with an opt-in mechanism\", can shorten the path for large apps. For small ones it is often quicker to skip it.",{"type":13,"children":686},[687,689,694,696,701],{"text":688,"type":18},"Do not migrate to Nuxt 3 on the way. It is end of life too. Go straight to Nuxt 4, in slices, with old and new running side by side behind a proxy so releases continue. If your app is plain Vue 2 with Vuex rather than Nuxt, the same staged approach applies, and our ",{"url":690,"type":97,"children":691},"https:\u002F\u002Fnetling.digital\u002Fhire\u002Fvue-developers",[692],{"text":693,"type":18},"Vue.js developers",{"text":695,"type":18}," handle those upgrades. Agencies with client sites on old versions can run this under their own brand through our ",{"url":697,"type":97,"children":698},"https:\u002F\u002Fnetling.digital\u002Fservices\u002Fwhite-label-web-development",[699],{"text":700,"type":18},"white-label web development",{"text":702,"type":18}," service.",{"type":26,"level":27,"children":704},[705],{"text":706,"type":18},"Frequently asked questions",{"type":26,"level":87,"children":708},[709],{"text":710,"type":18},"Is Nuxt 3 still supported?",{"type":13,"children":712},[713],{"text":714,"type":18},"No. Nuxt 3 reached end of life on 31 July 2026 and no longer receives security or bug fixes from the Nuxt team. Nuxt 4 is the only supported major version.",{"type":26,"level":87,"children":716},[717],{"text":718,"type":18},"When will Nuxt 5 be released?",{"type":13,"children":720},[721],{"text":722,"type":18},"The official roadmap lists Nuxt 5 as \"Q4 2026 (estimated)\". As of 11 November 2026 it has not been released, and its upgrade guide describes it as still in development.",{"type":26,"level":87,"children":724},[725],{"text":726,"type":18},"Should I skip Nuxt 4 and go straight to Nuxt 5?",{"type":13,"children":728},[729],{"text":730,"type":18},"For most apps, no. Nuxt 4 is supported for at least six months after Nuxt 5 ships, and it lets you switch on Nuxt 5 behaviour early with a compatibility flag. Skipping it means running unpatched software until Nuxt 5 and its modules are stable.",{"type":26,"level":87,"children":732},[733],{"text":734,"type":18},"How hard is it to upgrade Nuxt 3 to Nuxt 4?",{"type":13,"children":736},[737],{"text":738,"type":18},"For most apps it is a modest upgrade. The official codemod handles the mechanical changes. Module count, custom code and test coverage decide the rest.",{"type":26,"level":87,"children":740},[741],{"text":742,"type":18},"Can I migrate from Nuxt 2 directly to Nuxt 4?",{"type":13,"children":744},[745],{"text":746,"type":18},"Yes, and you should, since Nuxt 3 is also end of life. It is a larger project because it includes the move from Vue 2 to Vue 3, Vuex to Pinia and a new build setup, so it is best done in stages.",{"type":26,"level":27,"children":748},[749],{"text":750,"type":18},"Final thoughts",{"type":13,"children":752},[753],{"text":754,"type":18},"The Nuxt 3 end of life is not an emergency, but it should not be ignored. For most teams the sensible move is to upgrade to Nuxt 4 now while the step is small, switch on the Nuxt 5 compatibility flag when you are ready, and take Nuxt 5 as a routine upgrade once it and your modules have settled. If you have to wait, do it with extended support and a date in the calendar.",{"type":13,"children":756},[757,759,762,764,769,771,776,778,783],{"text":758,"type":18},"This website runs on Nuxt 4, and migrations are the most common reason teams ",{"url":527,"type":97,"children":760},[761],{"text":530,"type":18},{"text":763,"type":18}," from us. If you want a written audit and a staged plan before you commit a budget, ",{"url":765,"type":97,"children":766},"https:\u002F\u002Fnetling.digital\u002Fcontact",[767],{"text":768,"type":18},"tell us about your app",{"text":770,"type":18}," or ",{"url":772,"type":97,"children":773},"https:\u002F\u002Fnetling.digital\u002Fbriefings\u002Fnew",[774],{"text":775,"type":18},"send us a project brief",{"text":777,"type":18},". To hand over upgrades for good, our ",{"url":779,"type":97,"children":780},"https:\u002F\u002Fnetling.digital\u002Fservices\u002Fsupport",[781],{"text":782,"type":18},"Support service",{"text":784,"type":18}," covers dependency updates, monitoring and fixes for live apps.",12,"2026-11-11T11:44:50.136Z","2026-11-11T11:45:10.654Z","2026-11-11T11:45:10.668Z",{"id":790,"documentId":791,"name":792,"alternativeText":793,"caption":52,"focalPoint":52,"width":45,"height":46,"formats":794,"hash":819,"ext":39,"mime":42,"size":820,"url":821,"previewUrl":52,"provider":80,"provider_metadata":52,"createdAt":822,"updatedAt":822,"publishedAt":822},277,"ctozfg7kw04e5vjdr0qx98o2","nuxt-3-end-of-life-migration-featured.png","Flat illustration of an ageing Nuxt 3 browser window with a warning sign, packages moving along an arrow to a new Nuxt 4 window with a security shield, and Nuxt 5 waiting in a cloud",{"large":795,"small":801,"medium":807,"thumbnail":813},{"ext":39,"url":796,"hash":797,"mime":42,"name":798,"path":52,"size":799,"width":54,"height":55,"sizeInBytes":800},"\u002Fuploads\u002Flarge_nuxt_3_end_of_life_migration_featured_876f194c0b.png","large_nuxt_3_end_of_life_migration_featured_876f194c0b","large_nuxt-3-end-of-life-migration-featured.png",160.23,160233,{"ext":39,"url":802,"hash":803,"mime":42,"name":804,"path":52,"size":805,"width":62,"height":63,"sizeInBytes":806},"\u002Fuploads\u002Fsmall_nuxt_3_end_of_life_migration_featured_876f194c0b.png","small_nuxt_3_end_of_life_migration_featured_876f194c0b","small_nuxt-3-end-of-life-migration-featured.png",61.54,61537,{"ext":39,"url":808,"hash":809,"mime":42,"name":810,"path":52,"size":811,"width":70,"height":62,"sizeInBytes":812},"\u002Fuploads\u002Fmedium_nuxt_3_end_of_life_migration_featured_876f194c0b.png","medium_nuxt_3_end_of_life_migration_featured_876f194c0b","medium_nuxt-3-end-of-life-migration-featured.png",104.76,104757,{"ext":39,"url":814,"hash":815,"mime":42,"name":816,"path":52,"size":817,"width":77,"height":78,"sizeInBytes":818},"\u002Fuploads\u002Fthumbnail_nuxt_3_end_of_life_migration_featured_876f194c0b.png","thumbnail_nuxt_3_end_of_life_migration_featured_876f194c0b","thumbnail_nuxt-3-end-of-life-migration-featured.png",24.46,24457,"nuxt_3_end_of_life_migration_featured_876f194c0b",30.21,"\u002Fuploads\u002Fnuxt_3_end_of_life_migration_featured_876f194c0b.png","2026-11-11T11:44:08.449Z",{"id":824,"documentId":825,"name":826,"slug":827,"bio":52,"role":52,"createdAt":828,"updatedAt":828,"publishedAt":829,"avatar":52},1,"h4kjkxx21z2xnvlilq2k2tur","Penny","penny","2026-02-27T14:08:48.813Z","2026-02-27T14:08:48.809Z",{"id":27,"documentId":831,"name":832,"slug":833,"description":52,"createdAt":834,"updatedAt":834,"publishedAt":835},"aiqdyvvrlyrpxrmncdpbz7ak","Software Engineering","software-engineering","2026-02-28T14:42:59.642Z","2026-02-28T14:42:59.635Z",[837,844,851,858,865,872,879],{"id":838,"documentId":839,"name":840,"slug":841,"createdAt":842,"updatedAt":842,"publishedAt":843},27,"v0u3tuq65w0rt1lcneyqa8ox","Web Development","web-development","2026-03-09T18:03:33.558Z","2026-03-09T18:03:33.555Z",{"id":845,"documentId":846,"name":847,"slug":848,"createdAt":849,"updatedAt":849,"publishedAt":850},6,"c6iri774b1wrn8xzvql4e6l7","Legacy Modernization","legacy-modernization","2026-02-28T14:20:13.770Z","2026-02-28T14:20:13.765Z",{"id":852,"documentId":853,"name":854,"slug":855,"createdAt":856,"updatedAt":856,"publishedAt":857},8,"o0jbtayqo8l191uveuahlh4r","Technical Debt","technical-debt","2026-02-28T14:20:13.804Z","2026-02-28T14:20:13.801Z",{"id":859,"documentId":860,"name":861,"slug":862,"createdAt":863,"updatedAt":863,"publishedAt":864},40,"t11eo3nz5cy5u8mp5ac2xnw3","CTO Guide","cto-guide","2026-03-17T21:32:37.849Z","2026-03-17T21:32:37.847Z",{"id":866,"documentId":867,"name":868,"slug":869,"createdAt":870,"updatedAt":870,"publishedAt":871},49,"cye3m1j9rerohi886p99ayt7","Nuxt","nuxt","2026-11-11T11:44:50.083Z","2026-11-11T11:44:50.081Z",{"id":873,"documentId":874,"name":875,"slug":876,"createdAt":877,"updatedAt":877,"publishedAt":878},48,"sh1algn1h61ex2cgi23pnvvs","Vue.js","vue-js","2026-11-11T11:44:50.080Z","2026-11-11T11:44:50.077Z",{"id":880,"documentId":881,"name":882,"slug":883,"createdAt":884,"updatedAt":884,"publishedAt":885},47,"ritvo0e6xgojyjldo1gyoam3","Framework Migration","framework-migration","2026-11-11T11:44:50.079Z","2026-11-11T11:44:50.074Z",{"id":887,"metaTitle":888,"metaDescription":889,"keywords":890,"metaRobots":891,"metaViewport":52,"canonicalURL":892,"structuredData":893,"metaImage":909,"openGraph":52},61,"Nuxt 3 End of Life: Migrate to Nuxt 4 or Wait for Nuxt 5?","Nuxt 3 reached end of life on 31 July 2026. See what it means, whether to migrate to Nuxt 4 now or wait for Nuxt 5, and what drives migration effort.","nuxt 3 end of life, nuxt 3 eol, nuxt 3 to nuxt 4 migration, upgrade nuxt 3 to nuxt 4, nuxt 4 migration guide, nuxt 5 release date, nuxt 4 vs nuxt 5, nuxt migration cost, nuxt migration services, nuxt 2 to nuxt 4 migration, nuxt 3 security support","index,follow","https:\u002F\u002Fnetling.digital\u002Fblog\u002Fnuxt-3-end-of-life-migrate-to-nuxt-4",{"@type":894,"@context":895,"mainEntity":896},"FAQPage","https:\u002F\u002Fschema.org",[897,901,903,905,907],{"name":710,"@type":898,"acceptedAnswer":899},"Question",{"text":714,"@type":900},"Answer",{"name":718,"@type":898,"acceptedAnswer":902},{"text":722,"@type":900},{"name":726,"@type":898,"acceptedAnswer":904},{"text":730,"@type":900},{"name":734,"@type":898,"acceptedAnswer":906},{"text":738,"@type":900},{"name":742,"@type":898,"acceptedAnswer":908},{"text":746,"@type":900},{"id":790,"documentId":791,"name":792,"alternativeText":793,"caption":52,"focalPoint":52,"width":45,"height":46,"formats":910,"hash":819,"ext":39,"mime":42,"size":820,"url":821,"previewUrl":52,"provider":80,"provider_metadata":52,"createdAt":822,"updatedAt":822,"publishedAt":822},{"large":911,"small":912,"medium":913,"thumbnail":914},{"ext":39,"url":796,"hash":797,"mime":42,"name":798,"path":52,"size":799,"width":54,"height":55,"sizeInBytes":800},{"ext":39,"url":802,"hash":803,"mime":42,"name":804,"path":52,"size":805,"width":62,"height":63,"sizeInBytes":806},{"ext":39,"url":808,"hash":809,"mime":42,"name":810,"path":52,"size":811,"width":70,"height":62,"sizeInBytes":812},{"ext":39,"url":814,"hash":815,"mime":42,"name":816,"path":52,"size":817,"width":77,"height":78,"sizeInBytes":818},{"pagination":916},{"page":824,"pageSize":824,"pageCount":824,"total":824},{"data":918,"meta":3333},[919,1793,2702],{"publishedAt":920,"id":921,"documentId":922,"title":923,"slug":924,"excerpt":925,"content":926,"readingTime":785,"createdAt":1717,"updatedAt":1718,"featuredImage":1719,"author":1753,"category":1754,"tags":1755},"2026-11-11T12:31:49.221Z",68,"tn2pfkc51myppfnv7n7dehrx","PHP2Shell and PHP 8.2 End of Life: What to Do With Your Client WordPress Sites Before 2027","php2shell-php-8-2-end-of-life-wordpress","PHP2Shell needs patching now and PHP 8.2 loses security support on 31 December 2026. Here is how to check a WordPress site, sort a portfolio of client sites and upgrade each one to PHP 8.3 or 8.4 safely.",[927,932,936,940,951,962,998,1002,1006,1017,1021,1025,1061,1099,1103,1107,1118,1122,1126,1130,1157,1161,1165,1176,1180,1184,1188,1192,1196,1210,1214,1225,1247,1251,1262,1298,1318,1322,1326,1330,1369,1373,1377,1411,1415,1419,1446,1457,1461,1465,1469,1505,1525,1529,1533,1537,1588,1597,1601,1605,1609,1619,1623,1637,1640,1644,1648,1652,1656,1660,1664,1668,1672,1676,1680,1683,1687,1707],{"type":13,"children":928},[929,930],{"bold":16,"text":17,"type":18},{"text":931,"type":18}," PHP2Shell is a pair of critical PHP flaws (CVE-2026-109618 and CVE-2026-109619) that are being exploited now. Every WordPress site needs to be on a fixed build today: PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35, or a patched package from your host. Separately, PHP 8.2 end of life is 31 December 2026, after which it gets no security fixes at all, and several managed hosts remove it earlier in December. Treat both as one job: confirm the patch this week, then move every site you look after to PHP 8.3 at minimum, and ideally 8.4, before the year ends.",{"type":13,"children":933},[934],{"text":935,"type":18},"Agencies look after more WordPress sites than they have usually counted in one place, and most business owners have one on hosting someone else chose years ago. This guide covers PHP2Shell for WordPress sites in plain language, what PHP 8.2 end of life changes, how to sort a portfolio of client sites, and a routine for upgrading each one without breaking it.",{"type":26,"level":27,"children":937},[938],{"text":939,"type":18},"Two deadlines, one job",{"type":13,"children":941},[942,944,949],{"text":943,"type":18},"The first deadline has already passed. On 21 October 2026 the PHP project released emergency security updates and ",{"url":945,"type":97,"children":946},"https:\u002F\u002Fwww.php.net\u002Farchive\u002F2026.php",[947],{"text":948,"type":18},"asked all users to update immediately",{"text":950,"type":18},". Any site still on an older build is exposed today.",{"type":13,"children":952},[953,955,960],{"text":954,"type":18},"The second deadline is 31 December 2026. The official ",{"url":956,"type":97,"children":957},"https:\u002F\u002Fwww.php.net\u002Fsupported-versions.php",[958],{"text":959,"type":18},"supported versions page",{"text":961,"type":18}," lists that as the last day of security support for PHP 8.2. The PHP 8.2.35 release note says it plainly: 8.2 \"will receive no further security fixes after that date\".",{"type":36,"image":963,"children":996},{"id":964,"ext":39,"url":965,"hash":966,"mime":42,"name":967,"size":968,"width":45,"height":46,"formats":969,"provider":80,"createdAt":994,"updatedAt":994,"alternativeText":995},278,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fphp_version_support_timeline_2026_8425630555.png","php_version_support_timeline_2026_8425630555","php-version-support-timeline-2026.png",44.18,{"large":970,"small":976,"medium":982,"thumbnail":988},{"ext":39,"url":971,"hash":972,"mime":42,"name":973,"path":52,"size":974,"width":54,"height":55,"sizeInBytes":975},"\u002Fuploads\u002Flarge_php_version_support_timeline_2026_8425630555.png","large_php_version_support_timeline_2026_8425630555","large_php-version-support-timeline-2026.png",169.34,169342,{"ext":39,"url":977,"hash":978,"mime":42,"name":979,"path":52,"size":980,"width":62,"height":63,"sizeInBytes":981},"\u002Fuploads\u002Fsmall_php_version_support_timeline_2026_8425630555.png","small_php_version_support_timeline_2026_8425630555","small_php-version-support-timeline-2026.png",63.88,63881,{"ext":39,"url":983,"hash":984,"mime":42,"name":985,"path":52,"size":986,"width":70,"height":62,"sizeInBytes":987},"\u002Fuploads\u002Fmedium_php_version_support_timeline_2026_8425630555.png","medium_php_version_support_timeline_2026_8425630555","medium_php-version-support-timeline-2026.png",113.82,113822,{"ext":39,"url":989,"hash":990,"mime":42,"name":991,"path":52,"size":992,"width":77,"height":78,"sizeInBytes":993},"\u002Fuploads\u002Fthumbnail_php_version_support_timeline_2026_8425630555.png","thumbnail_php_version_support_timeline_2026_8425630555","thumbnail_php-version-support-timeline-2026.png",22.66,22660,"2026-11-11T12:31:08.398Z","Timeline of PHP 8.1 to 8.5 support windows showing PHP 8.1 ended on 31 December 2025, PHP 8.2 security fixes ending on 31 December 2026, PHP 8.3 on 31 December 2027, PHP 8.4 on 31 December 2028 and PHP 8.5 on 31 December 2029, with the PHP2Shell fix date of 21 October 2026 and today marked",[997],{"text":85,"type":18},{"type":13,"children":999},[1000],{"text":1001,"type":18},"Both are solved in the same place, the PHP version on the server, so run them as one project and test each client site once.",{"type":26,"level":27,"children":1003},[1004],{"text":1005,"type":18},"PHP2Shell in plain language",{"type":13,"children":1007},[1008,1010,1015],{"text":1009,"type":18},"PHP is the programming language WordPress runs on. PHP2Shell is the nickname for two flaws in PHP itself, not in WordPress, a theme or a plugin. They can let an attacker run their own code on the web server without logging in. The PHP security team rated both 9.2 out of 10 on the CVSS v4.0 scale. Security firm ",{"url":1011,"type":97,"children":1012},"https:\u002F\u002Fpatchstack.com\u002Farticles\u002Fphp-major-vulnerability-alert-10-2026\u002F",[1013],{"text":1014,"type":18},"Patchstack",{"text":1016,"type":18},", which credits the name to Wiz Research, reports that at least one of the two issues affects every PHP version back to 5.4.",{"type":13,"children":1018},[1019],{"text":1020,"type":18},"Because the flaw sits below WordPress, updating WordPress core or plugins does nothing about it. PHP's release notes are blunt: \"There are no complete mitigations, updating is the only safe choice.\"",{"type":26,"level":87,"children":1022},[1023],{"text":1024,"type":18},"Which PHP versions are fixed",{"type":36,"image":1026,"children":1059},{"id":1027,"ext":39,"url":1028,"hash":1029,"mime":42,"name":1030,"size":1031,"width":45,"height":46,"formats":1032,"provider":80,"createdAt":1057,"updatedAt":1057,"alternativeText":1058},279,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fphp2shell_fixed_versions_by_branch_b9130e8ef4.png","php2shell_fixed_versions_by_branch_b9130e8ef4","php2shell-fixed-versions-by-branch.png",54.14,{"large":1033,"small":1039,"medium":1045,"thumbnail":1051},{"ext":39,"url":1034,"hash":1035,"mime":42,"name":1036,"path":52,"size":1037,"width":54,"height":55,"sizeInBytes":1038},"\u002Fuploads\u002Flarge_php2shell_fixed_versions_by_branch_b9130e8ef4.png","large_php2shell_fixed_versions_by_branch_b9130e8ef4","large_php2shell-fixed-versions-by-branch.png",221.17,221166,{"ext":39,"url":1040,"hash":1041,"mime":42,"name":1042,"path":52,"size":1043,"width":62,"height":63,"sizeInBytes":1044},"\u002Fuploads\u002Fsmall_php2shell_fixed_versions_by_branch_b9130e8ef4.png","small_php2shell_fixed_versions_by_branch_b9130e8ef4","small_php2shell-fixed-versions-by-branch.png",81.43,81428,{"ext":39,"url":1046,"hash":1047,"mime":42,"name":1048,"path":52,"size":1049,"width":70,"height":62,"sizeInBytes":1050},"\u002Fuploads\u002Fmedium_php2shell_fixed_versions_by_branch_b9130e8ef4.png","medium_php2shell_fixed_versions_by_branch_b9130e8ef4","medium_php2shell-fixed-versions-by-branch.png",145.98,145977,{"ext":39,"url":1052,"hash":1053,"mime":42,"name":1054,"path":52,"size":1055,"width":77,"height":78,"sizeInBytes":1056},"\u002Fuploads\u002Fthumbnail_php2shell_fixed_versions_by_branch_b9130e8ef4.png","thumbnail_php2shell_fixed_versions_by_branch_b9130e8ef4","thumbnail_php2shell-fixed-versions-by-branch.png",27.55,27545,"2026-11-11T12:31:10.723Z","Lookup table of PHP branches and the release that fixes PHP2Shell: 8.5.12, 8.4.27, 8.3.36 and 8.2.35 for supported branches, source-only backports for PHP 8.1, 8.0 and 7.4, and no fix from the PHP project for 7.3 and older",[1060],{"text":85,"type":18},{"type":167,"format":168,"children":1062},[1063,1069,1075,1081,1087,1093],{"type":171,"children":1064},[1065,1067],{"bold":16,"text":1066,"type":18},"PHP 8.5:",{"text":1068,"type":18}," fixed in 8.5.12",{"type":171,"children":1070},[1071,1073],{"bold":16,"text":1072,"type":18},"PHP 8.4:",{"text":1074,"type":18}," fixed in 8.4.27",{"type":171,"children":1076},[1077,1079],{"bold":16,"text":1078,"type":18},"PHP 8.3:",{"text":1080,"type":18}," fixed in 8.3.36",{"type":171,"children":1082},[1083,1085],{"bold":16,"text":1084,"type":18},"PHP 8.2:",{"text":1086,"type":18}," fixed in 8.2.35",{"type":171,"children":1088},[1089,1091],{"bold":16,"text":1090,"type":18},"PHP 8.1, 8.0 and 7.4:",{"text":1092,"type":18}," no official release, only minimal source-code backports for people who build PHP themselves. Some hosts and Linux distributions ship their own patched packages.",{"type":171,"children":1094},[1095,1097],{"bold":16,"text":1096,"type":18},"PHP 7.3 and older:",{"text":1098,"type":18}," nothing from the PHP project.",{"type":13,"children":1100},[1101],{"text":1102,"type":18},"We checked php.net on 11 November 2026, and these are still the current releases. A related issue, CVE-2026-115560, is waiting for the next regular PHP release. PHP calls the setup it needs unlikely in practice, but the \"fixed\" version numbers will move again soon. Patching is never done once.",{"type":26,"level":87,"children":1104},[1105],{"text":1106,"type":18},"What \"exploited in the wild\" means for an ordinary site",{"type":13,"children":1108},[1109,1111,1116],{"text":1110,"type":18},"On 26 October 2026 the US cybersecurity agency CISA added both flaws to its ",{"url":1112,"type":97,"children":1113},"https:\u002F\u002Fwww.cisa.gov\u002Fknown-exploited-vulnerabilities-catalog",[1114],{"text":1115,"type":18},"Known Exploited Vulnerabilities catalog",{"text":1117,"type":18},", its list of bugs that attackers are known to be using, and gave US federal agencies until 29 October to deal with them.",{"type":13,"children":1119},[1120],{"text":1121,"type":18},"That does not mean somebody has singled out your site. Attacks like this are automated sweeps of the whole internet, and they find a five-page brochure site as easily as a busy store. Being small is no protection.",{"type":26,"level":87,"children":1123},[1124],{"text":1125,"type":18},"Who actually applies the patch",{"type":13,"children":1127},[1128],{"text":1129,"type":18},"There is no \"update PHP\" button in the WordPress dashboard. Who patches depends on the hosting.",{"type":167,"format":168,"children":1131},[1132,1145,1151],{"type":171,"children":1133},[1134,1136,1138,1143],{"bold":16,"text":1135,"type":18},"Managed WordPress hosting:",{"text":1137,"type":18}," the host patches PHP for you. Kinsta, for example, ",{"url":1139,"type":97,"children":1140},"https:\u002F\u002Fkinsta.com\u002Fblog\u002Fphp2shell-kinsta-wordpress\u002F",[1141],{"text":1142,"type":18},"said",{"text":1144,"type":18}," its customers \"don’t need to install any patches or make changes to their websites\" because the fix was applied across its platform. Look for a statement like this from your own host.",{"type":171,"children":1146},[1147,1149],{"bold":16,"text":1148,"type":18},"Shared hosting with a control panel:",{"text":1150,"type":18}," the host updates PHP, but you usually choose which branch each site uses. On a very old branch, the host may have had nothing to install.",{"type":171,"children":1152},[1153,1155],{"bold":16,"text":1154,"type":18},"A VPS, cloud server or anything self-managed:",{"text":1156,"type":18}," you, or whoever set the server up, must install the update. If that person has moved on, nobody is doing it.",{"type":13,"children":1158},[1159],{"text":1160,"type":18},"Most agencies have all three across their client list.",{"type":26,"level":27,"children":1162},[1163],{"text":1164,"type":18},"How to check a WordPress site's PHP version",{"type":13,"children":1166},[1167,1169,1174],{"text":1168,"type":18},"WordPress shows the PHP version itself. Log in as an administrator and go to Tools, then Site Health, then the Info tab, and open the Server section. The ",{"url":1170,"type":97,"children":1171},"https:\u002F\u002Fwordpress.org\u002Fdocumentation\u002Farticle\u002Fsite-health-screen\u002F",[1172],{"text":1173,"type":18},"Site Health documentation",{"text":1175,"type":18}," describes each panel, and the Status tab warns you when the site \"is running an outdated version of PHP, which requires an update\".",{"type":26,"level":87,"children":1177},[1178],{"text":1179,"type":18},"Why the exact patch release matters",{"type":13,"children":1181},[1182],{"text":1183,"type":18},"\"PHP 8.2\" is not an answer. PHP 8.2.34 is vulnerable and 8.2.35 is fixed, and they look identical in most hosting dashboards. You need the full three-part number.",{"type":13,"children":1185},[1186],{"text":1187,"type":18},"There is a catch. Hosts that patch end-of-life branches themselves usually keep the old version number, so a site showing 8.1 or 7.4 may or may not be patched. You cannot tell from the dashboard.",{"type":26,"level":87,"children":1189},[1190],{"text":1191,"type":18},"What to ask the host",{"type":13,"children":1193},[1194],{"text":1195,"type":18},"Send the same three questions for every hosting account and keep the replies:",{"type":167,"format":281,"children":1197},[1198,1202,1206],{"type":171,"children":1199},[1200],{"text":1201,"type":18},"Which exact PHP build is this site running, and does it include the fixes for CVE-2026-109618 and CVE-2026-109619?",{"type":171,"children":1203},[1204],{"text":1205,"type":18},"On what date was the fix applied, and did it cover staging and inactive environments too?",{"type":171,"children":1207},[1208],{"text":1209,"type":18},"On what date will you remove PHP 8.2, and what happens to sites still on it?",{"type":26,"level":27,"children":1211},[1212],{"text":1213,"type":18},"PHP 8.2 end of life: why this is the same story",{"type":13,"children":1215},[1216,1218,1223],{"text":1217,"type":18},"PHP 8.2 received a proper PHP2Shell fix for one reason: it was still inside its security support window. PHP 8.1 left that window on 31 December 2025, according to PHP's ",{"url":1219,"type":97,"children":1220},"https:\u002F\u002Fwww.php.net\u002Feol.php",[1221],{"text":1222,"type":18},"end-of-life list",{"text":1224,"type":18},". Ten months later its users got a source patch and a suggestion to ask their vendor. PHP 8.2 users will be in that position from 1 January 2027.",{"type":13,"children":1226},[1227,1229,1233,1235,1240,1242,1246],{"text":1228,"type":18},"OWASP's Top 10 entry on ",{"url":1230,"type":97,"children":1231},"https:\u002F\u002Ftop10.owasp.org\u002F2021\u002FA06_2021-Vulnerable_and_Outdated_Components\u002F",[1232],{"text":140,"type":18},{"text":1234,"type":18}," says you are likely vulnerable \"if the software is vulnerable, unsupported, or out of date\". CISA's ",{"url":1236,"type":97,"children":1237},"https:\u002F\u002Fwww.cisa.gov\u002Fnews-events\u002Falerts\u002F2026\u002F10\u002F21\u002Fcritical-vulnerabilities-php-require-immediate-patching",[1238],{"text":1239,"type":18},"PHP2Shell alert",{"text":1241,"type":18}," went further and advised taking systems offline if they cannot be updated or run PHP 8.1 or earlier. We covered the same pattern for JavaScript frameworks in our post on the ",{"url":892,"type":97,"children":1243},[1244],{"text":1245,"type":18},"Nuxt 3 end of life",{"text":267,"type":18},{"type":26,"level":87,"children":1248},[1249],{"text":1250,"type":18},"How many WordPress sites are affected",{"type":13,"children":1252},[1253,1255,1260],{"text":1254,"type":18},"We read the figures behind the WordPress.org ",{"url":1256,"type":97,"children":1257},"https:\u002F\u002Fwordpress.org\u002Fabout\u002Fstats\u002F",[1258],{"text":1259,"type":18},"statistics page",{"text":1261,"type":18}," on 11 November 2026:",{"type":36,"image":1263,"children":1296},{"id":1264,"ext":39,"url":1265,"hash":1266,"mime":42,"name":1267,"size":1268,"width":45,"height":46,"formats":1269,"provider":80,"createdAt":1294,"updatedAt":1294,"alternativeText":1295},280,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fwordpress_sites_by_php_version_af9f5c5f93.png","wordpress_sites_by_php_version_af9f5c5f93","wordpress-sites-by-php-version.png",43.36,{"large":1270,"small":1276,"medium":1282,"thumbnail":1288},{"ext":39,"url":1271,"hash":1272,"mime":42,"name":1273,"path":52,"size":1274,"width":54,"height":55,"sizeInBytes":1275},"\u002Fuploads\u002Flarge_wordpress_sites_by_php_version_af9f5c5f93.png","large_wordpress_sites_by_php_version_af9f5c5f93","large_wordpress-sites-by-php-version.png",171.56,171563,{"ext":39,"url":1277,"hash":1278,"mime":42,"name":1279,"path":52,"size":1280,"width":62,"height":63,"sizeInBytes":1281},"\u002Fuploads\u002Fsmall_wordpress_sites_by_php_version_af9f5c5f93.png","small_wordpress_sites_by_php_version_af9f5c5f93","small_wordpress-sites-by-php-version.png",64.64,64640,{"ext":39,"url":1283,"hash":1284,"mime":42,"name":1285,"path":52,"size":1286,"width":70,"height":62,"sizeInBytes":1287},"\u002Fuploads\u002Fmedium_wordpress_sites_by_php_version_af9f5c5f93.png","medium_wordpress_sites_by_php_version_af9f5c5f93","medium_wordpress-sites-by-php-version.png",114.36,114356,{"ext":39,"url":1289,"hash":1290,"mime":42,"name":1291,"path":52,"size":1292,"width":77,"height":78,"sizeInBytes":1293},"\u002Fuploads\u002Fthumbnail_wordpress_sites_by_php_version_af9f5c5f93.png","thumbnail_wordpress_sites_by_php_version_af9f5c5f93","thumbnail_wordpress-sites-by-php-version.png",22.01,22009,"2026-11-11T12:31:12.935Z","Bar chart of the share of WordPress sites on each PHP version: 6.5% on PHP 8.5, 10.8% on 8.4, 28.0% on 8.3, 22.5% on 8.2, 9.1% on 8.1, 3.3% on 8.0, 14.4% on 7.4 and 5.3% on 7.3 or older",[1297],{"text":85,"type":18},{"type":167,"format":168,"children":1299},[1300,1306,1312],{"type":171,"children":1301},[1302,1304],{"bold":16,"text":1303,"type":18},"45.3%",{"text":1305,"type":18}," of WordPress sites run PHP 8.3 or newer, which keeps security support into 2027 and beyond.",{"type":171,"children":1307},[1308,1310],{"bold":16,"text":1309,"type":18},"22.5%",{"text":1311,"type":18}," run PHP 8.2, which loses it on 31 December 2026.",{"type":171,"children":1313},[1314,1316],{"bold":16,"text":1315,"type":18},"32.2%",{"text":1317,"type":18}," run PHP 8.1 or older, which is already unsupported. PHP 7.4 alone accounts for 14.4%.",{"type":13,"children":1319},[1320],{"text":1321,"type":18},"Put together, 54.7% of WordPress sites will be on an unsupported PHP version on New Year's Day unless someone moves them.",{"type":26,"level":87,"children":1323},[1324],{"text":1325,"type":18},"Your host may switch before PHP does",{"type":13,"children":1327},[1328],{"text":1329,"type":18},"Managed hosts do not wait for 31 December. Three published schedules:",{"type":167,"format":168,"children":1331},[1332,1345,1357],{"type":171,"children":1333},[1334,1336,1338,1343],{"bold":16,"text":1335,"type":18},"Pressable",{"text":1337,"type":18}," ",{"url":1339,"type":97,"children":1340},"https:\u002F\u002Fpressable.com\u002Fknowledgebase\u002Fphp-update-faqs\u002F",[1341],{"text":1342,"type":18},"retires PHP 8.2 on 8 December 2026",{"text":1344,"type":18}," and automatically moves remaining sites to the next PHP version.",{"type":171,"children":1346},[1347,1349,1350,1355],{"bold":16,"text":1348,"type":18},"WP Cloud",{"text":1337,"type":18},{"url":1351,"type":97,"children":1352},"https:\u002F\u002Fwp.cloud\u002Fpreparing-for-the-removal-of-php-8-2\u002F",[1353],{"text":1354,"type":18},"removes PHP 8.2 on 15 December 2026",{"text":1356,"type":18}," at 12:00 UTC.",{"type":171,"children":1358},[1359,1361,1363,1368],{"bold":16,"text":1360,"type":18},"WordPress VIP",{"text":1362,"type":18}," starts ",{"url":1364,"type":97,"children":1365},"https:\u002F\u002Fcustomerhub.wpvip.com\u002Flobby\u002F2026\u002F01\u002F21\u002Fplanning-your-2026-php-8-3-update\u002F",[1366],{"text":1367,"type":18},"updating non-production environments to PHP 8.3 on 16 November 2026 and production on 7 December 2026",{"text":267,"type":18},{"type":13,"children":1370},[1371],{"text":1372,"type":18},"An untested switch on the host's timetable, in the busiest retail month of the year, is the outcome to avoid. Find your host's date and work back from it.",{"type":26,"level":27,"children":1374},[1375],{"text":1376,"type":18},"Which PHP version to move to",{"type":167,"format":168,"children":1378},[1379,1392,1405],{"type":171,"children":1380},[1381,1383,1385,1390],{"bold":16,"text":1382,"type":18},"PHP 8.3 is the minimum.",{"text":1384,"type":18}," WordPress's own ",{"url":1386,"type":97,"children":1387},"https:\u002F\u002Fwordpress.org\u002Fabout\u002Frequirements\u002F",[1388],{"text":1389,"type":18},"requirements page",{"text":1391,"type":18}," recommends \"PHP version 8.3 or greater\". Security support runs to 31 December 2027, so it buys one year.",{"type":171,"children":1393},[1394,1396,1398,1403],{"bold":16,"text":1395,"type":18},"PHP 8.4 is the target.",{"text":1397,"type":18}," Security support runs to 31 December 2028: two quiet years instead of one. The WordPress core team's ",{"url":1399,"type":97,"children":1400},"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002Fhandbook\u002Freferences\u002Fphp-compatibility-and-wordpress-versions\u002F",[1401],{"text":1402,"type":18},"PHP compatibility table",{"text":1404,"type":18}," lists WordPress 7.0 and 7.1 as supporting it.",{"type":171,"children":1406},[1407,1409],{"bold":16,"text":1408,"type":18},"PHP 8.5 is fine for well-kept sites.",{"text":1410,"type":18}," It is covered until 31 December 2029, but only 6.5% of WordPress sites run it so far, so less common plugins have had less real-world use on it. PHP 8.6 is not out yet (the first stable release is planned for 19 November 2026) and is too new for client sites.",{"type":26,"level":87,"children":1412},[1413],{"text":1414,"type":18},"What tends to break",{"type":13,"children":1416},[1417],{"text":1418,"type":18},"A current WordPress release is rarely the problem. The risk is everything added to it:",{"type":167,"format":168,"children":1420},[1421,1434,1440],{"type":171,"children":1422},[1423,1425,1427,1432],{"bold":16,"text":1424,"type":18},"Abandoned plugins.",{"text":1426,"type":18}," Patchstack's ",{"url":1428,"type":97,"children":1429},"https:\u002F\u002Fpatchstack.com\u002Fwhitepaper\u002Fstate-of-wordpress-security-in-2026\u002F",[1430],{"text":1431,"type":18},"State of WordPress Security in 2026",{"text":1433,"type":18}," counted 11,334 new vulnerabilities in the WordPress ecosystem in 2025, 91% of them in plugins, and found that 46% had no fix from the developer in time for public disclosure. A plugin nobody maintains has not been tested on PHP 8.4 either.",{"type":171,"children":1435},[1436,1438],{"bold":16,"text":1437,"type":18},"Old premium themes.",{"text":1439,"type":18}," Bought once, customised heavily and never updated, because updating would wipe the changes.",{"type":171,"children":1441},[1442,1444],{"bold":16,"text":1443,"type":18},"Custom code.",{"text":1445,"type":18}," Snippets in the theme, a bespoke plugin from a previous developer, or an integration with a booking or payment system.",{"type":13,"children":1447},[1448,1450,1455],{"text":1449,"type":18},"The size of the jump matters. From 8.2 to 8.3 or 8.4, problems are mostly warnings about outdated code. From 7.4 you cross a major version in which PHP became stricter and removed old features, and that is where white screens come from. If the site no longer has a developer, that is the moment to ",{"url":1451,"type":97,"children":1452},"https:\u002F\u002Fnetling.digital\u002Fhire\u002Fwordpress-developers",[1453],{"text":1454,"type":18},"hire a WordPress developer",{"text":1456,"type":18}," to take it over.",{"type":26,"level":27,"children":1458},[1459],{"text":1460,"type":18},"Triage for a portfolio of client sites",{"type":13,"children":1462},[1463],{"text":1464,"type":18},"Start with a spreadsheet: one row per site, with the host, who controls the server, the exact PHP version, the WordPress version and whether a staging copy exists. You will reuse this list every year.",{"type":13,"children":1466},[1467],{"text":1468,"type":18},"One rule applies to every row: the site must be on a fixed PHP build this week, whatever branch it is on. Then put each site in one of three groups.",{"type":36,"image":1470,"children":1503},{"id":1471,"ext":39,"url":1472,"hash":1473,"mime":42,"name":1474,"size":1475,"width":45,"height":46,"formats":1476,"provider":80,"createdAt":1501,"updatedAt":1501,"alternativeText":1502},281,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fwordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d.png","wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d","wordpress-client-sites-php-upgrade-triage-illustration.png",29.21,{"large":1477,"small":1483,"medium":1489,"thumbnail":1495},{"ext":39,"url":1478,"hash":1479,"mime":42,"name":1480,"path":52,"size":1481,"width":54,"height":55,"sizeInBytes":1482},"\u002Fuploads\u002Flarge_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d.png","large_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d","large_wordpress-client-sites-php-upgrade-triage-illustration.png",150.63,150629,{"ext":39,"url":1484,"hash":1485,"mime":42,"name":1486,"path":52,"size":1487,"width":62,"height":63,"sizeInBytes":1488},"\u002Fuploads\u002Fsmall_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d.png","small_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d","small_wordpress-client-sites-php-upgrade-triage-illustration.png",57.65,57653,{"ext":39,"url":1490,"hash":1491,"mime":42,"name":1492,"path":52,"size":1493,"width":70,"height":62,"sizeInBytes":1494},"\u002Fuploads\u002Fmedium_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d.png","medium_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d","medium_wordpress-client-sites-php-upgrade-triage-illustration.png",99.4,99402,{"ext":39,"url":1496,"hash":1497,"mime":42,"name":1498,"path":52,"size":1499,"width":77,"height":78,"sizeInBytes":1500},"\u002Fuploads\u002Fthumbnail_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d.png","thumbnail_wordpress_client_sites_php_upgrade_triage_illustration_bff02fe97d","thumbnail_wordpress-client-sites-php-upgrade-triage-illustration.png",21.74,21738,"2026-11-11T12:31:14.874Z","Flat illustration of client website windows being sorted into three trays: patch now, needs work and retire",[1504],{"text":85,"type":18},{"type":167,"format":281,"children":1506},[1507,1513,1519],{"type":171,"children":1508},[1509,1511],{"bold":16,"text":1510,"type":18},"Patch now.",{"text":1512,"type":18}," Healthy sites on current WordPress with maintained plugins and theme. Confirm the fixed build, test on staging and switch to PHP 8.4. Each site is a small job.",{"type":171,"children":1514},[1515,1517],{"bold":16,"text":1516,"type":18},"Needs work.",{"text":1518,"type":18}," Sites that throw errors on staging, or that are still on 7.4, 8.0 or 8.1 because something broke the last time anyone tried. Get a patched package from the host as a stopgap, then schedule development time to replace the dead plugin, repair the theme or fix the custom code.",{"type":171,"children":1520},[1521,1523],{"bold":16,"text":1522,"type":18},"Retire.",{"text":1524,"type":18}," Old campaign microsites, sites for clients who stopped paying, forgotten staging copies and demos. Nobody will fund fixing them, so archive each one as static pages or take it offline. An unpatched site nobody owns puts everything else on the same server at risk.",{"type":13,"children":1526},[1527],{"text":1528,"type":18},"Within each group, start with stores, membership sites and anything holding personal data, then servers you manage yourself, then sites on a host with a December cut-off.",{"type":26,"level":27,"children":1530},[1531],{"text":1532,"type":18},"The per-site upgrade routine",{"type":13,"children":1534},[1535],{"text":1536,"type":18},"For each site in the first two groups, the routine is the same:",{"type":167,"format":281,"children":1538},[1539,1545,1551,1557,1563,1576,1582],{"type":171,"children":1540},[1541,1543],{"bold":16,"text":1542,"type":18},"Back up.",{"text":1544,"type":18}," Take a full backup of files and database and confirm it restores.",{"type":171,"children":1546},[1547,1549],{"bold":16,"text":1548,"type":18},"Copy to staging.",{"text":1550,"type":18}," Use the host's staging feature or a private copy. Never test on the live site.",{"type":171,"children":1552},[1553,1555],{"bold":16,"text":1554,"type":18},"Update first.",{"text":1556,"type":18}," Bring WordPress core, plugins and the theme up to date on staging before touching PHP, so you change one thing at a time.",{"type":171,"children":1558},[1559,1561],{"bold":16,"text":1560,"type":18},"Check compatibility.",{"text":1562,"type":18}," Check each plugin and the theme for a recent update and stated support for your target PHP version. Have a developer review custom code.",{"type":171,"children":1564},[1565,1567,1569,1574],{"bold":16,"text":1566,"type":18},"Switch staging and read the error log.",{"text":1568,"type":18}," Turn on ",{"url":1570,"type":97,"children":1571},"https:\u002F\u002Fdeveloper.wordpress.org\u002Fadvanced-administration\u002Fdebug\u002Fdebug-wordpress\u002F",[1572],{"text":1573,"type":18},"WordPress debug logging",{"text":1575,"type":18},", then click through the pages that matter: forms, checkout, login, search and the editor. A page that looks fine can still be logging errors.",{"type":171,"children":1577},[1578,1580],{"bold":16,"text":1579,"type":18},"Switch live at a quiet time.",{"text":1581,"type":18}," Keep the previous version available as a rollback for a few days.",{"type":171,"children":1583},[1584,1586],{"bold":16,"text":1585,"type":18},"Monitor.",{"text":1587,"type":18}," Watch the error log, form submissions and orders for a week, then update your spreadsheet.",{"type":13,"children":1589},[1590,1592,1595],{"text":1591,"type":18},"On a \"needs work\" site, step 4 becomes a small development project. Our post on ",{"url":482,"type":97,"children":1593},[1594],{"text":485,"type":18},{"text":1596,"type":18}," explains why untested changes carry the risk.",{"type":26,"level":27,"children":1598},[1599],{"text":1600,"type":18},"Talking to clients, and where this fits in a care plan",{"type":13,"children":1602},[1603],{"text":1604,"type":18},"Clients do not need the CVE numbers. They need three things: a serious flaw was found in the software underneath every WordPress site, theirs has been checked and patched, and its PHP version is being retired in December, so you recommend moving it now. Send that before they read about PHP2Shell elsewhere.",{"type":13,"children":1606},[1607],{"text":1608,"type":18},"Be clear about what is included. On a care plan, the patch check and a routine PHP switch should sit inside it. Replacing an abandoned plugin or repairing an old theme is development work, and it is fair to quote for it separately. If the client has no plan, this is an honest moment to offer one.",{"type":13,"children":1610},[1611,1613,1618],{"text":1612,"type":18},"PHP retires a branch every December: 8.1 in 2025, 8.2 this year, 8.3 in 2027. A care plan that lists an annual PHP review alongside core, theme and plugin updates turns a yearly scramble into a calendar entry. It is also predictable, recurring work that is easy to hand to a delivery partner, as we explain in our post on ",{"url":1614,"type":97,"children":1615},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fwhite-label-agency-partnership-growth",[1616],{"text":1617,"type":18},"white-label partnerships for agencies",{"text":267,"type":18},{"type":26,"level":87,"children":1620},[1621],{"text":1622,"type":18},"If you do not have the hands",{"type":13,"children":1624},[1625,1627,1631,1633,1636],{"text":1626,"type":18},"Thirty sites, each needing a backup, a staging test and a log review, is real work on top of a full pipeline. It is the maintenance and takeover work our WordPress team does: core, theme and plugin updates, bug fixes and small changes, including for sites another developer built and left behind. Agencies use our ",{"url":1451,"type":97,"children":1628},[1629],{"text":1630,"type":18},"white-label WordPress development",{"text":1632,"type":18}," for it, with our developers working in your tools, under NDA, and never contacting your clients unless you ask. One-off clean-ups can run on hourly billing, and ongoing care can run on a monthly retainer with timesheets you can bill from. For work beyond WordPress, see our ",{"url":697,"type":97,"children":1634},[1635],{"text":700,"type":18},{"text":702,"type":18},{"type":26,"level":27,"children":1638},[1639],{"text":706,"type":18},{"type":26,"level":87,"children":1641},[1642],{"text":1643,"type":18},"What is PHP2Shell?",{"type":13,"children":1645},[1646],{"text":1647,"type":18},"PHP2Shell is the nickname for two critical vulnerabilities in PHP, CVE-2026-109618 and CVE-2026-109619, fixed on 21 October 2026. They can let an attacker run code on a web server without logging in, and CISA lists both as actively exploited.",{"type":26,"level":87,"children":1649},[1650],{"text":1651,"type":18},"Does PHP2Shell affect WordPress sites?",{"type":13,"children":1653},[1654],{"text":1655,"type":18},"Yes. WordPress runs on PHP, so any WordPress site on an unpatched PHP build is exposed, whatever plugins or theme it uses. Updating WordPress does not fix it. The host, or whoever manages the server, has to update PHP.",{"type":26,"level":87,"children":1657},[1658],{"text":1659,"type":18},"Which PHP version fixes PHP2Shell?",{"type":13,"children":1661},[1662],{"text":1663,"type":18},"PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35. PHP 8.1, 8.0 and 7.4 received source-code backports only, so sites on those branches depend on a patched package from their host or Linux distribution. PHP 7.3 and older received nothing from the PHP project.",{"type":26,"level":87,"children":1665},[1666],{"text":1667,"type":18},"When is PHP 8.2 end of life?",{"type":13,"children":1669},[1670],{"text":1671,"type":18},"PHP 8.2 security support ends on 31 December 2026, after which it receives no fixes from the PHP project. Some managed WordPress hosts remove it earlier: Pressable on 8 December 2026 and WP Cloud on 15 December 2026.",{"type":26,"level":87,"children":1673},[1674],{"text":1675,"type":18},"Which PHP version should a WordPress site use now?",{"type":13,"children":1677},[1678],{"text":1679,"type":18},"PHP 8.3 at minimum, which WordPress itself recommends, and PHP 8.4 for most sites because it has security support until 31 December 2028. Test on a staging copy first, since old plugins, themes and custom code are what usually break.",{"type":26,"level":27,"children":1681},[1682],{"text":750,"type":18},{"type":13,"children":1684},[1685],{"text":1686,"type":18},"Confirm every site is on a patched build this week, sort your sites into patch now, needs work and retire, and move the first two groups to PHP 8.3 or 8.4 before your host's December cut-off does it for you.",{"type":13,"children":1688},[1689,1691,1695,1697,1701,1702,1706],{"text":1690,"type":18},"If you would rather hand the list to someone, you can ",{"url":1451,"type":97,"children":1692},[1693],{"text":1694,"type":18},"hire WordPress developers",{"text":1696,"type":18}," from us for a one-off clean-up or an ongoing retainer, under your own brand if you are an agency. ",{"url":765,"type":97,"children":1698},[1699],{"text":1700,"type":18},"Tell us how many sites you look after",{"text":770,"type":18},{"url":772,"type":97,"children":1703},[1704],{"text":1705,"type":18},"send us a brief",{"text":267,"type":18},{"type":13,"children":1708},[1709,1711,1716],{"text":1710,"type":18},"Image credit: the PHP logo in the featured image is by Colin Viebrock, used unmodified under ",{"url":1712,"type":97,"children":1713},"https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-sa\u002F4.0\u002F",[1714],{"text":1715,"type":18},"CC BY-SA 4.0",{"text":267,"type":18},"2026-11-11T12:31:31.742Z","2026-11-11T12:31:49.208Z",{"id":1720,"documentId":1721,"name":1722,"alternativeText":1723,"caption":52,"focalPoint":52,"width":45,"height":46,"formats":1724,"hash":1749,"ext":39,"mime":42,"size":1750,"url":1751,"previewUrl":52,"provider":80,"provider_metadata":52,"createdAt":1752,"updatedAt":1752,"publishedAt":1752},282,"cw1vtotdm8sb8oxxuv5uo1s8","php2shell-php-8-2-end-of-life-wordpress-featured.png","Flat illustration of a website window with the PHP logo behind a patched security shield, two bugs kept outside, a calendar showing 31 and an hourglass, with PHP 8.2 moving to 8.4",{"large":1725,"small":1731,"medium":1737,"thumbnail":1743},{"ext":39,"url":1726,"hash":1727,"mime":42,"name":1728,"path":52,"size":1729,"width":54,"height":55,"sizeInBytes":1730},"\u002Fuploads\u002Flarge_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5.png","large_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5","large_php2shell-php-8-2-end-of-life-wordpress-featured.png",147.34,147344,{"ext":39,"url":1732,"hash":1733,"mime":42,"name":1734,"path":52,"size":1735,"width":62,"height":63,"sizeInBytes":1736},"\u002Fuploads\u002Fsmall_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5.png","small_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5","small_php2shell-php-8-2-end-of-life-wordpress-featured.png",57.57,57567,{"ext":39,"url":1738,"hash":1739,"mime":42,"name":1740,"path":52,"size":1741,"width":70,"height":62,"sizeInBytes":1742},"\u002Fuploads\u002Fmedium_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5.png","medium_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5","medium_php2shell-php-8-2-end-of-life-wordpress-featured.png",98.2,98196,{"ext":39,"url":1744,"hash":1745,"mime":42,"name":1746,"path":52,"size":1747,"width":77,"height":78,"sizeInBytes":1748},"\u002Fuploads\u002Fthumbnail_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5.png","thumbnail_php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5","thumbnail_php2shell-php-8-2-end-of-life-wordpress-featured.png",22.74,22738,"php2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5",32.94,"\u002Fuploads\u002Fphp2shell_php_8_2_end_of_life_wordpress_featured_2ef0bea9d5.png","2026-11-11T12:31:17.115Z",{"id":824,"documentId":825,"name":826,"slug":827,"bio":52,"role":52,"createdAt":828,"updatedAt":828,"publishedAt":829,"avatar":52},{"id":27,"documentId":831,"name":832,"slug":833,"description":52,"createdAt":834,"updatedAt":834,"publishedAt":835},[1756,1757,1758,1759,1766,1773,1780,1787],{"id":838,"documentId":839,"name":840,"slug":841,"createdAt":842,"updatedAt":842,"publishedAt":843},{"id":845,"documentId":846,"name":847,"slug":848,"createdAt":849,"updatedAt":849,"publishedAt":850},{"id":852,"documentId":853,"name":854,"slug":855,"createdAt":856,"updatedAt":856,"publishedAt":857},{"id":1760,"documentId":1761,"name":1762,"slug":1763,"createdAt":1764,"updatedAt":1764,"publishedAt":1765},19,"hvck4jg75uemo3ikumg54k1w","White Label","white-label","2026-03-09T13:02:21.922Z","2026-03-09T13:02:21.917Z",{"id":1767,"documentId":1768,"name":1769,"slug":1770,"createdAt":1771,"updatedAt":1771,"publishedAt":1772},20,"iyuqrt7aaw24waad1n4it52s","Agency Strategy","agency-strategy","2026-03-09T13:02:21.923Z","2026-03-09T13:02:21.921Z",{"id":1774,"documentId":1775,"name":1776,"slug":1777,"createdAt":1778,"updatedAt":1778,"publishedAt":1779},51,"c5nhjh1zsdxhmiqk5cb3lo0d","WordPress","wordpress","2026-11-11T12:31:31.694Z","2026-11-11T12:31:31.692Z",{"id":1781,"documentId":1782,"name":1783,"slug":1784,"createdAt":1785,"updatedAt":1785,"publishedAt":1786},50,"svklomwc001pp9pmnj7oyesp","PHP","php","2026-11-11T12:31:31.684Z","2026-11-11T12:31:31.681Z",{"id":1788,"documentId":1789,"name":1790,"slug":1791,"createdAt":1792,"updatedAt":1792,"publishedAt":1778},52,"lbljzdswsqp3uyii3h56hku5","Security","security","2026-11-11T12:31:31.697Z",{"publishedAt":1794,"id":1795,"documentId":1796,"title":1797,"slug":1798,"excerpt":1799,"content":1800,"readingTime":2630,"createdAt":2631,"updatedAt":2632,"featuredImage":2633,"author":2666,"category":2667,"tags":2668},"2026-10-22T23:32:11.312Z",64,"v7bgpx0ae1tg9riz3t35ld7i","How Much Does Custom Web Application Development Cost in 2026?","custom-web-application-development-cost-2026","Custom web apps cost $10K–$500K+ in 2026. Here is what drives the price, how rates compare by region, what AI really changes, and the maintenance costs most quotes leave out.",[1801,1822,1826,1830,1834,1838,1842,1846,1850,1876,1887,1891,1895,1931,1935,1953,1957,1975,1979,1997,2005,2009,2013,2062,2106,2110,2114,2134,2138,2146,2182,2190,2201,2205,2209,2217,2224,2242,2250,2267,2303,2307,2311,2343,2355,2391,2401,2405,2409,2436,2440,2444,2513,2517,2521,2555,2565,2568,2572,2576,2580,2584,2588,2592,2596,2600,2604,2608,2611,2615],{"type":13,"children":1802},[1803,1804,1806,1808,1810,1812,1814,1816,1818,1820],{"bold":16,"text":17,"type":18},{"text":1805,"type":18}," In 2026, a custom web application typically costs ",{"bold":16,"text":1807,"type":18},"$10,000–$50,000",{"text":1809,"type":18}," for a simple MVP or internal tool, ",{"bold":16,"text":1811,"type":18},"$50,000–$150,000",{"text":1813,"type":18}," for a mid-complexity product like a customer portal or SaaS v1, and ",{"bold":16,"text":1815,"type":18},"$150,000–$500,000+",{"text":1817,"type":18}," for enterprise-grade platforms. The real number depends on scope, integrations, compliance and who builds it. Then budget another ",{"bold":16,"text":1819,"type":18},"15–25% of the build cost every year",{"text":1821,"type":18}," to keep it running. This guide shows where the money goes, what AI does (and doesn't) change, and how to get a quote you can trust.",{"type":13,"children":1823},[1824],{"text":1825,"type":18},"\"How much will it cost?\" is the first question every founder, product owner and CTO asks us. It's also the question most agencies dodge with \"it depends.\"",{"type":13,"children":1827},[1828],{"text":1829,"type":18},"It does depend, but not in a mysterious way. After 3,000+ projects since 2008, we've seen the same handful of factors decide almost every budget. Once you understand them, you can read any quote, compare vendors fairly and decide what to cut before a single line of code is written.",{"type":13,"children":1831},[1832],{"text":1833,"type":18},"Let's break it down.",{"type":26,"level":27,"children":1835},[1836],{"text":1837,"type":18},"Why the same app gets quoted at $20,000 and $200,000",{"type":13,"children":1839},[1840],{"text":1841,"type":18},"Send the same one-paragraph brief to five development companies and you'll often get five quotes that are 10x apart. That's rarely because someone is overcharging. It's because each vendor is quietly filling the gaps in your brief with different assumptions.",{"type":13,"children":1843},[1844],{"text":1845,"type":18},"\"A booking platform\" could mean a single calendar with Stripe checkout. Or it could mean multi-location scheduling, staff rostering, SMS reminders, refunds, an admin dashboard and an integration with your existing CRM. Same words, completely different product.",{"type":13,"children":1847},[1848],{"text":1849,"type":18},"Quotes also differ in what's included:",{"type":167,"format":168,"children":1851},[1852,1858,1864,1870],{"type":171,"children":1853},[1854,1856],{"bold":16,"text":1855,"type":18},"Discovery and architecture:",{"text":1857,"type":18}," some vendors bake it in, others skip it and discover the hard parts mid-build.",{"type":171,"children":1859},[1860,1862],{"bold":16,"text":1861,"type":18},"QA and testing:",{"text":1863,"type":18}," automated test suites, manual QA, performance testing, or \"the client tests it.\"",{"type":171,"children":1865},[1866,1868],{"bold":16,"text":1867,"type":18},"Deployment and DevOps:",{"text":1869,"type":18}," CI\u002FCD pipelines, staging environments, monitoring.",{"type":171,"children":1871},[1872,1874],{"bold":16,"text":1873,"type":18},"Post-launch warranty:",{"text":1875,"type":18}," 30 days of bug fixes, 90 days, or nothing.",{"type":13,"children":1877},[1878,1880,1885],{"text":1879,"type":18},"The fastest way to narrow the range is to remove the ambiguity. That's exactly what a good ",{"url":1881,"type":97,"children":1882},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Frequirement-elicitation-masterclass-complex-software",[1883],{"text":1884,"type":18},"requirement elicitation process",{"text":1886,"type":18}," does.",{"type":26,"level":27,"children":1888},[1889],{"text":1890,"type":18},"Custom web application development cost in 2026, by complexity",{"type":13,"children":1892},[1893],{"text":1894,"type":18},"Most published 2026 estimates converge on three tiers. The ranges below assume a professional team (not a solo freelancer) delivering design, development, QA and deployment.",{"type":36,"image":1896,"children":1929},{"id":1897,"ext":39,"url":1898,"hash":1899,"mime":42,"name":1900,"size":1901,"width":45,"height":46,"formats":1902,"provider":80,"createdAt":1927,"updatedAt":1927,"alternativeText":1928},257,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fweb_app_cost_tiers_2026_0b19048551.png","web_app_cost_tiers_2026_0b19048551","web-app-cost-tiers-2026.png",36.39,{"large":1903,"small":1909,"medium":1915,"thumbnail":1921},{"ext":39,"url":1904,"hash":1905,"mime":42,"name":1906,"path":52,"size":1907,"width":54,"height":55,"sizeInBytes":1908},"\u002Fuploads\u002Flarge_web_app_cost_tiers_2026_0b19048551.png","large_web_app_cost_tiers_2026_0b19048551","large_web-app-cost-tiers-2026.png",145.24,145241,{"ext":39,"url":1910,"hash":1911,"mime":42,"name":1912,"path":52,"size":1913,"width":62,"height":63,"sizeInBytes":1914},"\u002Fuploads\u002Fsmall_web_app_cost_tiers_2026_0b19048551.png","small_web_app_cost_tiers_2026_0b19048551","small_web-app-cost-tiers-2026.png",54.64,54642,{"ext":39,"url":1916,"hash":1917,"mime":42,"name":1918,"path":52,"size":1919,"width":70,"height":62,"sizeInBytes":1920},"\u002Fuploads\u002Fmedium_web_app_cost_tiers_2026_0b19048551.png","medium_web_app_cost_tiers_2026_0b19048551","medium_web-app-cost-tiers-2026.png",94.79,94787,{"ext":39,"url":1922,"hash":1923,"mime":42,"name":1924,"path":52,"size":1925,"width":77,"height":78,"sizeInBytes":1926},"\u002Fuploads\u002Fthumbnail_web_app_cost_tiers_2026_0b19048551.png","thumbnail_web_app_cost_tiers_2026_0b19048551","thumbnail_web-app-cost-tiers-2026.png",18.07,18070,"2026-10-22T23:24:00.920Z","Custom web application development cost tiers in 2026: simple, mid-complexity and enterprise, with typical costs and timelines",[1930],{"text":85,"type":18},{"type":26,"level":87,"children":1932},[1933],{"text":1934,"type":18},"Simple: $10,000–$50,000 (1–3 months)",{"type":167,"format":168,"children":1936},[1937,1941,1945,1949],{"type":171,"children":1938},[1939],{"text":1940,"type":18},"MVPs, internal tools, booking or lead-capture apps, simple dashboards",{"type":171,"children":1942},[1943],{"text":1944,"type":18},"One or two user roles, roughly 5–15 core screens",{"type":171,"children":1946},[1947],{"text":1948,"type":18},"Standard authentication, one payment provider, basic admin",{"type":171,"children":1950},[1951],{"text":1952,"type":18},"Off-the-shelf UI component library rather than a custom design system",{"type":26,"level":87,"children":1954},[1955],{"text":1956,"type":18},"Mid-complexity: $50,000–$150,000 (3–6 months)",{"type":167,"format":168,"children":1958},[1959,1963,1967,1971],{"type":171,"children":1960},[1961],{"text":1962,"type":18},"Customer portals, SaaS products, marketplaces, B2B platforms",{"type":171,"children":1964},[1965],{"text":1966,"type":18},"Several user roles with permissions, plus an admin back-office",{"type":171,"children":1968},[1969],{"text":1970,"type":18},"Multiple third-party integrations (payments, CRM, email, analytics)",{"type":171,"children":1972},[1973],{"text":1974,"type":18},"Custom UI design, reporting, notifications, audit trails",{"type":26,"level":87,"children":1976},[1977],{"text":1978,"type":18},"Complex \u002F enterprise: $150,000–$500,000+ (6–18 months)",{"type":167,"format":168,"children":1980},[1981,1985,1989,1993],{"type":171,"children":1982},[1983],{"text":1984,"type":18},"Multi-tenant SaaS, ERP-style systems, fintech and healthtech platforms",{"type":171,"children":1986},[1987],{"text":1988,"type":18},"Regulatory compliance (GDPR, HIPAA, India's DPDP Act, PCI-DSS)",{"type":171,"children":1990},[1991],{"text":1992,"type":18},"Real-time features, heavy data processing, legacy system integration",{"type":171,"children":1994},[1995],{"text":1996,"type":18},"High-availability architecture, formal security audits, SLAs",{"type":13,"children":1998},[1999,2001,2003],{"text":2000,"type":18},"At Netling Digital, a typical MVP ships in ",{"bold":16,"text":2002,"type":18},"8–12 weeks",{"text":2004,"type":18},", which puts most of our startup builds at the upper end of the simple tier or the lower end of mid-complexity.",{"type":26,"level":27,"children":2006},[2007],{"text":2008,"type":18},"What actually drives the cost",{"type":13,"children":2010},[2011],{"text":2012,"type":18},"Features are the obvious cost driver, but they are not the only one. These seven factors decide most of the budget:",{"type":167,"format":281,"children":2014},[2015,2021,2027,2033,2039,2045,2051],{"type":171,"children":2016},[2017,2019],{"bold":16,"text":2018,"type":18},"User roles and permissions.",{"text":2020,"type":18}," Every extra role (customer, vendor, manager, admin) multiplies screens, rules and test cases.",{"type":171,"children":2022},[2023,2025],{"bold":16,"text":2024,"type":18},"Integrations.",{"text":2026,"type":18}," A payment gateway, CRM or ERP connection looks like one line item. In reality it's authentication, webhooks, retries, error handling and the gap between the sandbox and production. Legacy APIs are the most expensive of all.",{"type":171,"children":2028},[2029,2031],{"bold":16,"text":2030,"type":18},"Data and migration.",{"text":2032,"type":18}," Importing years of messy data from spreadsheets or an old system is often a project of its own.",{"type":171,"children":2034},[2035,2037],{"bold":16,"text":2036,"type":18},"Real-time features.",{"text":2038,"type":18}," Live chat, collaborative editing, live dashboards and offline sync need extra infrastructure and far more testing.",{"type":171,"children":2040},[2041,2043],{"bold":16,"text":2042,"type":18},"Compliance and security.",{"text":2044,"type":18}," Encryption, audit logs, data residency, consent flows and penetration testing all add hours, and they're non-negotiable in regulated industries.",{"type":171,"children":2046},[2047,2049],{"bold":16,"text":2048,"type":18},"Design ambition.",{"text":2050,"type":18}," A polished component library is fast. A bespoke design system with custom animations is a significant investment, worth it for consumer products, often unnecessary for internal tools.",{"type":171,"children":2052},[2053,2055,2057,2061],{"bold":16,"text":2054,"type":18},"Non-functional requirements.",{"text":2056,"type":18}," How fast must it be? How many users at once? What uptime? These \"invisible\" requirements shape the architecture. We've written about why ",{"url":482,"type":97,"children":2058},[2059],{"text":2060,"type":18},"non-functional testing is the backbone of scaling",{"text":267,"type":18},{"type":36,"image":2063,"children":2104},{"id":2064,"ext":2065,"url":2066,"hash":2067,"mime":2068,"name":2069,"size":2070,"width":2071,"height":2072,"formats":2073,"provider":80,"createdAt":2102,"updatedAt":2102,"alternativeText":2103},258,".webp","https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fweb_app_cost_drivers_clay_6ade719f90.webp","web_app_cost_drivers_clay_6ade719f90","image\u002Fwebp","web-app-cost-drivers-clay.webp",37.39,1264,848,{"large":2074,"small":2081,"medium":2088,"thumbnail":2095},{"ext":2065,"url":2075,"hash":2076,"mime":2068,"name":2077,"path":52,"size":2078,"width":54,"height":2079,"sizeInBytes":2080},"\u002Fuploads\u002Flarge_web_app_cost_drivers_clay_6ade719f90.webp","large_web_app_cost_drivers_clay_6ade719f90","large_web-app-cost-drivers-clay.webp",27.28,671,27280,{"ext":2065,"url":2082,"hash":2083,"mime":2068,"name":2084,"path":52,"size":2085,"width":62,"height":2086,"sizeInBytes":2087},"\u002Fuploads\u002Fsmall_web_app_cost_drivers_clay_6ade719f90.webp","small_web_app_cost_drivers_clay_6ade719f90","small_web-app-cost-drivers-clay.webp",11.97,335,11974,{"ext":2065,"url":2089,"hash":2090,"mime":2068,"name":2091,"path":52,"size":2092,"width":70,"height":2093,"sizeInBytes":2094},"\u002Fuploads\u002Fmedium_web_app_cost_drivers_clay_6ade719f90.webp","medium_web_app_cost_drivers_clay_6ade719f90","medium_web-app-cost-drivers-clay.webp",18.93,503,18930,{"ext":2065,"url":2096,"hash":2097,"mime":2068,"name":2098,"path":52,"size":2099,"width":2100,"height":78,"sizeInBytes":2101},"\u002Fuploads\u002Fthumbnail_web_app_cost_drivers_clay_6ade719f90.webp","thumbnail_web_app_cost_drivers_clay_6ade719f90","thumbnail_web-app-cost-drivers-clay.webp",4.92,233,4922,"2026-10-22T23:24:01.594Z","Human and robot characters weighing feature blocks for user roles, integrations, data and security against a stack of coins on a balance scale, illustrating the factors that drive web application development cost",[2105],{"text":85,"type":18},{"type":26,"level":27,"children":2107},[2108],{"text":2109,"type":18},"Developer rates by region, and why the cheapest hour isn't the cheapest project",{"type":13,"children":2111},[2112],{"text":2113,"type":18},"Where your team is based still has a big effect on the price. Index.dev's Q2 2026 marketplace data puts senior full-stack developers at roughly:",{"type":167,"format":168,"children":2115},[2116,2122,2128],{"type":171,"children":2117},[2118,2120],{"bold":16,"text":2119,"type":18},"United States:",{"text":2121,"type":18}," $100–150 per hour",{"type":171,"children":2123},[2124,2126],{"bold":16,"text":2125,"type":18},"Eastern Europe:",{"text":2127,"type":18}," $58–85 per hour",{"type":171,"children":2129},[2130,2132],{"bold":16,"text":2131,"type":18},"India:",{"text":2133,"type":18}," $34–52 per hour",{"type":13,"children":2135},[2136],{"text":2137,"type":18},"Agency rates follow the same pattern. Clutch's 2026 data shows most US and Polish firms billing $50–99 per hour, while Indian and Ukrainian firms cluster at $25–49 per hour.",{"type":13,"children":2139},[2140,2142,2144],{"text":2141,"type":18},"Here's what that means for a real project. Take a mid-complexity customer portal estimated at ",{"bold":16,"text":2143,"type":18},"1,000–1,600 engineering hours",{"text":2145,"type":18},":",{"type":36,"image":2147,"children":2180},{"id":2148,"ext":39,"url":2149,"hash":2150,"mime":42,"name":2151,"size":2152,"width":45,"height":46,"formats":2153,"provider":80,"createdAt":2178,"updatedAt":2178,"alternativeText":2179},259,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fweb_app_cost_by_region_2026_a24c8d2c2e.png","web_app_cost_by_region_2026_a24c8d2c2e","web-app-cost-by-region-2026.png",33.31,{"large":2154,"small":2160,"medium":2166,"thumbnail":2172},{"ext":39,"url":2155,"hash":2156,"mime":42,"name":2157,"path":52,"size":2158,"width":54,"height":55,"sizeInBytes":2159},"\u002Fuploads\u002Flarge_web_app_cost_by_region_2026_a24c8d2c2e.png","large_web_app_cost_by_region_2026_a24c8d2c2e","large_web-app-cost-by-region-2026.png",124.47,124468,{"ext":39,"url":2161,"hash":2162,"mime":42,"name":2163,"path":52,"size":2164,"width":62,"height":63,"sizeInBytes":2165},"\u002Fuploads\u002Fsmall_web_app_cost_by_region_2026_a24c8d2c2e.png","small_web_app_cost_by_region_2026_a24c8d2c2e","small_web-app-cost-by-region-2026.png",46.18,46182,{"ext":39,"url":2167,"hash":2168,"mime":42,"name":2169,"path":52,"size":2170,"width":70,"height":62,"sizeInBytes":2171},"\u002Fuploads\u002Fmedium_web_app_cost_by_region_2026_a24c8d2c2e.png","medium_web_app_cost_by_region_2026_a24c8d2c2e","medium_web-app-cost-by-region-2026.png",81.92,81922,{"ext":39,"url":2173,"hash":2174,"mime":42,"name":2175,"path":52,"size":2176,"width":77,"height":78,"sizeInBytes":2177},"\u002Fuploads\u002Fthumbnail_web_app_cost_by_region_2026_a24c8d2c2e.png","thumbnail_web_app_cost_by_region_2026_a24c8d2c2e","thumbnail_web-app-cost-by-region-2026.png",15.32,15321,"2026-10-22T23:24:02.376Z","The same 1,000 to 1,600 hour web application project costs $34K to $83K with an India-based team, $58K to $136K in Eastern Europe and $100K to $240K in the United States",[2181],{"text":85,"type":18},{"type":13,"children":2183},[2184,2186,2188],{"text":2185,"type":18},"The gap is real. But the hourly rate is only half the equation; the other half is ",{"bold":16,"text":2187,"type":18},"how many hours it takes",{"text":2189,"type":18},". A senior engineer who gets the architecture right the first time is far cheaper than a junior team that ships fast and rebuilds twice. Industry analyses also suggest management overhead adds 15–25% on top of headline rates when the vendor doesn't provide strong project management.",{"type":13,"children":2191},[2192,2194,2199],{"text":2193,"type":18},"So when comparing offshore partners, look past the rate card. Ask who will actually write the code, how seniority is mixed on the team and how they handle code review. Our guide on ",{"url":2195,"type":97,"children":2196},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fchoose-custom-software-development-company-2026",[2197],{"text":2198,"type":18},"how to choose a custom software development company",{"text":2200,"type":18}," covers the questions that matter.",{"type":26,"level":27,"children":2202},[2203],{"text":2204,"type":18},"Does AI make custom software cheaper in 2026?",{"type":13,"children":2206},[2207],{"text":2208,"type":18},"Yes, but not uniformly, and not automatically. The honest answer is more nuanced than most agency marketing suggests.",{"type":13,"children":2210},[2211,2213,2215],{"text":2212,"type":18},"The research is still mixed. In METR's widely cited 2025 randomised trial, 16 experienced open-source developers took ",{"bold":16,"text":2214,"type":18},"19% longer",{"text":2216,"type":18}," to complete tasks when AI tools were allowed, while believing they'd been about 20% faster. When METR re-ran the experiment in 2026, it concluded its new data was no longer a reliable signal, partly because many developers now refuse to work without AI at all. Google's 2025 DORA report found that AI adoption correlates with higher delivery throughput, but also with higher instability: more change failures and more rework.",{"type":13,"children":2218},[2219,2221,2223],{"text":2220,"type":18},"Our experience matches that picture. AI makes the ",{"bold":16,"text":2222,"type":18},"cheap parts of a project cheaper",{"text":2145,"type":18},{"type":167,"format":168,"children":2225},[2226,2230,2234,2238],{"type":171,"children":2227},[2228],{"text":2229,"type":18},"Scaffolding, boilerplate and CRUD screens",{"type":171,"children":2231},[2232],{"text":2233,"type":18},"Test generation and documentation",{"type":171,"children":2235},[2236],{"text":2237,"type":18},"Data migration scripts and repetitive refactors",{"type":171,"children":2239},[2240],{"text":2241,"type":18},"First drafts of UI from an agreed design",{"type":13,"children":2243},[2244,2246,2248],{"text":2245,"type":18},"It does very little for the ",{"bold":16,"text":2247,"type":18},"expensive parts",{"text":2249,"type":18},": deciding what to build, designing the architecture, handling integration edge cases and reviewing everything before it reaches production. Without strong review and automated testing, AI-generated code can quietly turn today's savings into next year's maintenance bill.",{"type":13,"children":2251},[2252,2254,2259,2261,2263,2265],{"text":2253,"type":18},"That's why our ",{"url":2255,"type":97,"children":2256},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fwhy-traditional-web-development-is-dead-ai-native-shift",[2257],{"text":2258,"type":18},"AI-native workflow",{"text":2260,"type":18}," pairs AI acceleration with senior engineers who own every architectural decision and review every merge. When a vendor tells you AI cuts your quote, ask two questions: ",{"text":2262,"type":18,"italic":16},"which hours does it remove,",{"text":2264,"type":18}," and ",{"text":2266,"type":18,"italic":16},"how do you review the code it writes?",{"type":36,"image":2268,"children":2301},{"id":2269,"ext":2065,"url":2270,"hash":2271,"mime":2068,"name":2272,"size":2273,"width":2071,"height":2072,"formats":2274,"provider":80,"createdAt":2299,"updatedAt":2299,"alternativeText":2300},260,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fai_software_cost_clay_4ec010c4d2.webp","ai_software_cost_clay_4ec010c4d2","ai-software-cost-clay.webp",29.06,{"large":2275,"small":2281,"medium":2287,"thumbnail":2293},{"ext":2065,"url":2276,"hash":2277,"mime":2068,"name":2278,"path":52,"size":2279,"width":54,"height":2079,"sizeInBytes":2280},"\u002Fuploads\u002Flarge_ai_software_cost_clay_4ec010c4d2.webp","large_ai_software_cost_clay_4ec010c4d2","large_ai-software-cost-clay.webp",20.58,20576,{"ext":2065,"url":2282,"hash":2283,"mime":2068,"name":2284,"path":52,"size":2285,"width":62,"height":2086,"sizeInBytes":2286},"\u002Fuploads\u002Fsmall_ai_software_cost_clay_4ec010c4d2.webp","small_ai_software_cost_clay_4ec010c4d2","small_ai-software-cost-clay.webp",9.39,9388,{"ext":2065,"url":2288,"hash":2289,"mime":2068,"name":2290,"path":52,"size":2291,"width":70,"height":2093,"sizeInBytes":2292},"\u002Fuploads\u002Fmedium_ai_software_cost_clay_4ec010c4d2.webp","medium_ai_software_cost_clay_4ec010c4d2","medium_ai-software-cost-clay.webp",15.09,15094,{"ext":2065,"url":2294,"hash":2295,"mime":2068,"name":2296,"path":52,"size":2297,"width":2100,"height":78,"sizeInBytes":2298},"\u002Fuploads\u002Fthumbnail_ai_software_cost_clay_4ec010c4d2.webp","thumbnail_ai_software_cost_clay_4ec010c4d2","thumbnail_ai-software-cost-clay.webp",3.72,3724,"2026-10-22T23:24:02.946Z","A human engineer and a friendly robot balancing speed and quality on a seesaw, illustrating how AI changes software development cost",[2302],{"text":85,"type":18},{"type":26,"level":27,"children":2304},[2305],{"text":2306,"type":18},"The hidden costs: your budget after launch",{"type":13,"children":2308},[2309],{"text":2310,"type":18},"The build is the down payment, not the total price. Plan for these from day one:",{"type":167,"format":168,"children":2312},[2313,2319,2325,2331,2337],{"type":171,"children":2314},[2315,2317],{"bold":16,"text":2316,"type":18},"Maintenance and updates.",{"text":2318,"type":18}," The common rule of thumb is 15–25% of the original build cost per year. A 2026 benchmark of 24 SaaS products by wavect found median maintenance spend of 24% of build cost in year one, 21% in year two and 26% in year three. Products that are still actively evolving sit at the higher end.",{"type":171,"children":2320},[2321,2323],{"bold":16,"text":2322,"type":18},"Hosting and infrastructure.",{"text":2324,"type":18}," Anywhere from tens of dollars a month for a small internal tool to thousands for a high-traffic platform.",{"type":171,"children":2326},[2327,2329],{"bold":16,"text":2328,"type":18},"Third-party services.",{"text":2330,"type":18}," Email, SMS, maps, authentication, search and AI APIs are usually priced by usage and grow with your user base.",{"type":171,"children":2332},[2333,2335],{"bold":16,"text":2334,"type":18},"Security and compliance.",{"text":2336,"type":18}," Dependency patching, vulnerability scans and periodic audits, especially in regulated industries.",{"type":171,"children":2338},[2339,2341],{"bold":16,"text":2340,"type":18},"Contingency.",{"text":2342,"type":18}," Add a 15–20% buffer to any estimate. Something always comes up.",{"type":13,"children":2344},[2345,2347,2349,2351,2353],{"text":2346,"type":18},"Using the wavect medians, a ",{"bold":16,"text":2348,"type":18},"$60,000 build",{"text":2350,"type":18}," costs roughly ",{"bold":16,"text":2352,"type":18},"$102,600 over three years",{"text":2354,"type":18}," once maintenance is included:",{"type":36,"image":2356,"children":2389},{"id":2357,"ext":39,"url":2358,"hash":2359,"mime":42,"name":2360,"size":2361,"width":45,"height":46,"formats":2362,"provider":80,"createdAt":2387,"updatedAt":2387,"alternativeText":2388},261,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fweb_app_three_year_cost_2026_96e0f595d5.png","web_app_three_year_cost_2026_96e0f595d5","web-app-three-year-cost-2026.png",29.02,{"large":2363,"small":2369,"medium":2375,"thumbnail":2381},{"ext":39,"url":2364,"hash":2365,"mime":42,"name":2366,"path":52,"size":2367,"width":54,"height":55,"sizeInBytes":2368},"\u002Fuploads\u002Flarge_web_app_three_year_cost_2026_96e0f595d5.png","large_web_app_three_year_cost_2026_96e0f595d5","large_web-app-three-year-cost-2026.png",135.13,135128,{"ext":39,"url":2370,"hash":2371,"mime":42,"name":2372,"path":52,"size":2373,"width":62,"height":63,"sizeInBytes":2374},"\u002Fuploads\u002Fsmall_web_app_three_year_cost_2026_96e0f595d5.png","small_web_app_three_year_cost_2026_96e0f595d5","small_web-app-three-year-cost-2026.png",52.02,52019,{"ext":39,"url":2376,"hash":2377,"mime":42,"name":2378,"path":52,"size":2379,"width":70,"height":62,"sizeInBytes":2380},"\u002Fuploads\u002Fmedium_web_app_three_year_cost_2026_96e0f595d5.png","medium_web_app_three_year_cost_2026_96e0f595d5","medium_web-app-three-year-cost-2026.png",91.42,91423,{"ext":39,"url":2382,"hash":2383,"mime":42,"name":2384,"path":52,"size":2385,"width":77,"height":78,"sizeInBytes":2386},"\u002Fuploads\u002Fthumbnail_web_app_three_year_cost_2026_96e0f595d5.png","thumbnail_web_app_three_year_cost_2026_96e0f595d5","thumbnail_web-app-three-year-cost-2026.png",17.4,17400,"2026-10-22T23:24:03.699Z","Three-year total cost of ownership for a $60,000 web application: $60,000 build plus $14,400 maintenance in year one, $12,600 in year two and $15,600 in year three, totalling about $102,600",[2390],{"text":85,"type":18},{"type":13,"children":2392},[2393,2395,2399],{"text":2394,"type":18},"That's why we prefer flat monthly retainers for ",{"url":779,"type":97,"children":2396},[2397],{"text":2398,"type":18},"ongoing maintenance and support",{"text":2400,"type":18},": the cost is predictable, and the same team that built your product keeps it healthy.",{"type":26,"level":27,"children":2402},[2403],{"text":2404,"type":18},"Fixed price, time and materials, or dedicated team?",{"type":13,"children":2406},[2407],{"text":2408,"type":18},"How you contract the work changes both the price and the risk:",{"type":167,"format":168,"children":2410},[2411,2417,2423],{"type":171,"children":2412},[2413,2415],{"bold":16,"text":2414,"type":18},"Fixed price:",{"text":2416,"type":18}," best when the scope is small and well-defined, like a tightly specified MVP. You get budget certainty, but expect the vendor to price in risk, and every change becomes a change request.",{"type":171,"children":2418},[2419,2421],{"bold":16,"text":2420,"type":18},"Time and materials:",{"text":2422,"type":18}," best when requirements will evolve, which is most products. You pay for actual hours, keep flexibility and see progress every sprint.",{"type":171,"children":2424},[2425,2427,2429,2434],{"bold":16,"text":2426,"type":18},"Dedicated team:",{"text":2428,"type":18}," best for long-term products with a continuous roadmap. Engineers ",{"url":2430,"type":97,"children":2431},"https:\u002F\u002Fnetling.digital\u002Fservices\u002Fintegrate",[2432],{"text":2433,"type":18},"join your team",{"text":2435,"type":18}," on a monthly basis, working in your repos and standups.",{"type":13,"children":2437},[2438],{"text":2439,"type":18},"Many of our clients start with a fixed-price discovery and MVP, then move to time and materials or a dedicated team once the product finds traction.",{"type":26,"level":27,"children":2441},[2442],{"text":2443,"type":18},"7 ways to lower the cost without lowering the quality",{"type":167,"format":281,"children":2445},[2446,2458,2471,2483,2489,2501,2507],{"type":171,"children":2447},[2448,2450,2452,2457],{"bold":16,"text":2449,"type":18},"Pay for discovery first.",{"text":2451,"type":18}," A one- or two-week discovery phase is the cheapest insurance you can buy. In our own projects, around 92% of scope changes get caught in discovery rather than during development. ",{"url":2453,"type":97,"children":2454},"https:\u002F\u002Fnetling.digital\u002Four-approach",[2455],{"text":2456,"type":18},"See how our process works",{"text":267,"type":18},{"type":171,"children":2459},[2460,2462,2464,2469],{"bold":16,"text":2461,"type":18},"Cut version one ruthlessly.",{"text":2463,"type":18}," Use MoSCoW prioritisation to separate must-haves from nice-to-haves. Our ",{"url":2465,"type":97,"children":2466},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fhow-to-build-an-mvp-for-a-startup-2026-guide",[2467],{"text":2468,"type":18},"complete guide to MVP development",{"text":2470,"type":18}," walks through it.",{"type":171,"children":2472},[2473,2475,2477,2482],{"bold":16,"text":2474,"type":18},"Start with the web.",{"text":2476,"type":18}," A responsive web app or PWA usually costs less than separate iOS and Android apps. Here's ",{"url":2478,"type":97,"children":2479},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fweb-app-vs-mobile-app-which-to-build-first",[2480],{"text":2481,"type":18},"when to build web first and when to go mobile",{"text":267,"type":18},{"type":171,"children":2484},[2485,2487],{"bold":16,"text":2486,"type":18},"Buy the commodity, build the differentiator.",{"text":2488,"type":18}," Use proven services for authentication, payments, email and content management. Spend your custom budget on the features that make your product unique.",{"type":171,"children":2490},[2491,2493,2495,2500],{"bold":16,"text":2492,"type":18},"Choose boring, hireable technology.",{"text":2494,"type":18}," Mainstream frameworks are cheaper to build, cheaper to maintain and easier to hire for. Here's ",{"url":2496,"type":97,"children":2497},"https:\u002F\u002Fnetling.digital\u002Ftechnology-stack",[2498],{"text":2499,"type":18},"the stack we trust",{"text":267,"type":18},{"type":171,"children":2502},[2503,2505],{"bold":16,"text":2504,"type":18},"Automate testing and deployment from day one.",{"text":2506,"type":18}," CI\u002FCD and automated tests feel like overhead in month one and pay for themselves by month six.",{"type":171,"children":2508},[2509,2511],{"bold":16,"text":2510,"type":18},"Budget for maintenance up front.",{"text":2512,"type":18}," Products that get regular small updates stay cheap to change. Products left alone for two years need expensive rescues.",{"type":26,"level":27,"children":2514},[2515],{"text":2516,"type":18},"How to get an accurate quote",{"type":13,"children":2518},[2519],{"text":2520,"type":18},"The more of this you share up front, the tighter (and more honest) your quote will be:",{"type":167,"format":168,"children":2522},[2523,2527,2531,2535,2539,2543,2547,2551],{"type":171,"children":2524},[2525],{"text":2526,"type":18},"The problem you're solving and who your users are",{"type":171,"children":2528},[2529],{"text":2530,"type":18},"The user roles and what each one needs to do",{"type":171,"children":2532},[2533],{"text":2534,"type":18},"Your must-have features for launch, and what can wait",{"type":171,"children":2536},[2537],{"text":2538,"type":18},"Every system the app must integrate with",{"type":171,"children":2540},[2541],{"text":2542,"type":18},"Any existing data that needs migrating",{"type":171,"children":2544},[2545],{"text":2546,"type":18},"Compliance requirements for your industry and region",{"type":171,"children":2548},[2549],{"text":2550,"type":18},"Your target launch date and a realistic budget range",{"type":171,"children":2552},[2553],{"text":2554,"type":18},"Design assets, wireframes or reference products you like",{"type":13,"children":2556},[2557,2559,2563],{"text":2558,"type":18},"Don't have all of it yet? That's what discovery is for. ",{"url":772,"type":97,"children":2560},[2561],{"text":2562,"type":18},"Start a project brief",{"text":2564,"type":18}," and we'll help you fill in the gaps.",{"type":26,"level":27,"children":2566},[2567],{"text":706,"type":18},{"type":26,"level":87,"children":2569},[2570],{"text":2571,"type":18},"How much does a simple web app cost in 2026?",{"type":13,"children":2573},[2574],{"text":2575,"type":18},"A simple custom web app, such as an MVP or an internal tool with one or two user roles, typically costs $10,000–$50,000 and takes one to three months to build with a professional team.",{"type":26,"level":87,"children":2577},[2578],{"text":2579,"type":18},"How long does it take to build a custom web application?",{"type":13,"children":2581},[2582],{"text":2583,"type":18},"Simple apps take one to three months, mid-complexity products three to six months, and enterprise platforms six to eighteen months. A focused MVP can often launch in 8–12 weeks.",{"type":26,"level":87,"children":2585},[2586],{"text":2587,"type":18},"Is it cheaper to build a web app with a team in India?",{"type":13,"children":2589},[2590],{"text":2591,"type":18},"Usually, yes. Senior developers in India bill roughly a third of US rates. The real savings depend on the team's seniority and engineering process, because rework erases rate advantages quickly.",{"type":26,"level":87,"children":2593},[2594],{"text":2595,"type":18},"How much does it cost to maintain a web application?",{"type":13,"children":2597},[2598],{"text":2599,"type":18},"Plan for 15–25% of the original build cost per year for maintenance, security updates and small improvements, plus hosting and third-party service fees.",{"type":26,"level":87,"children":2601},[2602],{"text":2603,"type":18},"Can AI tools build my web app for free?",{"type":13,"children":2605},[2606],{"text":2607,"type":18},"AI app builders are great for prototypes and validating ideas. Production software that handles real users, payments and data still needs engineering for architecture, security, integrations and testing. AI reduces some of that work, but it doesn't remove it.",{"type":26,"level":27,"children":2609},[2610],{"text":750,"type":18},{"type":13,"children":2612},[2613],{"text":2614,"type":18},"Custom web application development cost isn't a mystery. It's the product of scope, complexity, team and process, plus the years of running the software after launch. The cheapest quote is rarely the cheapest outcome. The right partner is the one who asks the hard questions before quoting, shows you exactly where the hours go and still answers your calls three years later.",{"type":13,"children":2616},[2617,2619,2623,2624,2628],{"text":2618,"type":18},"Want a realistic estimate for your idea? ",{"url":765,"type":97,"children":2620},[2621],{"text":2622,"type":18},"Book a free consultation",{"text":770,"type":18},{"url":772,"type":97,"children":2625},[2626],{"text":2627,"type":18},"start your project brief",{"text":2629,"type":18},". We'll give you a clear scope, timeline and cost with no surprises.",10,"2026-10-22T23:24:24.888Z","2026-10-22T23:32:11.289Z",{"id":2634,"documentId":2635,"name":2636,"alternativeText":1797,"caption":52,"focalPoint":52,"width":2071,"height":2072,"formats":2637,"hash":2662,"ext":2065,"mime":2068,"size":2663,"url":2664,"previewUrl":52,"provider":80,"provider_metadata":52,"createdAt":2665,"updatedAt":2665,"publishedAt":2665},262,"vye3t9et4glbq8favnqipvn0","web-app-development-cost-2026-featured.webp",{"large":2638,"small":2644,"medium":2650,"thumbnail":2656},{"ext":2065,"url":2639,"hash":2640,"mime":2068,"name":2641,"path":52,"size":2642,"width":54,"height":2079,"sizeInBytes":2643},"\u002Fuploads\u002Flarge_web_app_development_cost_2026_featured_cc0f35941c.webp","large_web_app_development_cost_2026_featured_cc0f35941c","large_web-app-development-cost-2026-featured.webp",33.4,33400,{"ext":2065,"url":2645,"hash":2646,"mime":2068,"name":2647,"path":52,"size":2648,"width":62,"height":2086,"sizeInBytes":2649},"\u002Fuploads\u002Fsmall_web_app_development_cost_2026_featured_cc0f35941c.webp","small_web_app_development_cost_2026_featured_cc0f35941c","small_web-app-development-cost-2026-featured.webp",15.39,15388,{"ext":2065,"url":2651,"hash":2652,"mime":2068,"name":2653,"path":52,"size":2654,"width":70,"height":2093,"sizeInBytes":2655},"\u002Fuploads\u002Fmedium_web_app_development_cost_2026_featured_cc0f35941c.webp","medium_web_app_development_cost_2026_featured_cc0f35941c","medium_web-app-development-cost-2026-featured.webp",24.81,24806,{"ext":2065,"url":2657,"hash":2658,"mime":2068,"name":2659,"path":52,"size":2660,"width":2100,"height":78,"sizeInBytes":2661},"\u002Fuploads\u002Fthumbnail_web_app_development_cost_2026_featured_cc0f35941c.webp","thumbnail_web_app_development_cost_2026_featured_cc0f35941c","thumbnail_web-app-development-cost-2026-featured.webp",6.19,6192,"web_app_development_cost_2026_featured_cc0f35941c",46.97,"\u002Fuploads\u002Fweb_app_development_cost_2026_featured_cc0f35941c.webp","2026-10-22T23:24:04.326Z",{"id":824,"documentId":825,"name":826,"slug":827,"bio":52,"role":52,"createdAt":828,"updatedAt":828,"publishedAt":829,"avatar":52},{"id":27,"documentId":831,"name":832,"slug":833,"description":52,"createdAt":834,"updatedAt":834,"publishedAt":835},[2669,2676,2682,2688,2695,2701],{"id":2670,"documentId":2671,"name":2672,"slug":2673,"createdAt":2674,"updatedAt":2674,"publishedAt":2675},45,"q6poind84nwob18b63pmgeq1","Custom Web Application Development","custom-web-application-development","2026-10-22T23:24:24.818Z","2026-10-22T23:24:24.803Z",{"id":2677,"documentId":2678,"name":2679,"slug":2680,"createdAt":2681,"updatedAt":2681,"publishedAt":2674},46,"kzb3ua26tmlni9cqq3mjswcf","Software Development Cost","software-development-cost","2026-10-22T23:24:24.820Z",{"id":2683,"documentId":2684,"name":2685,"slug":2686,"createdAt":842,"updatedAt":842,"publishedAt":2687},26,"k27hr0l85vr6cj9jmg8wpao1","Custom Software","custom-software","2026-03-09T18:03:33.554Z",{"id":2689,"documentId":2690,"name":2691,"slug":2692,"createdAt":2693,"updatedAt":2693,"publishedAt":2694},44,"ll9ja7rro8k1ermcchdlsr9j","MVP Development","mvp-development","2026-03-17T22:24:09.661Z","2026-03-17T22:24:09.656Z",{"id":27,"documentId":2696,"name":2697,"slug":2698,"createdAt":2699,"updatedAt":2699,"publishedAt":2700},"kxh73xsz0we5de19eimzbfvr","AI-Native","ai-native","2026-02-27T14:26:56.657Z","2026-02-27T14:26:56.654Z",{"id":859,"documentId":860,"name":861,"slug":862,"createdAt":863,"updatedAt":863,"publishedAt":864},{"publishedAt":2703,"id":887,"documentId":2704,"title":2705,"slug":2706,"excerpt":2707,"content":2708,"readingTime":845,"createdAt":3275,"updatedAt":3276,"featuredImage":3277,"author":3311,"category":3312,"tags":3313},"2026-03-17T22:24:20.952Z","qol8fzma4847l2hiw57gcu5g","Complete Guide to MVP Development for Startups 2026","how-to-build-an-mvp-for-a-startup-2026-guide","Building an MVP in 2026 isn't just about cutting features; it's about leveraging AI-native workflows and high-level engineering craft to ship products that validate and scale. ",[2709,2714,2718,2722,2730,2745,2748,2752,2756,2770,2778,2782,2785,2789,2797,2801,2805,2819,2823,2827,2832,2868,2871,2875,2883,2909,2915,2933,2938,2974,2977,2981,2991,2995,3015,3023,3026,3030,3034,3038,3042,3046,3072,3077,3113,3116,3120,3124,3128,3148,3152,3155,3159,3166,3192,3203,3206,3210,3214,3223,3234,3239],{"type":13,"children":2710},[2711,2712],{"bold":16,"text":17,"type":18},{"text":2713,"type":18}," In 2026, building an MVP is no longer about shipping \"half-baked\" software. It’s about focusing on a core value proposition using AI-native workflows to achieve speed without sacrificing quality. This guide covers everything from validating your idea without code to technical architecture and the MoSCoW method for feature prioritization.",{"type":13,"children":2715},[2716],{"text":2717,"type":18},"---",{"type":13,"children":2719},[2720],{"text":2721,"type":18},"The startup landscape of 2026 is faster, noisier, and more competitive than ever. The old-school mantra of \"move fast and break things\" has evolved. Today, if you break too much, you lose user trust before you’ve even had a chance to pivot.",{"type":13,"children":2723},[2724,2726,2728],{"text":2725,"type":18},"If you’re wondering ",{"bold":16,"text":2727,"type":18},"how to build an MVP for a startup",{"text":2729,"type":18}," today, you need to understand that the \"Minimum\" in Minimum Viable Product has changed. Users are no longer willing to tolerate clunky, \"prototype-y\" interfaces. They expect polish, even in version 0.1.",{"type":13,"children":2731},[2732,2734,2739,2741,2743],{"text":2733,"type":18},"At ",{"url":2735,"type":97,"children":2736},"https:\u002F\u002Fnetling.digital",[2737],{"text":2738,"type":18},"Netling Digital",{"text":2740,"type":18},", we’ve refined the art of ",{"bold":16,"text":2742,"type":18},"startup mvp development",{"text":2744,"type":18}," into a high-craft science. We don't just build apps; we build foundations. Here is your comprehensive guide to navigating MVP development in the AI-native era.",{"type":13,"children":2746},[2747],{"text":2717,"type":18},{"type":26,"level":27,"children":2749},[2750],{"text":2751,"type":18},"1. The 2026 Mindset: 'Minimum' vs 'Viable'",{"type":13,"children":2753},[2754],{"text":2755,"type":18},"The biggest mistake founders make is leaning too hard on \"Minimum\" and forgetting about \"Viable.\" ",{"type":167,"format":168,"children":2757},[2758,2764],{"type":171,"children":2759},[2760,2762],{"bold":16,"text":2761,"type":18},"Minimum:",{"text":2763,"type":18}," The smallest set of features that can be built.",{"type":171,"children":2765},[2766,2768],{"bold":16,"text":2767,"type":18},"Viable:",{"text":2769,"type":18}," A product that provides enough value that users are willing to pay for it (or at least give you their time and data).",{"type":13,"children":2771},[2772,2774,2776],{"text":2773,"type":18},"In 2026, \"Viable\" includes a certain level of ",{"bold":16,"text":2775,"type":18},"engineering craft",{"text":2777,"type":18},". With AI-assisted design and development, there is no longer an excuse for a poor user experience. Your MVP needs to solve one problem exceptionally well, rather than five problems poorly.",{"type":13,"children":2779},[2780],{"text":2781,"type":18},"Think of your MVP as the thin end of a wedge. It needs to be sharp enough to break into the market. If it’s too \"minimum,\" it’s blunt. If it’s too feature-heavy, it’s too thick to penetrate.",{"type":13,"children":2783},[2784],{"text":2717,"type":18},{"type":26,"level":27,"children":2786},[2787],{"text":2788,"type":18},"2. Validating the Idea (Before You Write a Line of Code)",{"type":13,"children":2790},[2791,2793,2795],{"text":2792,"type":18},"Before you search for a ",{"bold":16,"text":2794,"type":18},"custom software development company",{"text":2796,"type":18},", you must validate your assumptions. Coding is the most expensive way to realize you're building something nobody wants.",{"type":26,"level":87,"children":2798},[2799],{"text":2800,"type":18},"The Problem Discovery Phase",{"type":13,"children":2802},[2803],{"text":2804,"type":18},"Don't ask people \"Would you use this?\" Everyone will say yes to be polite. Instead, ask about their past behavior:",{"type":167,"format":168,"children":2806},[2807,2811,2815],{"type":171,"children":2808},[2809],{"text":2810,"type":18},"\"When was the last time you dealt with [Problem X]?\"",{"type":171,"children":2812},[2813],{"text":2814,"type":18},"\"How are you solving it right now?\"",{"type":171,"children":2816},[2817],{"text":2818,"type":18},"\"What do you hate about your current solution?\"",{"type":26,"level":87,"children":2820},[2821],{"text":2822,"type":18},"Smoke Testing & Concierge MVPs",{"type":13,"children":2824},[2825],{"text":2826,"type":18},"You can validate a concept with a landing page and an ad spend of $500. If people click \"Sign Up\" for a product that doesn't exist yet, you have a signal. Alternatively, use a \"Concierge\" approach where a human (you) does the work manually behind the scenes while the user interacts with a simple interface.",{"type":13,"children":2828},[2829,2830],{"text":1337,"type":18},{"text":2831,"type":18,"italic":16},"Visual: A human character interviewing an AI character or looking at 3D data loops representing user feedback, styled in 3D claymorphism with Coral and Teal accents.",{"type":36,"image":2833,"children":2866},{"id":2834,"ext":2065,"url":2835,"hash":2836,"mime":2068,"name":2837,"size":2838,"width":45,"height":46,"formats":2839,"provider":80,"createdAt":2864,"updatedAt":2864,"alternativeText":2865},78,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fm3_L5f_U_Gi3m0_a1697b1d86.webp","m3_L5f_U_Gi3m0_a1697b1d86","m3L5fUGi3m0.webp",53.76,{"large":2840,"small":2846,"medium":2852,"thumbnail":2858},{"ext":2065,"url":2841,"hash":2842,"mime":2068,"name":2843,"path":52,"size":2844,"width":54,"height":55,"sizeInBytes":2845},"\u002Fuploads\u002Flarge_m3_L5f_U_Gi3m0_a1697b1d86.webp","large_m3_L5f_U_Gi3m0_a1697b1d86","large_m3L5fUGi3m0.webp",29.78,29776,{"ext":2065,"url":2847,"hash":2848,"mime":2068,"name":2849,"path":52,"size":2850,"width":62,"height":63,"sizeInBytes":2851},"\u002Fuploads\u002Fsmall_m3_L5f_U_Gi3m0_a1697b1d86.webp","small_m3_L5f_U_Gi3m0_a1697b1d86","small_m3L5fUGi3m0.webp",13.26,13256,{"ext":2065,"url":2853,"hash":2854,"mime":2068,"name":2855,"path":52,"size":2856,"width":70,"height":62,"sizeInBytes":2857},"\u002Fuploads\u002Fmedium_m3_L5f_U_Gi3m0_a1697b1d86.webp","medium_m3_L5f_U_Gi3m0_a1697b1d86","medium_m3L5fUGi3m0.webp",21.53,21530,{"ext":2065,"url":2859,"hash":2860,"mime":2068,"name":2861,"path":52,"size":2862,"width":77,"height":78,"sizeInBytes":2863},"\u002Fuploads\u002Fthumbnail_m3_L5f_U_Gi3m0_a1697b1d86.webp","thumbnail_m3_L5f_U_Gi3m0_a1697b1d86","thumbnail_m3L5fUGi3m0.webp",5.36,5356,"2026-03-17T22:24:08.059Z","Human and AI robot characters analyzing user feedback spheres for startup idea validation.",[2867],{"text":85,"type":18},{"type":13,"children":2869},[2870],{"text":2717,"type":18},{"type":26,"level":27,"children":2872},[2873],{"text":2874,"type":18},"3. Feature Prioritization: The MoSCoW Method",{"type":13,"children":2876},[2877,2879,2881],{"text":2878,"type":18},"Once you have validation, it’s time to define the scope. We recommend the MoSCoW method to keep ",{"bold":16,"text":2880,"type":18},"mvp development for startups",{"text":2882,"type":18}," lean and focused.",{"type":167,"format":168,"children":2884},[2885,2891,2897,2903],{"type":171,"children":2886},[2887,2889],{"bold":16,"text":2888,"type":18},"Must-Have:",{"text":2890,"type":18}," Non-negotiable features. Without these, the product doesn't function (e.g., a payment gateway for an e-commerce app).",{"type":171,"children":2892},[2893,2895],{"bold":16,"text":2894,"type":18},"Should-Have:",{"text":2896,"type":18}," Important but not vital for launch. These can be the first items in the next sprint.",{"type":171,"children":2898},[2899,2901],{"bold":16,"text":2900,"type":18},"Could-Have:",{"text":2902,"type":18}," \"Nice to have\" features that add polish but don't solve the core problem.",{"type":171,"children":2904},[2905,2907],{"bold":16,"text":2906,"type":18},"Won't-Have:",{"text":2908,"type":18}," Features that are explicitly excluded from the first release to prevent scope creep.",{"type":13,"children":2910},[2911,2913],{"bold":16,"text":2912,"type":18},"What to cut immediately:",{"text":2914,"type":18}," In our experience, most startups can launch without:",{"type":167,"format":168,"children":2916},[2917,2921,2925,2929],{"type":171,"children":2918},[2919],{"text":2920,"type":18},"Advanced admin dashboards (use database viewers instead).",{"type":171,"children":2922},[2923],{"text":2924,"type":18},"Multi-language support (start with one).",{"type":171,"children":2926},[2927],{"text":2928,"type":18},"Complex social sharing integrations.",{"type":171,"children":2930},[2931],{"text":2932,"type":18},"\"Perfect\" automated onboarding flows (manual support works at scale 1).",{"type":13,"children":2934},[2935,2936],{"text":1337,"type":18},{"text":2937,"type":18,"italic":16},"Visual: A human character sorting 3D blocks (labeled with feature icons) into bins, representing the MoSCoW method. 3D claymorphism style.",{"type":36,"image":2939,"children":2972},{"id":2940,"ext":2065,"url":2941,"hash":2942,"mime":2068,"name":2943,"size":2944,"width":45,"height":46,"formats":2945,"provider":80,"createdAt":2970,"updatedAt":2970,"alternativeText":2971},76,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fhj_H_Sc_CQ_e940e291b2.webp","hj_H_Sc_CQ_e940e291b2","-hjHSc_CQ-_.webp",38.01,{"large":2946,"small":2952,"medium":2958,"thumbnail":2964},{"ext":2065,"url":2947,"hash":2948,"mime":2068,"name":2949,"path":52,"size":2950,"width":54,"height":55,"sizeInBytes":2951},"\u002Fuploads\u002Flarge_hj_H_Sc_CQ_e940e291b2.webp","large_hj_H_Sc_CQ_e940e291b2","large_-hjHSc_CQ-_.webp",20.26,20264,{"ext":2065,"url":2953,"hash":2954,"mime":2068,"name":2955,"path":52,"size":2956,"width":62,"height":63,"sizeInBytes":2957},"\u002Fuploads\u002Fsmall_hj_H_Sc_CQ_e940e291b2.webp","small_hj_H_Sc_CQ_e940e291b2","small_-hjHSc_CQ-_.webp",9.15,9150,{"ext":2065,"url":2959,"hash":2960,"mime":2068,"name":2961,"path":52,"size":2962,"width":70,"height":62,"sizeInBytes":2963},"\u002Fuploads\u002Fmedium_hj_H_Sc_CQ_e940e291b2.webp","medium_hj_H_Sc_CQ_e940e291b2","medium_-hjHSc_CQ-_.webp",14.61,14614,{"ext":2065,"url":2965,"hash":2966,"mime":2068,"name":2967,"path":52,"size":2968,"width":77,"height":78,"sizeInBytes":2969},"\u002Fuploads\u002Fthumbnail_hj_H_Sc_CQ_e940e291b2.webp","thumbnail_hj_H_Sc_CQ_e940e291b2","thumbnail_-hjHSc_CQ-_.webp",3.87,3866,"2026-03-17T22:24:08.005Z","Human character sorting features using the MoSCoW method for lean startup MVP development.",[2973],{"text":85,"type":18},{"type":13,"children":2975},[2976],{"text":2717,"type":18},{"type":26,"level":27,"children":2978},[2979],{"text":2980,"type":18},"4. Technical Architecture: The AI-Native Advantage",{"type":13,"children":2982},[2983,2985,2989],{"text":2984,"type":18},"This is where the 2026 approach differs from the 2020 approach. Traditional development is slow because it relies on manual boilerplate. At Netling Digital, we utilize ",{"url":2255,"type":97,"children":2986},[2987],{"text":2988,"type":18},"AI-native workflows",{"text":2990,"type":18}," to skip the boring stuff.",{"type":26,"level":87,"children":2992},[2993],{"text":2994,"type":18},"Why AI-Native?",{"type":167,"format":168,"children":2996},[2997,3003,3009],{"type":171,"children":2998},[2999,3001],{"bold":16,"text":3000,"type":18},"Speed:",{"text":3002,"type":18}," We can generate complex architectures and boilerplate code in hours, not weeks.",{"type":171,"children":3004},[3005,3007],{"bold":16,"text":3006,"type":18},"Consistency:",{"text":3008,"type":18}," AI-assisted linting and architecture checks ensure \"clean architecture\" from day one.",{"type":171,"children":3010},[3011,3013],{"bold":16,"text":3012,"type":18},"Scalability:",{"text":3014,"type":18}," Even though it’s an MVP, the foundation is built using modern stacks (like Next.js, FastAPI, or Rust) that can handle growth.",{"type":13,"children":3016},[3017,3019,3021],{"text":3018,"type":18},"When you build an ",{"bold":16,"text":3020,"type":18},"AI-native MVP",{"text":3022,"type":18},", you aren't just building a product; you're building an asset that can be easily handed over to an in-house team or scaled by us later. ",{"type":13,"children":3024},[3025],{"text":2717,"type":18},{"type":26,"level":27,"children":3027},[3028],{"text":3029,"type":18},"5. The Build Phase: Speed vs. Quality",{"type":13,"children":3031},[3032],{"text":3033,"type":18},"The \"Build\" phase is a balancing act. You need to ship fast to get data, but you need to ship quality to get users. ",{"type":26,"level":87,"children":3035},[3036],{"text":3037,"type":18},"The Netling Engineering Craft",{"type":13,"children":3039},[3040],{"text":3041,"type":18},"We believe in \"Bespoke\" development. While we use AI to accelerate, the final product is meticulously reviewed by human engineers. This ensures that the logic is sound and the UI is pixel-perfect. ",{"type":13,"children":3043},[3044],{"bold":16,"text":3045,"type":18},"Our typical MVP timeline:",{"type":167,"format":281,"children":3047},[3048,3054,3060,3066],{"type":171,"children":3049},[3050,3052],{"bold":16,"text":3051,"type":18},"Discovery (1 Week):",{"text":3053,"type":18}," Finalizing the MoSCoW list and user flows.",{"type":171,"children":3055},[3056,3058],{"bold":16,"text":3057,"type":18},"Design (2 Weeks):",{"text":3059,"type":18}," High-fidelity 3D claymorphism or modern UI sets.",{"type":171,"children":3061},[3062,3064],{"bold":16,"text":3063,"type":18},"Development (4-8 Weeks):",{"text":3065,"type":18}," Utilizing AI-native workflows for rapid iteration.",{"type":171,"children":3067},[3068,3070],{"bold":16,"text":3069,"type":18},"Testing & QA (1 Week):",{"text":3071,"type":18}," Ensuring stability and security.",{"type":13,"children":3073},[3074,3075],{"text":1337,"type":18},{"text":3076,"type":18,"italic":16},"Visual: A human and a robot character working together on a glowing 3D blueprint of an application structure. Professional, high-craft aesthetic.",{"type":36,"image":3078,"children":3111},{"id":3079,"ext":2065,"url":3080,"hash":3081,"mime":2068,"name":3082,"size":3083,"width":46,"height":46,"formats":3084,"provider":80,"createdAt":3109,"updatedAt":3109,"alternativeText":3110},77,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002Fudxde_U_Clf_Z_0ee69299ca.webp","udxde_U_Clf_Z_0ee69299ca","-udxdeUClfZ.webp",67.68,{"large":3085,"small":3091,"medium":3097,"thumbnail":3103},{"ext":2065,"url":3086,"hash":3087,"mime":2068,"name":3088,"path":52,"size":3089,"width":54,"height":54,"sizeInBytes":3090},"\u002Fuploads\u002Flarge_udxde_U_Clf_Z_0ee69299ca.webp","large_udxde_U_Clf_Z_0ee69299ca","large_-udxdeUClfZ.webp",59.54,59544,{"ext":2065,"url":3092,"hash":3093,"mime":2068,"name":3094,"path":52,"size":3095,"width":62,"height":62,"sizeInBytes":3096},"\u002Fuploads\u002Fsmall_udxde_U_Clf_Z_0ee69299ca.webp","small_udxde_U_Clf_Z_0ee69299ca","small_-udxdeUClfZ.webp",28.26,28264,{"ext":2065,"url":3098,"hash":3099,"mime":2068,"name":3100,"path":52,"size":3101,"width":70,"height":70,"sizeInBytes":3102},"\u002Fuploads\u002Fmedium_udxde_U_Clf_Z_0ee69299ca.webp","medium_udxde_U_Clf_Z_0ee69299ca","medium_-udxdeUClfZ.webp",44.04,44040,{"ext":2065,"url":3104,"hash":3105,"mime":2068,"name":3106,"path":52,"size":3107,"width":78,"height":78,"sizeInBytes":3108},"\u002Fuploads\u002Fthumbnail_udxde_U_Clf_Z_0ee69299ca.webp","thumbnail_udxde_U_Clf_Z_0ee69299ca","thumbnail_-udxdeUClfZ.webp",6.67,6670,"2026-03-17T22:24:08.007Z","Human and AI robot hands building a technical architecture structure representing engineering craft.",[3112],{"text":85,"type":18},{"type":13,"children":3114},[3115],{"text":2717,"type":18},{"type":26,"level":27,"children":3117},[3118],{"text":3119,"type":18},"6. Post-Launch: Measuring Success and Pivoting",{"type":13,"children":3121},[3122],{"text":3123,"type":18},"Your MVP is a learning tool. Once it’s live, the real work begins. You need to track metrics that actually matter, not vanity metrics like \"Total Registered Users.\"",{"type":13,"children":3125},[3126],{"bold":16,"text":3127,"type":18},"Focus on:",{"type":167,"format":168,"children":3129},[3130,3136,3142],{"type":171,"children":3131},[3132,3134],{"bold":16,"text":3133,"type":18},"Retention Rate:",{"text":3135,"type":18}," Do users come back on Day 30?",{"type":171,"children":3137},[3138,3140],{"bold":16,"text":3139,"type":18},"Conversion Rate:",{"text":3141,"type":18}," Are they performing the \"Core Action\"?",{"type":171,"children":3143},[3144,3146],{"bold":16,"text":3145,"type":18},"Net Promoter Score (NPS):",{"text":3147,"type":18}," Would they be \"very disappointed\" if the product disappeared?",{"type":13,"children":3149},[3150],{"text":3151,"type":18},"If the data shows your core assumption was wrong, don't be afraid to pivot. The beauty of a lean MVP is that you haven't spent your entire seed round on a failing idea. You have the runway left to adjust.",{"type":13,"children":3153},[3154],{"text":2717,"type":18},{"type":26,"level":27,"children":3156},[3157],{"text":3158,"type":18},"7. Netling Digital's Unique Approach",{"type":13,"children":3160},[3161,3163,3164],{"text":3162,"type":18},"Why do startups choose Netling Digital as their ",{"bold":16,"text":2794,"type":18},{"text":3165,"type":18},"? Because we act as your fractional CTO and engineering team, not just a \"vendor.\"",{"type":167,"format":168,"children":3167},[3168,3174,3180],{"type":171,"children":3169},[3170,3172],{"bold":16,"text":3171,"type":18},"No Hidden Overhead:",{"text":3173,"type":18}," We provide clear, transparent pricing and timelines.",{"type":171,"children":3175},[3176,3178],{"bold":16,"text":3177,"type":18},"Proactive Communication:",{"text":3179,"type":18}," We don’t wait for you to find bugs; we find them first.",{"type":171,"children":3181},[3182,3184,3186,3190],{"bold":16,"text":3183,"type":18},"Modern Tech Stack:",{"text":3185,"type":18}," We leverage the latest in AI and cloud infrastructure. Check our ",{"url":2496,"type":97,"children":3187},[3188],{"text":3189,"type":18},"technology stack",{"text":3191,"type":18}," for more details.",{"type":13,"children":3193},[3194,3196,3201],{"text":3195,"type":18},"We’ve moved beyond the traditional agency model. By integrating AI agents into our ",{"url":3197,"type":97,"children":3198},"https:\u002F\u002Fnetling.digital\u002Fblog\u002Fhired-ai-agents-software-studio-discord",[3199],{"text":3200,"type":18},"studio workflows",{"text":3202,"type":18},", we deliver better code at a pace that was impossible two years ago.",{"type":13,"children":3204},[3205],{"text":2717,"type":18},{"type":26,"level":27,"children":3207},[3208],{"text":3209,"type":18},"Final Thoughts",{"type":13,"children":3211},[3212],{"text":3213,"type":18},"Building an MVP in 2026 is an exercise in focus. It requires the discipline to say \"no\" to good ideas so you can say \"yes\" to the one great idea that defines your startup. ",{"type":13,"children":3215},[3216,3218,3222],{"text":3217,"type":18},"If you're ready to transform your vision into a high-performance product, we're here to help you navigate the journey from ",{"url":2453,"type":97,"children":3219},[3220],{"text":3221,"type":18},"Discovery to Launch",{"text":267,"type":18},{"type":13,"children":3224},[3225,3227,3228,3232],{"bold":16,"text":3226,"type":18},"Ready to build?",{"text":1337,"type":18},{"url":765,"type":97,"children":3229},[3230],{"text":3231,"type":18},"Contact us today",{"text":3233,"type":18}," and let’s talk about your MVP.",{"type":13,"children":3235},[3236,3237],{"text":1337,"type":18},{"text":3238,"type":18,"italic":16},"Visual: Human and Robot characters high-fiving in front of a successful 3D rocket launch (representing a product launch), with Teal and Coral growth charts in the background.",{"type":36,"image":3240,"children":3273},{"id":3241,"ext":2065,"url":3242,"hash":3243,"mime":2068,"name":3244,"size":3245,"width":46,"height":46,"formats":3246,"provider":80,"createdAt":3271,"updatedAt":3271,"alternativeText":3272},75,"https:\u002F\u002Fcms.netling.digital\u002Fuploads\u002FQp_T_Wpu6_EA_Fo_fd440e1501.webp","Qp_T_Wpu6_EA_Fo_fd440e1501","QpTWpu6EAFo.webp",40.87,{"large":3247,"small":3253,"medium":3259,"thumbnail":3265},{"ext":2065,"url":3248,"hash":3249,"mime":2068,"name":3250,"path":52,"size":3251,"width":54,"height":54,"sizeInBytes":3252},"\u002Fuploads\u002Flarge_Qp_T_Wpu6_EA_Fo_fd440e1501.webp","large_Qp_T_Wpu6_EA_Fo_fd440e1501","large_QpTWpu6EAFo.webp",36.12,36120,{"ext":2065,"url":3254,"hash":3255,"mime":2068,"name":3256,"path":52,"size":3257,"width":62,"height":62,"sizeInBytes":3258},"\u002Fuploads\u002Fsmall_Qp_T_Wpu6_EA_Fo_fd440e1501.webp","small_Qp_T_Wpu6_EA_Fo_fd440e1501","small_QpTWpu6EAFo.webp",17.7,17700,{"ext":2065,"url":3260,"hash":3261,"mime":2068,"name":3262,"path":52,"size":3263,"width":70,"height":70,"sizeInBytes":3264},"\u002Fuploads\u002Fmedium_Qp_T_Wpu6_EA_Fo_fd440e1501.webp","medium_Qp_T_Wpu6_EA_Fo_fd440e1501","medium_QpTWpu6EAFo.webp",27.15,27150,{"ext":2065,"url":3266,"hash":3267,"mime":2068,"name":3268,"path":52,"size":3269,"width":78,"height":78,"sizeInBytes":3270},"\u002Fuploads\u002Fthumbnail_Qp_T_Wpu6_EA_Fo_fd440e1501.webp","thumbnail_Qp_T_Wpu6_EA_Fo_fd440e1501","thumbnail_QpTWpu6EAFo.webp",4.45,4454,"2026-03-17T22:24:07.743Z","Human and AI robot celebrating a successful product launch with a rising rocket and growth metrics.",[3274],{"text":85,"type":18},"2026-03-17T22:24:09.699Z","2026-03-17T22:24:20.927Z",{"id":3278,"documentId":3279,"name":3280,"alternativeText":2705,"caption":52,"focalPoint":52,"width":45,"height":46,"formats":3281,"hash":3306,"ext":2065,"mime":2068,"size":3307,"url":3308,"previewUrl":52,"provider":80,"provider_metadata":52,"createdAt":3309,"updatedAt":3309,"publishedAt":3310},79,"hmpxuvac2g9ih49gil9a7sfp","ccbdKdGHRz1.webp",{"large":3282,"small":3288,"medium":3294,"thumbnail":3300},{"ext":2065,"url":3283,"hash":3284,"mime":2068,"name":3285,"path":52,"size":3286,"width":54,"height":55,"sizeInBytes":3287},"\u002Fuploads\u002Flarge_ccbd_Kd_GH_Rz1_0791275580.webp","large_ccbd_Kd_GH_Rz1_0791275580","large_ccbdKdGHRz1.webp",39.71,39714,{"ext":2065,"url":3289,"hash":3290,"mime":2068,"name":3291,"path":52,"size":3292,"width":62,"height":63,"sizeInBytes":3293},"\u002Fuploads\u002Fsmall_ccbd_Kd_GH_Rz1_0791275580.webp","small_ccbd_Kd_GH_Rz1_0791275580","small_ccbdKdGHRz1.webp",17.84,17840,{"ext":2065,"url":3295,"hash":3296,"mime":2068,"name":3297,"path":52,"size":3298,"width":70,"height":62,"sizeInBytes":3299},"\u002Fuploads\u002Fmedium_ccbd_Kd_GH_Rz1_0791275580.webp","medium_ccbd_Kd_GH_Rz1_0791275580","medium_ccbdKdGHRz1.webp",28.58,28584,{"ext":2065,"url":3301,"hash":3302,"mime":2068,"name":3303,"path":52,"size":3304,"width":77,"height":78,"sizeInBytes":3305},"\u002Fuploads\u002Fthumbnail_ccbd_Kd_GH_Rz1_0791275580.webp","thumbnail_ccbd_Kd_GH_Rz1_0791275580","thumbnail_ccbdKdGHRz1.webp",6.79,6794,"ccbd_Kd_GH_Rz1_0791275580",67.73,"\u002Fuploads\u002Fccbd_Kd_GH_Rz1_0791275580.webp","2026-03-17T22:24:09.613Z","2026-03-17T22:24:09.614Z",{"id":824,"documentId":825,"name":826,"slug":827,"bio":52,"role":52,"createdAt":828,"updatedAt":828,"publishedAt":829,"avatar":52},{"id":27,"documentId":831,"name":832,"slug":833,"description":52,"createdAt":834,"updatedAt":834,"publishedAt":835},[3314,3315,3321,3322,3326],{"id":2689,"documentId":2690,"name":2691,"slug":2692,"createdAt":2693,"updatedAt":2693,"publishedAt":2694},{"id":785,"documentId":3316,"name":3317,"slug":3318,"createdAt":3319,"updatedAt":3319,"publishedAt":3320},"qzwj2md09xkieugv4ew9atz1","Startup Strategy","startup-strategy","2026-03-05T12:02:51.172Z","2026-03-05T12:02:51.168Z",{"id":27,"documentId":2696,"name":2697,"slug":2698,"createdAt":2699,"updatedAt":2699,"publishedAt":2700},{"id":87,"documentId":3323,"name":832,"slug":833,"createdAt":3324,"updatedAt":3324,"publishedAt":3325},"ms7neopngly1ocoeya9gboo0","2026-02-27T14:27:19.618Z","2026-02-27T14:27:19.615Z",{"id":3327,"documentId":3328,"name":3329,"slug":3330,"createdAt":3331,"updatedAt":3331,"publishedAt":3332},37,"pj5u2reh0g85r88q8ppmu41t","Product Management","product-management","2026-03-17T20:56:43.901Z","2026-03-17T20:56:43.899Z",{"pagination":3334},{"page":824,"pageSize":87,"pageCount":3335,"total":3336},4,11]