<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Metaport]]></title><description><![CDATA[Website maintenance agencies can actually schedule.]]></description><link>https://blog.metaport.sh</link><image><url>https://substackcdn.com/image/fetch/$s_!nrgK!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70a774d7-d08c-45b8-94ac-f0ba957b0af4_320x320.png</url><title>Metaport</title><link>https://blog.metaport.sh</link></image><generator>Substack</generator><lastBuildDate>Wed, 06 May 2026 11:22:29 GMT</lastBuildDate><atom:link href="https://blog.metaport.sh/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Dcentrica]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[dcentrica@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[dcentrica@substack.com]]></itunes:email><itunes:name><![CDATA[Dcentrica]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dcentrica]]></itunes:author><googleplay:owner><![CDATA[dcentrica@substack.com]]></googleplay:owner><googleplay:email><![CDATA[dcentrica@substack.com]]></googleplay:email><googleplay:author><![CDATA[Dcentrica]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Hidden Margin Killer: Quantifying the Cost of Reactive Maintenance in agency and studio Portfolios.]]></title><description><![CDATA[Professional and managed services teams know maintenance matters.]]></description><link>https://blog.metaport.sh/p/the-hidden-margin-killer-quantifying</link><guid isPermaLink="false">https://blog.metaport.sh/p/the-hidden-margin-killer-quantifying</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Tue, 05 May 2026 21:58:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7iWu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Professional and managed services teams know maintenance matters. The harder question is whether they know what reactive maintenance is actually costing them.</p><p>This is one of those problems that can sit quietly in the background for a long time. A website launches. An application goes live. The team celebrates briefly and moves on to the next project. Over time, that new system becomes one more thing in a growing estate of frameworks, libraries, dependencies, hosting environments, SSL certificates, integrations, APIs, and security obligations.</p><p>Nothing looks especially urgent if you or your org has maintenance blind spots.</p><p>A framework reaches <strong>end of life</strong> (EOL). A dependency vulnerability is published. A client asks whether they are exposed. A developer has to stop planned work to investigate. A project manager has to re-scope work that now needs budgeting. Maybe a Statement of Work is required. Maybe a proposal or business case needs to be built. Someone then has to explain why something that &#8220;just worked&#8221; last week now needs time, money, and attention.</p><p>The technical fix may be a few hours, a few days, or in the case of larger upgrades and migrations, several months. The cost around the fix is usually the bigger problem.</p><p>In our <strong><a href="https://getmetaport.com/doc/resources/whitepaper.pdf">whitepaper</a></strong>, <strong>Hidden Costs in Application Maintenance: How Proactive Agencies Win</strong>, we describe maintenance as a blind spot in agency operations. Not because teams are careless, but because the information needed to manage maintenance properly is often spread across engineering knowledge, Slack threads, spreadsheets, hosting platforms, existing application security (AppSec) tools, version control repositories, and individual memory.</p><p>Maintenance is often reactive. It starts after something fails, after a client escalates, or after a security risk becomes visible enough that it can no longer be ignored. The knowledge is also usually siloed. Developers may know where the risks are, but that does not mean project managers, account leads, delivery leads, or executives have a useful portfolio-wide view or know if a problem found in one project doesn&#8217;t also affect others.</p><p><strong>That is where the issue stops being technical and starts becoming commercial.</strong></p><p>Unplanned maintenance pulls people away from planned work. It creates context switching. It disrupts delivery momentum. It makes budget conversations harder. It can make an agency look less in control than it actually is.</p><h3><strong>What Reactive Maintenance Costs in Real Terms</strong></h3><p>Using conservative industry data and typical developer charge-out rates of USD $75&#8211;$150 per hour, the financial cost of ad-hoc maintenance can be modeled fairly quickly.</p><p>Take cross-portfolio end-of-life (EOL) planning as one example.</p><p>If EOL planning takes around 10 hours per project annually, spread across developers and project managers, then a 10-project portfolio represents roughly 100 hours of unplanned effort. At</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7iWu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7iWu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 424w, https://substackcdn.com/image/fetch/$s_!7iWu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 848w, https://substackcdn.com/image/fetch/$s_!7iWu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 1272w, https://substackcdn.com/image/fetch/$s_!7iWu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7iWu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png" width="871" height="489" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acf17192-a0bd-4490-81ee-169f24292abd_871x489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:489,&quot;width&quot;:871,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:513477,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/196594767?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7iWu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 424w, https://substackcdn.com/image/fetch/$s_!7iWu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 848w, https://substackcdn.com/image/fetch/$s_!7iWu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 1272w, https://substackcdn.com/image/fetch/$s_!7iWu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf17192-a0bd-4490-81ee-169f24292abd_871x489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p> <strong>USD $75&#8211;$150 per hour</strong>, that equates to <strong>USD $7,500&#8211;$15,000 per year</strong> in time that may not be properly forecast, budgeted, or recovered.</p><p>Now take cross-portfolio vulnerability review and risk analysis. If vulnerability review takes around 1 hour per project, per week, then a 10-project portfolio creates around 10 hours of recurring weekly effort. At the same charge-out range, that becomes approximately <strong>USD $3,000&#8211;$6,000 per month</strong> in avoidable cost.</p><p>That is before the wider operational cost is counted: context switching, delayed roadmap work, emergency client communication, re-planning, proposal effort, and the loss of confidence that comes when clients feel issues are being discovered late rather than managed early.</p><p>For one application, the cost may feel tolerable. Across 20, 40, or 100 maintained applications, the numbers start to look very different. <strong>This is the commercial shape of the problem.</strong></p><p>Reactive maintenance is not just a technical risk. It is margin leakage hiding inside normal delivery operations.</p><h3><strong>Leveraging AI Makes This More Complicated at Scale</strong></h3><p>AI is making it faster to create software, scripts, internal tools, prototypes, features, and automation. That is useful, but it also means organisations may be creating more digital assets than they have maintenance discipline for.</p><p>Every new asset creates a future obligation. Dependencies need monitoring. Runtimes need patching. APIs change. Hosting environments age. Security risks emerge. AI-generated code may also introduce patterns that are harder to understand later, particularly when it was created quickly and without enough architectural context.</p><p>The AI cost model is changing as well. More AI platforms are moving toward<strong> </strong>usage-based pricing or tightening the economics around heavy use. So the cost of running and maintaining digital assets is no longer just hosting, software licences, support retainers, developer time, and security tooling.</p><p>AI usage itself becomes another cost line teams need to understand and justify.</p><p>That matters because the reactive maintenance cost is already material. Even a simple 10-project model can point to <strong>USD $7,500&#8211;$15,000 per year</strong> in unplanned EOL planning effort, and <strong>USD $3,000&#8211;$6,000 per month</strong> in recurring vulnerability review and risk analysis.</p><p>If AI increases the volume of software being created, and adds another usage-based cost layer to reviewing, analysing, remediating, and maintaining that software, visibility becomes more important, not less.</p><p>That creates a simple but uncomfortable question:</p><p><strong>Are we creating more digital assets than we can afford to maintain well?</strong></p><p>That is not an argument against AI. It is an argument for better visibility. Shipping faster is only useful if teams can still govern, secure, maintain, and explain what they have shipped.</p><h3><strong>The Fix is Only One Part of the Cost</strong></h3><p>A common mistake is to measure maintenance by the fix itself. That misses all the surrounding cost that customers may assume is simply &#8220;a cost of business.&#8221;</p><p>The maintenance question is no longer just</p><blockquote><p>How much does it cost to fix this issue?</p></blockquote><p>It is closer to</p><blockquote><p>How much are we spending to discover, understand, explain, prioritise, and repeatedly rework issues we could have seen or planned for earlier?</p></blockquote><h3><strong>What Changes When Maintenance is Planned</strong></h3><p>A <strong>proactive</strong> agency has a different conversation with its clients. It can see which applications are approaching end of life. It can identify which clients are affected by a vulnerability. It can plan upgrade windows before they become emergencies.</p><p>The tone of the conversation changes from,</p><blockquote><p>We have a problem and need to fix this urgently</p></blockquote><p>to:</p><blockquote><p>We are tracking this across your environment. Here is what is coming, here is the likely impact, and here is how we recommend planning for it.</p></blockquote><p>Commercially, it is significant. It builds confidence. It makes maintenance easier to budget. It gives project managers better information. It also creates a stronger basis for ongoing client relationships. Maintenance stops being only a cost centre and becomes part of the service model.</p><h3><strong>Where Metaport Fits</strong></h3><p>This is the problem we are working on with <strong><a href="https://getmetaport.com/?utm_source=dcentrica&amp;utm_medium=blog_article&amp;utm_campaign=reactive_maintenance_costs">Metaport</a></strong>.</p><p><strong><a href="https://getmetaport.com/?utm_source=dcentrica&amp;utm_medium=blog_article&amp;utm_campaign=reactive_maintenance_costs">Metaport</a></strong> is designed to help agencies and digital teams see maintenance risk across the applications they manage. It brings together signals around end-of-life (EOL), dependencies, vulnerabilities, and SSL expiries, so teams can move from reactive discovery to <strong>proactive planning</strong>.</p><p>The value is in making maintenance risk visible at the <strong>portfolio level</strong>, in a way project managers, delivery leads, and leadership can actually use.</p><p>Because the hard part is not always fixing the issue. Often, the hard part is seeing it early enough to have the right conversation, with the right person, at the right time.</p><p><strong>Want to stop maintenance from creeping up on you?</strong></p><p><strong><a href="https://demo.metaport.sh/Security/login?utm_source=dcentrica&amp;utm_medium=blog_article&amp;utm_campaign=reactive_maintenance_costs">Take a tour of Metaport</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Software End of Life vs End of Support (2026)]]></title><description><![CDATA[And What It Means When You Manage Multiple Websites]]></description><link>https://blog.metaport.sh/p/software-end-of-life-vs-end-of-support</link><guid isPermaLink="false">https://blog.metaport.sh/p/software-end-of-life-vs-end-of-support</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Fri, 20 Mar 2026 00:33:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Kwvh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kwvh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kwvh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 424w, https://substackcdn.com/image/fetch/$s_!Kwvh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 848w, https://substackcdn.com/image/fetch/$s_!Kwvh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 1272w, https://substackcdn.com/image/fetch/$s_!Kwvh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kwvh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png" width="1024" height="1062" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1062,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:730097,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/191517598?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Kwvh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 424w, https://substackcdn.com/image/fetch/$s_!Kwvh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 848w, https://substackcdn.com/image/fetch/$s_!Kwvh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 1272w, https://substackcdn.com/image/fetch/$s_!Kwvh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4299b2dc-6c8b-4c01-be92-b8c3c1ec4da4_1024x1062.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Your digital teams don&#8217;t struggle to understand what <strong>end of support</strong> or <strong>end of life</strong> mean in theory. What they do struggle with is the weight of knowing what such signals should mean in practice when they&#8217;re responsible for an entire portfolio of websites and applications.<br><br>A single outdated component on just one website might be manageable. But across dozens of them, it&#8217;s something else entirely. Planning, delivery, budgeting, and security are all affected, as are customer conversations.<br><br>The distinction between <strong>software end of life</strong> and <strong>end of support</strong> matters because definitions affect how your teams prioritize work, where risk is building <strong>across your</strong> <strong>digital portfolio</strong>, and how early you need to act.</p><div><hr></div><p style="text-align: center;">Do you manage multiple websites at scale? We&#8217;re keen to talk to you. How do you plan for End of Life and End of Support?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/contact/&quot;,&quot;text&quot;:&quot;Lets chat&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/contact/"><span>Lets chat</span></a></p><p style="text-align: center;"></p><h2><strong>End of support</strong> vs <strong>end of life</strong></h2><p><strong>End of support</strong> (EOS) means software still &#8220;works&#8221;, but its vendor or maintainer is signaling that they&#8217;re no longer actively supporting it.</p><p>What this means practically is that websites become increasingly vulnerable to a security incident or become susceptible to degraded performance because there&#8217;s:</p><ul><li><p>no bug fixes (may vary by vendor)</p></li><li><p><strong>Sometimes or no security fixes (may vary by vendor)</strong></p></li><li><p>no feature development</p></li><li><p>no technical or vendor support</p></li></ul><p>Essentially, the software itself may continue to be available alongside its documentation, but users or &#8220;consumers&#8221; of it can have no confidence of it's ongoing compatibility.</p><p><strong>End of life</strong> (EOL) on the other hand goes a step further. It&#8217;s a hard-stop, a signal that &#8220;this software should no longer be used&#8221;. The software itself or a specific version of it has been retired altogether. Continuing to run it becomes harder to justify over time. </p><p>Building on End of Support, what this means practically is</p><ul><li><p><strong>no bug fixes (at all)</strong></p></li><li><p><strong>no security fixes (at all)</strong></p></li><li><p><strong>no feature development (at all)</strong></p></li><li><p><strong>not available in some ecosystems, repositories, or marketplaces</strong></p></li></ul><p>For website teams, the practical difference is <strong>timing</strong>:</p><p><strong>End of support</strong> is usually the point where risk starts to increase.</p><p><strong>End of life</strong> is the point where that risk becomes much harder to accept.</p><p>These may sound like minor distinctions, but it does change how you should plan.</p><h2>Why things become harder across <strong>multiple websites</strong></h2><p>If you manage one website, life-cycle issues can often be dealt with as they come up. If you&#8217;re responsible for ten, fifty, or hundreds, then that approach doesn&#8217;t hold up for long.</p><p>Different websites are often running different CMS versions, plugins, frameworks, hosting setups, runtimes, and third-party integrations. All of those have their own support timelines and upgrade paths. Each carry different levels of risk depending on what the site does and who&#8217;s relying on it.</p><p>That is where <strong>software end of life tracking</strong> starts to matter.</p><p>Without a clear view across the portfolio, teams end up asking the same questions over and over:</p><ul><li><p>Which sites are approaching end of support?</p></li><li><p>Which clients need an upgrade conversation this quarter?</p></li><li><p>Which issues are genuinely urgent, and which can wait?</p></li><li><p>Where is the biggest concentration of risk?</p></li><li><p>What should the team focus on first?</p></li></ul><p>When those answers are hard to see, <strong>maintenance is reactive</strong>. Work is driven by whatever breaks, whatever becomes critical, or whatever someone happens to notice first.</p><h2>Why spreadsheets and manual tracking only get you so far</h2><p>Most agencies start in a reasonable place. A spreadsheet, wiki or even a configuration management database (CMDB). Maybe a few reminders in a ticketing system, calendars or even a system developed in-house (<a href="https://blog.metaport.sh/p/should-agencies-build-their-own-website">maybe don&#8217;t do that</a>). Whatever it is, teams are reliant on an occasional technical audit and a hope that insights are forthcoming.</p><p>This can work for a while. But once you&#8217;re managing multiple websites across different clients, teams, products, or business units, it gets harder to trust and harder to maintain as you scale.</p><p>The challenge is not just in the collection of end-of-life data, it&#8217;s also in turning that <strong>data into something usable</strong>.</p><p>A spreadsheet might tell you a framework version is old. It usually does not tell you:</p><ul><li><p>which live websites or applications are affected</p></li><li><p>how close each component is to end of support</p></li><li><p>where the highest business or security risk sits</p></li><li><p>how work should be sequenced across the portfolio</p></li><li><p>what needs to be raised with clients or stakeholders now</p></li></ul><p>A life-cycle date on its own is just <strong>reference information</strong>. The value comes from understanding what that date means in the context of the websites you actually manage.</p><p>Resources like our <a href="https://isitendoflife.com/">Is It End of Life tool</a> are useful for checking support status across common technologies. But checking a date is only part of the problem. You still need to know how that date affects your portfolio.</p><h2>So, when should you update software?</h2><p>Best practice, <strong>before support ends (End of Support)</strong>, not after.</p><p>That sounds obvious, but in reality the right timing depends on more than the life-cycle date itself.</p><h3>Support timelines</h3><p>If a CMS, framework, or runtime has a published <strong>support end date</strong>, that should shape your overall planning horizon. A source like <a href="https://isitendoflife.com/)">isitendoflife.com</a> can help confirm whether a version is still supported, but it does not help create the plan for you, and gathering this information is time consuming over a wide digital portfolio.</p><h3>Business criticality</h3><p>Not every website matters equally. A low-risk <strong>campaign site</strong> and a <strong>core business platform</strong> may not be treated the same way. The more important the site, the less <strong>risk  tolerance</strong> there should be for unsupported components.</p><h3>Upgrade complexity</h3><p>Some updates are minor. Others need <strong>code changes, regression testing, infrastructure changes, or stakeholder coordination</strong>. The harder the upgrade path, the earlier it needs to show up in planning as these activities will often take weeks or months of your team&#8217;s capability.</p><h3>Portfolio scale</h3><p>If several websites are heading toward support deadlines at the same time, the issue stops being purely technical. It becomes a <strong>delivery and capacity problem</strong> as well. <br><br>Your clients may see this too if you are too busy on what you feel is higher priority, so <strong>reputational risk</strong> comes into play.</p><h3>Security and compliance expectations</h3><p>For some teams, unsupported software is not just untidy maintenance. It can create <strong>security, audit, governance, or client assurance issues</strong>.</p><p>A useful rule of thumb is not to wait until software is obviously obsolete. The better time to plan is while support is still active and the <strong>window to act</strong> is still manageable.</p><div><hr></div><p style="text-align: center;">We know a thing or two about agencies and managing software EOL dates. <br>In this guide, we offer some practical steps and boilerplate copy for use in your own customer conversations.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf&quot;,&quot;text&quot;:&quot;Get EOL Guide&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf"><span>Get EOL Guide</span></a></p><h2>What teams should actually be tracking</h2><p>A <strong>life-cycle date</strong> is only the starting point.</p><p>For teams that are already reasonably mature, the more useful question is not just whether a component is supported. It is whether they can see the <strong>operational implications</strong> clearly across the websites they manage.</p><p>This means tracking:</p><ul><li><p>the technologies each website is running</p></li><li><p>the components are approaching end of support</p></li><li><p>which components are already end of life</p></li><li><p>how critical each affected website is</p></li><li><p>how difficult the upgrade path is likely to be</p></li><li><p>how soon action needs to happen</p></li><li><p>how many sites are exposed to the same issue</p></li></ul><p>A team might fully understand <strong>end of support vs end of life</strong> as concepts and still be carrying more risk than they realize because they cannot see where those conditions exist across the portfolio.</p><h3>Managing <strong>multiple websites</strong> without losing sight of <strong>maintenance risk</strong></h3><p>When people ask how to <strong>manage multiple websites</strong> more effectively, <strong>life-cycle visibility</strong> is a big part of the answer.</p><p>Managing multiple websites is not just about content governance, uptime, or design consistency. It is also about knowing where <strong>maintenance risk</strong> is building, and being able to respond before that risk turns into disruption.</p><p>A more sustainable approach usually looks something like this:</p><h3>Keep a current inventory</h3><p>Know what each website is running across CMS versions, plugins, frameworks, runtimes, hosting dependencies, and major integrations.</p><h3>Map life-cycle status</h3><p>Track which components are supported, which are nearing end of support, and which are already end of life.</p><h3>Prioritize by impact</h3><p>Not every issue needs immediate action. Prioritize based on business criticality, security exposure, effort to remediate, and how broadly the issue appears across the portfolio.</p><h3>Plan ahead</h3><p>Use <strong>life-cycle visibility</strong> to shape quarterly or half-yearly maintenance planning, rather than waiting for urgent issues to force the work onto the roadmap.</p><h3>Communicate clearly</h3><p>Make it easier to explain what is coming, what matters now, and where clients or stakeholders should expect investment.</p><p>This is where a <strong>portfolio-level view</strong> becomes far more useful than isolated checks.</p><p>It is one thing to know a version is unsupported. It is another to know which websites are affected, how urgent the issue really is, and how that work fits into the rest of your maintenance programme.</p><h2>Turning <strong>life-cycle data</strong> into actual planning</h2><p>Knowing that a version is approaching <strong>end of support</strong> is useful.</p><p>Knowing which ten websites are affected, which three carry the most risk, and which two can reasonably wait until next quarter is much more useful.</p><p>That is the difference between <strong>reference data</strong> and <strong>operational visibility</strong>.</p><p>For teams <strong>managing multiple websites</strong>, life-cycle information becomes much more valuable when it helps answer questions like:</p><ul><li><p>What needs action now?</p></li><li><p>What can wait?</p></li><li><p>Where are we carrying the most risk?</p></li><li><p>Which upgrade conversations need to happen this month?</p></li><li><p>How do we stop maintenance becoming reactive?</p></li></ul><p>Rather than being just another reference source for life-cycle dates, <strong><a href="https://getmetaport.com">Metaport</a></strong> is designed to help delivery and portfolio managers see <strong>maintenance risk </strong>across the websites they manage, identify where attention is needed first, and <strong>plan work more confidently</strong>.</p><p><strong>Metaport</strong> achieves this providing tools such as the <strong>App Planner</strong>, <strong>Policy-based notification</strong> and the <strong>Application Health Report</strong> for each application.</p><p>We will continue to build new features that focus on these questions, and we&#8217;ll continue to not fall into the &#8220;<strong>AppSec tool</strong>&#8221; trap. All the while we invest in meaningful integrations to compliment tools you are already using at a technical layer such as <em>Dependabot, JIRA, DependencyTrack, Redmine, GitHub and GitLab</em>.</p><p>For agencies and digital teams that have outgrown spreadsheets and one-off audits, <a href="https://getmetaport.com">Metaport</a> points to a more practical way of turning life-cycle and dependency information into portfolio-wide planning, risk awareness and prioritization.</p><h2>Final thoughts</h2><p>The difference between end of support and end of life does matter.</p><p>But for teams <strong>managing multiple websites</strong>, the bigger issue is not definition. It is <strong>visibility</strong>.</p><p><strong>End of support</strong> is usually the point where risk starts rising. </p><p><strong>End of life</strong> is where deferral becomes much harder to defend. </p><p>The challenge is being able to see those signals clearly across the portfolio before they turn into urgent problems.</p><p>That is why <strong>software end of life tracking</strong> matters in practice. Better visibility leads to better planning, better prioritization, and better conversations with clients and stakeholders.</p><p>If your delivery leads are already checking support dates by interrupting your developers, spending hours manually curating spreadsheets, the next step is being able to see what those dates actually mean across the websites you manage. </p><p>That is exactly the kind of visibility <a href="https://getmetaport.com">Metaport is built to provide</a>.</p><div><hr></div><p>Do you work in a digital agency? We&#8217;d <a href="https://getmetaport.com/contact">love to know how</a> you&#8217;re thinking about your own internal systems.</p><p>If you want to level-up your own agency&#8217;s website and application monitoring, alerting, and planning, then <a href="https://getmetaport.com/#signup">be among the first to know when Metaport SaaS arrives</a>.</p><p>But don&#8217;t take our word for it, have a look at it yourself and let us know what you think.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://demo.metaport.sh/Security/login&quot;,&quot;text&quot;:&quot;Take Tour&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://demo.metaport.sh/Security/login"><span>Take Tour</span></a></p>]]></content:encoded></item><item><title><![CDATA[Should agencies build their own website security and maintenance solutions?]]></title><description><![CDATA[Or why agencies shouldn't build their own Alpaca Management System.]]></description><link>https://blog.metaport.sh/p/should-agencies-build-their-own-website</link><guid isPermaLink="false">https://blog.metaport.sh/p/should-agencies-build-their-own-website</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Wed, 11 Mar 2026 18:46:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JcQI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JcQI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JcQI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!JcQI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!JcQI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!JcQI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JcQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2441981,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/190646412?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JcQI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!JcQI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!JcQI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!JcQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e65fd8-2502-4ab9-a1ac-33dd2fb099d0_1024x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>We&#8217;ve been talking to agencies for quite some time. It has been, and remains a fascinating process - because we&#8217;ve gone from <strong>assuming</strong> that agency maintenance practices leave something to be desired, to having the <strong>data tell us</strong> that it is indeed so. *</p><p>Of those we&#8217;ve spoken to, we&#8217;ve found that some have almost no formal maintenance processes or reporting tools (we&#8217;re talking to these guys). Others already operate well-known <a href="https://getmetaport.com/application-security">application security</a> tools for monitoring and notification (<a href="https://getmetaport.com">Metaport</a> integrates with some, so we&#8217;re talking to these guys too).</p><p>But most pertinent are those agencies we&#8217;re not talking to at all. Rather, they don&#8217;t want to talk to <strong>us</strong>.</p><p>Why? Well it&#8217;s not for want of asking. It&#8217;s because they&#8217;ve cobbled together a solution themselves which appears to work for them for the time being.</p><div><hr></div><p style="text-align: center;">Is your agency in this camp too? We&#8217;re keen to talk to you. What did you build? Out of what, and why?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/contact&quot;,&quot;text&quot;:&quot;Let's Chat&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/contact"><span>Let's Chat</span></a></p><h2>Democratising software or diminishing lived experience?</h2><p>It&#8217;s March 2026 and we&#8217;re very much established in the age of AI where practically anyone can build and deploy a software application in a matter of days.</p><p>There&#8217;s a story being told of the decreasing existential moat supposedly surrounding traditional software and SaaS providers, which we want to query: Does self-managed software - built with the help of AI or otherwise - really spell the end of the traditional SaaS? Or are we collectively missing the obvious?</p><p>When I was a senior developer, I would advocate that my team allocate at least 25% of their estimates to doing nothing at all.</p><p>OK, that&#8217;s not strictly true. Developers are knowledge workers, so I what I was actually asking was that the 25% be spent <strong>thinking</strong>. Developers find not doing physical things like that really hard because in their world, key-presses == productivity.</p><p>So it would be ore than a shame if as engineering professionals, our hard-won skills, knowledge, and experience were cast aside because when considering building a tool ourselves - we&#8217;d fallen at the first hurdle - not thinking too deeply first.</p><h2>Back in the day</h2><p>Going back to first principles, it&#8217;s pertinent to ask why does SaaS as a category of software even exist? And while we&#8217;re at it, we might equally ask why anyone uses software at all?</p><p>Software didn&#8217;t used to be so-named. It was commonly referred-to as &#8220;a program&#8221; and was only available for install on a desktop PC via a floppy disk. Later it was available via the upstart CD-ROM, and later still came the internet which provided the ability to download all that you needed (and much that you didn&#8217;t, but did anyway).</p><p>SaaS is just the most modern incarnation of software-programs along the same principles we&#8217;ve been used-to for decades. Prior to the relatively modern era - 2010 and after, we had &#8220;Application Service Providers&#8221; (ASP), &#8220;Web-based Software&#8221;, and &#8220;Cloud Applications&#8221; to name just three.</p><p>Apart from the name; software upgrades; new features, bug-fixes, and design tweaks are provided to users with the same, minimal amount of effort required. As is the means by which software is paid for. Old school programs came in an actual box with a manual which mostly went unread. They were purchased from a physical shop.</p><p>The main difference is that users no longer need to exert any physical energy downloading or installing anything (pulling out a company credit card doesn&#8217;t count). For products and services offered over the web, the subscription based payment model has since become the near ubiquitous standard.</p><p>Irrespective of whether it is downloaded, installed, or web-based, software provides something which its users <strong>can not not do</strong>, <strong>don&#8217;t want to do</strong>, <strong>or can do vastly more efficiently</strong> than they alone can ever do. And it&#8217;s among these three advantages where the software value proposition lies, a proposition predicated on something being &#8220;cheaper&#8221;, &#8220;faster&#8221;, or &#8220;less hassle&#8221; to pay someone else to manage, than it is to do otherwise.</p><h2>Were Alpacas the way forward?</h2><p>I once visited an Alpaca farm in the early 2000s and got talking with the owner who quietly disclosed to me that only half of his income derived from farming the animals themselves.</p><p>His further disclosure as to where the other half came from will go with me to my grave:</p><p style="text-align: center;"><strong>Alpaca Management System!</strong></p><p>This guy had developed alpaca management software and he had a monopoly on the market (it was the only such software in existence at the time). It was distributed via CD-ROM and when a new version was released, it was just sent out via snail-mail.</p><p>Alpaca have unique characteristics which owners and farmers need help with in order to get the most (money) out of the animals which the system provided to its users, which the users alone could not (easily) provide for themselves.</p><h2>From Alpaca to AI</h2><p>The messaging from AI providers and those engineers at the bleeding edge of agentic AI and AI powered software development, seems to be that everyone is either going to build, or should soon be in a position to build, their own Alpaca Management Systems.</p><p>But anyone who&#8217;s built software professionally for any length of time should have a few questions by now. Chief among these for us is to ask who, or what, is responsible for the things we currently pay traditional software providers to do on our behalf?</p><p>Assuming that an AI is never asked to &#8220;mark its own homework&#8221; by designing, building, and testing its own output, then the most suitable candidate is someone with hands-on experience in managing software maintenance, performance, APIs, platform and framework upgrades, as well as UI redesign work.</p><p>An experienced software engineer employed as an internal agency resource for example.</p><p>I think it&#8217;s useful to ask what we think AI should really be doing for us. When something is capable of assisting in the build, test, and deployment of software, which can be done faster than any traditional delivery team and when anyone can build software to a specification, doesn&#8217;t the proverbial rising tide raise all boats, not just your own?</p><p>And where is the business left, whose value proposition is perhaps predicated on faster time-to-market as a result of software built in-house, when their competitors can do exactly the same thing themselves and at the same speed?</p><p>While everyone is seemingly focused on a race to the bottom, what actually happens to the software under production when the internal resource - the one hand-holding the AI - is inevitably requested to do internal, billable work?</p><p>We&#8217;ve seen what happens when the very systems agencies have commissioned to monitor and report on the maintenance standing of customer&#8217;s software, is itself in urgent need of monitoring and maintenance.</p><p>And when this happens, we&#8217;ve arrived at an interesting purgatory which previously existed at the tail-end of the installable software era, and at the onset of ASP/Web-based/SaaS era. An era characterised by Frankensteinian ticketing systems, internal search engines, and where customer data was stored on intranets.</p><p>Maybe an AI assistant could be deployed to remedy the situation. But to do so in such an un-planned, ad-hoc fashion looks way too much like the situation our non-communicative agency friends appear to be trying to avoid.</p><p>Thanks for reading.</p><p>* We kicked-off an industry survey in early 2025 and which is still going. <a href="https://getmetaport.com/survey">Give it a nudge here</a>.</p><div><hr></div><p>Do you work in a digital agency? We&#8217;d <a href="https://getmetaport.com/contact">love to know how</a> you&#8217;re thinking about your own internal systems.</p><p>If you want to level-up your own agency&#8217;s website and application monitoring, alerting, and planning, then <a href="https://getmetaport.com#signup">be among the first to know when Metaport SaaS arrives</a>.</p><p>But don&#8217;t take our word for it, have a look at it yourself and let us know what you think.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://demo.metaport.sh&quot;,&quot;text&quot;:&quot;Try Metaport&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://demo.metaport.sh"><span>Try Metaport</span></a></p>]]></content:encoded></item><item><title><![CDATA[Health checks are integral to website maintenance programmes]]></title><description><![CDATA[Insights for leaders, managers, and their teams at software and web-development agencies]]></description><link>https://blog.metaport.sh/p/why-health-checks-arent-negotiable</link><guid isPermaLink="false">https://blog.metaport.sh/p/why-health-checks-arent-negotiable</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Thu, 05 Mar 2026 02:53:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9UWF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9UWF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9UWF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9UWF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9UWF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9UWF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9UWF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2092158,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/189940405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9UWF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9UWF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9UWF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9UWF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb50346a7-2b0f-48d1-b598-861c9ae42791_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Every company seeks stable, predictable revenue. And for agencies the cyclical workflow makes that especially critical:</p><p><strong>                    Specification &#8594; Design/Build/Test &#8594; Launch &#8594; Next project</strong></p><p>When agencies treat maintenance as an afterthought, they leave revenue on the table and risk reputation damage if an incident occurs. In today&#8217;s AI&#8209;driven world - where vibe&#8209;coding, <a href="https://en.wikipedia.org/wiki/Spec-driven_development">spec driven development (SDD)</a>, and <a href="https://steve-yegge.medium.com/welcome-to-gas-town-4f25ee16dd04">agent orchestration</a> accelerate delivery, then simply &#8220;keeping the lights on&#8221; after launch is no longer sufficient (if indeed it ever was).</p><p>Just as human developers benefit from peer review, AI&#8209;generated code also needs a systematic review process. By embedding ongoing health checks and post&#8209;launch stewardship into the delivery pipeline, agencies turn maintenance into a revenue&#8209;generating, risk&#8209;mitigating advantage.</p><p style="text-align: center;">Does your agency do its own health checks? Let us know what they include. Would automated reporting be useful?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/contact&quot;,&quot;text&quot;:&quot;Let's Chat&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/contact"><span>Let's Chat</span></a></p><div><hr></div><h3><strong>Predictable revenue as a component of consistent delivery</strong></h3><p>Agencies thrive on mature, predictable revenue, and that starts with a maintenance program that customers value and rely on. By keeping digital products under active, ongoing care, just as we would with physical assets, businesses reduce risk and unlock growth.</p><p>A proactive approach tackles three often&#8209;overlooked challenges:</p><ul><li><p><strong>Software End&#8209;of&#8209;Life (EOL):</strong> Updating libraries, frameworks, and servers before support ends eliminates surprise upgrades and migration costs, keeping services smooth and uptime high.</p></li><li><p><strong>Security Posture:</strong> Regularly patched software blocks attackers, protects data, and preserves brand reputation, turning potential fines and breach expenses into savings.</p></li><li><p><strong>SSL Certificate Renewal:</strong> Timely reminders, as well as automated renewals prevent &#8220;Not Secure&#8221; warnings in browsers, sustains SEO/GEO rankings, and maintains conversion rates, freeing teams to focus on planned initiatives.</p></li></ul><p>Providing a health&#8209;check for every managed application which covers these three indicators, gives agencies and their customers a clear, data&#8209;driven picture of risk, reinforcing confidence and driving steady, predictable revenue.</p><h3><strong>Why health metrics strengthen maintenance agreements</strong></h3><p>A maintenance agreement isn&#8217;t a cure&#8209;all, and major upgrades are rarely covered because of upfront costs and limited <a href="https://getmetaport.com/end-of-life">end-of-life (EOL) data</a>. Still, modern contracts are already tying performance to clear metrics such as <strong><a href="https://www.techtarget.com/searchstorage/feature/What-is-the-difference-between-RPO-and-RTO-from-a-backup-perspective">Return To Operation (RTO) and Recovery Point Objective (RPO)</a></strong>, priority&#8209;based response times, and expiry&#8209;date windows. So adding agency&#8209;specific health data is both feasible and valuable.</p><p>The key is in presenting that data in the customer&#8217;s language. When a customer asks, &#8220;Do we really need this?&#8221; the answer should focus on the <strong>protective benefits</strong> rather than the <strong>expense</strong>:</p><ul><li><p><strong>Business continuity:</strong> Up&#8209;to&#8209;date software, licenses, and certificates keep operations running smoothly.</p></li><li><p><strong>Regulatory compliance: </strong>Continuous compliance avoids costly audits and penalties.</p></li><li><p><strong>Brand reputation: </strong>A secure, reliable service reinforces trust with users and partners.</p></li></ul><p>When health metrics are displayed in concise reports which include executive summaries, clear recommendations, and a side&#8209;by&#8209;side view of the current state versus the cost of doing nothing, customers can see the tangible value. The maintenance line item then becomes a logical, even essential, investment in stability and growth.</p><h3><strong>How a rapid health check works (and why it&#8217;s valuable)</strong></h3><p>A health check for a typical midsize website or web&#8209;app can be compiled in less than a day, making it a practical, repeatable component of any agency&#8217;s maintenance routine.</p><ol><li><p><strong>Data collection &amp; cross&#8209;referencing:</strong> Every library, framework and O/S version is matched against vendor support calendars to surface upcoming end&#8209;of&#8209;life dates.</p></li><li><p><strong>Scoring model:</strong> The system weighs vulnerability severity, business impact of impending EOL dates, and SSL&#8209;certificate timelines to generate a single, easy&#8209;to&#8209;read <strong>Health Score</strong>.</p></li><li><p><strong>Executive summary:</strong> The score is visualised as <strong>green (on&#8209;track), amber (needs attention), or red (at risk)</strong>, giving leaders an instant view of application health.</p></li><li><p><strong>Recommendations summary:</strong> A concise &#8220;fix&#8209;now&#8221; list is paired with a risk&#8209;impact brief that outlines the benefits of timely remediation.</p></li></ol><p>Because metrics are expressed as concrete numbers or clear &#8220;stamps&#8221; (e.g., &#8220;3 critical CVEs, framework EOL in 24&#8239;months, SSL renewal in 30&#8239;days&#8221;), the report transforms abstract concerns into specific agenda items for the next customer account meeting. </p><p>The result is a proactive roadmap that protects continuity, strengthens compliance, and builds confidence in the digital product&#8217;s long&#8209;term performance.</p><blockquote><p>How detailed the report is and how fast it can be prepared now become key differentiators for agencies: Customers expect to see risk <strong>before</strong> it materialises.</p></blockquote><p></p><p><a href="https://getmetaport.com">Metaport</a> provides <strong>on demand </strong>health report<strong>s</strong> for every application in your portfolio.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://demo.metaport.sh&quot;,&quot;text&quot;:&quot;Try the demo&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://demo.metaport.sh"><span>Try the demo</span></a></p><p></p><h3><strong>Application health as a strategic benefit</strong></h3><p>A health&#8209;check report gives agencies a natural upsell path, differentiates them from competitors, and boosts customer retention. Customers who see continuous value rarely churn after the first project.</p><p>Risk scores can be fed straight into customers&#8217; risk registers, satisfying auditors and board members, while the recommendations give them enough foresight to budget upgrades proactively instead of scrambling at the last minute.</p><p>Most importantly, knowing their website or app will stay secure, compliant, and performant underpins marketing campaigns, drives conversions, and strengthens overall trust.</p><p>We call a one&#8209;day turnaround &#8220;fast&#8221;; from the customer&#8217;s view, <strong>consistent delivery</strong> is the next biggest advantage.</p><h3><strong>Embedding health reporting into a website maintenance programme</strong></h3><p>A solid maintenance programme is built around recurring snapshots that capture health&#8209;check findings, risk levels, and clear actions. Typical alerts look like:</p><ul><li><p>&#8220;Two critical CVEs. Patch within 48&#8239;h.&#8221;</p></li><li><p>&#8220;Framework reaches end&#8209;of&#8209;life in Oct&#8239;2026. Start migration planning this quarter.&#8221;</p></li><li><p>&#8220;SSL certificate expires 15&#8239;Jun&#8239;2026. Renew by 1&#8239;Jul to avoid browser warnings.&#8221;</p></li></ul><p>By weaving health checks into support contracts, agencies turn a one&#8209;off service into an ongoing partnership. And with the right tooling, reports are generated immediately and automatically, slashing production time and cost while still providing a billable and value&#8209;driven deliverable.</p><div><hr></div><h3><strong>A call to action for agencies</strong></h3><ol><li><p><strong>Standardise the health check:</strong> Build a repeatable workflow and embed it into your delivery pipeline. It can be as simple as a bullet&#8209;list in a wiki; elegance isn&#8217;t the name of the game but <strong>consistency</strong> is.</p></li><li><p><strong>Turn the first check into a teaching tool:</strong> Show customers how a regular &#8220;website&#8209;maintenance&#8221; review safeguards their revenue. Price the <strong>value</strong>, not the labour, and position the contract fee as a risk&#8209;transfer.</p></li><li><p><strong>Showcase the report: </strong>Publish anonymised examples on your website and company LinkedIn page. Demonstrating real&#8209;world insights builds credibility and even draws-in new business.</p></li></ol><h3><strong>Closing thoughts</strong></h3><p>Security&#8209;related incidents <a href="https://www.cve.org/About/Metrics">are climbing every year</a>, and a single breach can erase months of SEO, GEO, and brand investment.</p><p>When software components are refreshed as often as you get a haircut, website and application health is no longer an optional pillar of any agency&#8217;s digital strategy.</p><p>A disciplined maintenance programme anchored by regular health checks and a clear, actionable report delivers three simultaneous advantages:</p><ol><li><p><strong>Protects</strong> both the customer&#8217;s and the agency&#8217;s business from costly downtime and compliance gaps.</p></li><li><p><strong>Creates a sustainable revenue stream</strong> by turning reactive fixes into proactive stewardship.</p></li><li><p><strong>Builds trust</strong>, converting one&#8209;off projects into long&#8209;term partnerships.</p></li></ol><p>If your agency still treats post&#8209;launch support as an afterthought, you and your customers may be one incident away from a pretty rough day.</p><p><strong>Take the first step today:</strong> run a health audit on a recent launch, share the findings with the customer, and watch the conversation shift from &#8220;extra cost&#8221; to &#8220;strategic investment.&#8221;</p><p>Use <strong><a href="https://getmetaport.com/doc/resources/metaport-health-report-example.pdf">this example application health report</a></strong> generated by <strong><a href="https://getmetaport.com/">Metaport</a></strong> as a starter.</p><p>Having trouble persuading your customers to upgrade? Take inspiration from our <strong><a href="https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf">Agency EOL Survival Guide</a></strong>.</p><p><a href="https://getmetaport.com">Metaport</a> powers-up your agency with:</p><ul><li><p>Cross-portfolio search (end-of-life, vulnerabilities, packages) and notifications</p></li><li><p>Customer-shareable assets like EOL roadmaps, calendars and health reports</p></li><li><p>Integrations with existing AppSec and task management tools</p></li></ul><p style="text-align: center;"></p><p style="text-align: center;">Sound interesting? Try the demo for free or <a href="https://getmetaport.com#signup">join the waitlist</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://demo.metaport.sh&quot;,&quot;text&quot;:&quot;Try Demo&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://demo.metaport.sh"><span>Try Demo</span></a></p><p style="text-align: center;"></p><p></p>]]></content:encoded></item><item><title><![CDATA[What’s an application portfolio and how do you manage one?]]></title><description><![CDATA[What&#8217;s a portfolio anyway?]]></description><link>https://blog.metaport.sh/p/whats-an-application-portfolio-and</link><guid isPermaLink="false">https://blog.metaport.sh/p/whats-an-application-portfolio-and</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Mon, 16 Feb 2026 18:41:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rIBv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rIBv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rIBv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 424w, https://substackcdn.com/image/fetch/$s_!rIBv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 848w, https://substackcdn.com/image/fetch/$s_!rIBv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 1272w, https://substackcdn.com/image/fetch/$s_!rIBv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rIBv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png" width="1024" height="1158" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd2cabae-8551-477d-b156-80b972683f23_1024x1158.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1158,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1716199,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/188091364?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rIBv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 424w, https://substackcdn.com/image/fetch/$s_!rIBv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 848w, https://substackcdn.com/image/fetch/$s_!rIBv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 1272w, https://substackcdn.com/image/fetch/$s_!rIBv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2cabae-8551-477d-b156-80b972683f23_1024x1158.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What&#8217;s a portfolio anyway?</h2><p>It doesn&#8217;t matter if you&#8217;re a gargantuan digital agency or just a freelancer. If your customers number in the tens or the thousands, the collection of websites and applications you manage on their behalf represent your portfolio.</p><p>Much like a hire car company, the window into your portfolio is the single source of truth that tells you which customer owns which application in your &#8220;fleet&#8221; - even if that window is provided by a wiki, a CRM, some spreadsheets or someone&#8217;s head.</p><p>For that hire-car company to run smoothly, it needs to know the condition, road-worthiness, and geographical location of each vehicle. Without that information being readily available to all parts of the business, it&#8217;s very hard to reliably hire anything out to a customer.</p><p>Digital agencies themselves have been around since at least the mid 90s, so it&#8217;s hard to imagine their fleet management models not working working well.</p><p>But if that&#8217;s the case, why do charts like this exist in the 2020s?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eayn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eayn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 424w, https://substackcdn.com/image/fetch/$s_!eayn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 848w, https://substackcdn.com/image/fetch/$s_!eayn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 1272w, https://substackcdn.com/image/fetch/$s_!eayn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eayn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png" width="680" height="290" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5e1ab37-2d14-42ef-9d50-472637a11ead_680x290.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:290,&quot;width&quot;:680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51031,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/188091364?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5e1ab37-2d14-42ef-9d50-472637a11ead_680x290.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eayn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 424w, https://substackcdn.com/image/fetch/$s_!eayn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 848w, https://substackcdn.com/image/fetch/$s_!eayn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 1272w, https://substackcdn.com/image/fetch/$s_!eayn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ef581f-bdd0-48df-88cc-2df6201bcc9e_680x290.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Source</strong>: <a href="https://getmetaport.com/?utm_source=blog3">Metaport</a> agency survey 2025</figcaption></figure></div><p>With respect to security vulnerability remediation, dependency management, and end-of-life (EOL) software planning, it appears as though agencies still have some work to do.</p><p><strong>How well does your agency respond to maintenance issues and security threats?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/survey&quot;,&quot;text&quot;:&quot;Take Agency Survey&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/survey"><span>Take Agency Survey</span></a></p><h2>Why should portfolios be managed?</h2><p>If the previous chart needs a summary it&#8217;s that agencies don&#8217;t appear to have a birds-eye view of their fleet. If they did, you&#8217;d expect the numbers to be lower.</p><p>If teams can&#8217;t easily identify where an application is hosted, the technologies and versions it&#8217;s built from, and when dependencies and components need to be updated, it&#8217;s an expensive challenge rather than a well-practiced workflow to supply colleagues and stakeholders with timely information for feature development, planning and budgeting purposes.</p><p>Keeping on the right side of support contracts is harder too. Upcoming delivery and maintenance work is based on the current state of those applications, which if not known, means it&#8217;s also harder to <a href="https://blog.metaport.sh/p/why-do-agencies-find-it-so-hard-to">convince customers to sign support contracts</a>.</p><h3>Security Vulnerability Management</h3><p><strong>Data-breaches</strong>, <strong>zero-day exploits</strong>, and other internet malfeasance with the potential of <a href="https://www.ncsc.govt.nz/insights-and-research/cyber-threat-reports/cyber-threat-report-2025/">harm at a national level</a> now occur <strong>every single day</strong> to companies somewhere in New Zealand and globally.</p><ul><li><p><strong>Log4Shell - 2021 (Global):</strong> <strong><a href="https://en.wikipedia.org/wiki/Log4Shell">100+ million</a></strong><a href="https://en.wikipedia.org/wiki/Log4Shell"> affected applications and devices</a></p></li><li><p><strong>Medicare - 2024 (Australia):</strong> <strong><a href="https://www.cm-alliance.com/cybersecurity-blog/top-10-biggest-cyber-attacks-of-2024-25-other-attacks-to-know-about#medisecure">12.4 million</a></strong><a href="https://www.cm-alliance.com/cybersecurity-blog/top-10-biggest-cyber-attacks-of-2024-25-other-attacks-to-know-about#medisecure"> individual (people) affected</a></p></li><li><p><strong>Shai Hulud - 2025 (Global):</strong> <strong><a href="https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack">700+</a></strong><a href="https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack"> open source JavaScript packages affected</a></p></li><li><p><strong>ManageMyHealth - 2025 (NZ):</strong> <strong><a href="https://simplyprivacy.co.nz/manage-my-health-privacy-governance/">120,000</a></strong><a href="https://simplyprivacy.co.nz/manage-my-health-privacy-governance/"> personal health records leaked</a></p></li></ul><p>As an agency, it&#8217;s definitely worth asking tough questions like these as often as possible:</p><ul><li><p>&#8220;Are we prepared for the next <a href="https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack">Shai-Hulud style supply-chain attack</a>?&#8221;</p></li><li><p>&#8220;How will we <a href="https://youtu.be/pzTnzvlLlK8?si=dJ1iqEkz8E8q3RyT">identify which of our apps is affected</a> when it happens?&#8221;</p></li></ul><p>Your existing security tools will absolutely help you in these situations, but if only a subset of your customers&#8217; apps are hooked-up to them, then you&#8217;ll need a plan for effectively attending to the remainder.</p><p>Many security tools are designed to be triggered from automated Continuous Integration (CI) pipelines, but for many agencies such setups are still not common.</p><h3>End of life (EOL) Software Planning</h3><p>Vendors of licensed software such as Microsoft, Oracle, RedHat, and others, usually have a close relationship with their customers who are tuned into their product announcements.</p><p>The same arrangement doesn&#8217;t really exist in much of today&#8217;s websites and web-applications, built as they are from <strong>hundreds</strong> of <strong>third-party</strong>, <strong>open source</strong> software packages.</p><p>A software product&#8217;s road-map represents the dates when new features will be added, old ones removed, and legacy versions retired. But for open source maintainers however - whose work is often voluntary and unpaid - the resources don&#8217;t exist for road-maps of any kind.</p><p>In this scenario, agencies need to take up the slack and monitor their own systems and those of their customers for such maintenance issues on a &#8220;best efforts&#8221; basis. </p><p>And when this happens, some agency blind-spots reveal themselves:</p><ul><li><p>Poor <a href="https://youtu.be/7zZxlW9jbS8?si=L_FKE48YrHKQHzT6">End-of-life (EOL) data availability</a>, so EOL is simply <strong>ignored</strong></p></li><li><p>Security tools focus on <strong>individual</strong> codebases and container images, not <strong>collections</strong></p></li><li><p>Cyber and DevOps roles leverage technical data, but don&#8217;t plan the work, <strong>PMs do</strong></p></li></ul><p>When portfolios are managed in part using security tools with a focus on individual &#8220;things&#8221; - repositories, registries, images - then it is difficult to prioritize and assess risk <strong>across portfolios</strong>, so what&#8217;s an agency to do?</p><p>If your agency doesn&#8217;t already have a portfolio-wide dashboard, make a start with an application/website inventory. Use wikis, CRMs, or <a href="https://youtu.be/7zZxlW9jbS8?si=Z6IMLNeTrVEhsaUB">Metaport</a> which is designed for agencies.</p><p>Without one, agencies cannot quickly identify when key software components are no longer supported. With this knowledge, cybersecurity risk is reduced because of the advanced notice for replacing unsupported products that are more susceptible to security vulnerabilities.</p><p>For legacy application management the OWASP <a href="https://cheatsheetseries.owasp.org/cheatsheets/Legacy_Application_Management_Cheat_Sheet.html">has its own advice</a>, as does this useful one-page <a href="https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf">Agency End-of-life Survival Guide</a>.</p><p style="text-align: center;"><strong>How does your agency do EOL planning? Is it lagging behind, or worse, is it not doing it at all?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/contact&quot;,&quot;text&quot;:&quot;Let's Talk&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/contact"><span>Let's Talk</span></a></p><div><hr></div><h2>So how are agencies managing their portfolios?</h2><p>An agency business is an outcome orientated organization and outcomes govern an agency&#8217;s portfolio management strategy. Some have a customer-first or operational risk perspective, others may be more process, workflow, or revenue driven.</p><p>Whichever way your agency does it, it needs to be done with full awareness as to the pros and cons of each approach.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sdS4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sdS4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 424w, https://substackcdn.com/image/fetch/$s_!sdS4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 848w, https://substackcdn.com/image/fetch/$s_!sdS4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 1272w, https://substackcdn.com/image/fetch/$s_!sdS4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sdS4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png" width="757" height="430" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:430,&quot;width&quot;:757,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77664,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/188091364?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sdS4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 424w, https://substackcdn.com/image/fetch/$s_!sdS4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 848w, https://substackcdn.com/image/fetch/$s_!sdS4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 1272w, https://substackcdn.com/image/fetch/$s_!sdS4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2cd6fae-524f-43d5-8881-15d7a318a4e6_757x430.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Portfolio management tool comparison</figcaption></figure></div><p>In our previous post <a href="https://blog.metaport.sh/p/why-sca-sast-and-sboms-dont-equal">Why SCA, SAST, and SBOMs don&#8217;t equal EOL planning for digital agencies</a>, we put forward the case for security tooling which represents the business of agencies better.</p><p>In this post, we&#8217;re also advocating for fleet management tools designed for digital agencies, with the best news of all being that the two are not mutually exclusive.</p><p>If you or your agency wants to be the first to know when an agency orientated portfolio management system finally lands, <a href="https://getmetaport.com/#signup">join the waitlist</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com#signup&quot;,&quot;text&quot;:&quot;Join Waitlist&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com#signup"><span>Join Waitlist</span></a></p>]]></content:encoded></item><item><title><![CDATA[Why do agencies find it so hard to sell support contracts?]]></title><description><![CDATA[It&#8217;s all about expectations]]></description><link>https://blog.metaport.sh/p/why-do-agencies-find-it-so-hard-to</link><guid isPermaLink="false">https://blog.metaport.sh/p/why-do-agencies-find-it-so-hard-to</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Tue, 10 Feb 2026 03:33:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Hig7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hig7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hig7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Hig7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Hig7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Hig7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hig7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2448362,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/187470039?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hig7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Hig7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Hig7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Hig7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cc9a621-5063-4aa2-baeb-eeea1149e2fb_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>It&#8217;s all about expectations</h2><p>The right time to promote the importance of maintenance and support contracts is when customers approach agencies to inquire about working on a new software project or to purchase website maintenance services.</p><p>Ask any project manager and they&#8217;ll tell you that setting expectations early is what you do before any delivery starts. It pays dividends down the track when things inevitably change and course corrections are needed.</p><p>But be careful not to over-promise. When that happens, the pressure is on the agency to maintain what could become an unsustainable effort over the relationship&#8217;s term. It then becomes quickly obvious that slowing down or reneging is all but commercial suicide.</p><p>Under-promising on the other hand gives agencies some wiggle room, but only when the <strong>intention is to improve</strong>. With respect to website maintenance services, it&#8217;s the agency&#8217;s responsibility to flag its importance proactively - it is the domain expert after all.</p><p style="text-align: center;"><strong>How does your agency deal with setting expectations? When do you broach maintenance expectations with customers? We&#8217;d love to know.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/contact&quot;,&quot;text&quot;:&quot;Let's Chat&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/contact"><span>Let's Chat</span></a></p><h2>Who should be suggesting a maintenance contract anyway?</h2><p>Whenever a customer has a strict set of security, performance, and maintenance requirements of their own is the ideal time to play any trump cards you have, and to wrap an eventual contract around them:</p><ul><li><p>24x7 or round-the-sun support</p></li><li><p>Standardized Recovery Point Objective and Recovery Time Objective (<a href="https://www.techtarget.com/searchstorage/feature/What-is-the-difference-between-RPO-and-RTO-from-a-backup-perspective">RPO and RTO</a>) </p></li><li><p>Repeatable maintenance workflows for mitigating security vulnerabilities</p></li><li><p>Documented pricing (or pricing ranges)</p></li><li><p>Boilerplate plans to underscore <a href="https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf?utm_source=blog">end of life software best practices</a> when <a href="https://getmetaport.com/end-of-life?utm_source=blog">end-of-life</a> (EOL) dates hit (upgrades, LTS, or <a href="https://herodevs.com">NES licensing</a>)</p></li></ul><p>For those less technically savvy customers, it behooves agencies to be pragmatic and to ensure that both entities are covered from a business perspective with auto-renewing support contracts, because without one:</p><ul><li><p>Ad-hoc maintenance work means unpredictable income and inconsistent risk mitigation</p></li><li><p>Incident response takes longer as there&#8217;s no documented process</p></li><li><p>Customers&#8217; production applications are left vulnerable for longer</p></li><li><p>Tooling investments become harder because sufficient revenue isn&#8217;t available</p></li></ul><h2>Smoke and Mirrors vs Actual Process - The Fine Line</h2><p>As an agency, you&#8217;re most qualified to understand maintenance and contractual shortcomings.</p><p>Everyone knows maintenance isn&#8217;t sexy, that developers <strong>will</strong> complain, and convincing customers to spend money on work they and their own stakeholders won&#8217;t be able to see, remains very challenging.</p><p>But if in sales pitches and RFP responses, agencies find themselves needing to stretch the truth in order to win work, that&#8217;s a strong &#8220;smell&#8221; that it&#8217;s only a matter of time before being approached for similar work and having to repeat the effort, while the rest of the team again fails to navigate what&#8217;s been promised - absent themselves.</p><p>There is an intermediary state which agencies can sometimes adopt. While &#8220;approximating&#8221; their actual capability in a pitch, the business may decide prior to allocate internal time - noting it as an <strong>investment</strong>, and <strong>not another internal cost</strong> - to actually use what&#8217;s been pitched as a guide for exactly what needs to be done better, when compared to current state:</p><ul><li><p><strong>Named: </strong>Specific AppSec and ASPM tools used in day-to-day maintenance</p></li><li><p><strong>Documented: </strong>Steps followed in security vulnerability and incident responses</p></li><li><p><strong>Specified: </strong>Incident response times, RPO, and RTO calculations</p></li><li><p><strong>Planned:</strong> Deliberate software EOL upgrades, budgets, and license timelines</p></li></ul><p>Going one step further, agencies can augment existing website copy and sales material with these - their principles of maintenance excellence.</p><p>Such self-promotion is a valid point of difference worthy of consideration by prospective customers which may not immediately invoke an understanding of its value proposition. But by virtue of its inclusion in promotional material, should cause customers to pause to consider.</p><h2>Follow the Money</h2><p>In business, everything boils down to money. Agencies are no different and repeat, predictable income is king. Even the most well-intentioned and process-driven agency still needs to profit enough from its activities to stay in business and to build amazing software.</p><p>So it shouldn&#8217;t be too revolutionary to concede that effort-in equals revenue-out with respect to developing and promoting customer support contracts.</p><p>Revenue earned from support work can be reconciled with upgrade, re-licensing, and decommissioning projects from those same customers. With the right analysis, marketing and sales material becomes more targeted, as do your customer conversations.</p><h2>Why is it so difficult?</h2><p>There are a few possible reasons for the existence of customers and their web applications - sans any sort of maintenance contract.</p><h3>The History Factor</h3><p>There are 15+ year old Java and PHP monoliths still chugging away out there with little more in the way of a support contract, than a promissory note for maintenance services rendered.</p><p>The situation is unlikely to change until something forces the hand of an agency or its customer - say a state sponsored <a href="https://en.wikipedia.org/wiki/Denial-of-service_attack">DDOS</a> attack on key government web infrastructure for example.</p><h3>The Invisibility Factor</h3><p>Some customers will justify not paying for something if they cannot see it. Precisely because of this, an agency&#8217;s hands are tied, unable as they are to provide a satisfactory reason for work the customer is technically correct in saying no-one will ever see.</p><p>What can be seen though is data from governments around the world describing the downstream effects and costs to business of security vulnerabilities found in commonly used software.</p><ul><li><p><strong>Log4Shell - 2021 (Global):</strong> <a href="https://en.wikipedia.org/wiki/Log4Shell">100+ million affected applications and devices</a></p></li><li><p><strong>Medicare - 2024 (Australia):</strong> <a href="https://www.cm-alliance.com/cybersecurity-blog/top-10-biggest-cyber-attacks-of-2024-25-other-attacks-to-know-about#medisecure">12.4 million individual (people) affected</a></p></li><li><p><strong>Shai Hulud - 2025 (Global):</strong> <a href="https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack">700+ popular JavaScript packages affected</a></p></li></ul><h3>The Implausibility Factor</h3><p>Humans are awful at accounting for things which haven&#8217;t occurred yet. Some go further and adjust mental models and end up believing that something awful will never occur - the commercial equivalent of burying heads in sand.</p><p>The irony of this attitude isn&#8217;t lost on security practitioners. <strong>Data-breaches</strong>, <strong>zero-day exploits</strong>, and other internet malfeasance with the potential of <a href="https://www.ncsc.govt.nz/insights-and-research/cyber-threat-reports/cyber-threat-report-2025/">harm at a national level</a> now occur <strong>every single day</strong> to somebody, somewhere in New Zealand and globally.</p><p>No matter how much agencies - and even customers - might wish to rationalize away the potential of something &#8220;bad&#8221; happening to them, forewarned is fore-armed.</p><p style="text-align: center;"><strong>Has your agency encountered any of these issues? Let us know, we&#8217;d love to talk.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/contact&quot;,&quot;text&quot;:&quot;Let's Talk&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/contact"><span>Let's Talk</span></a></p><h2>So, what&#8217;s an agency to do?</h2><p>Irrespective of your agency&#8217;s maturity with respect to its ratio of customers to valid maintenance contracts, consider the following as a summary:</p><ul><li><p><strong>Talk to customers:</strong> Support plans aren&#8217;t needed on day one, but an <strong>intent</strong> to get one is. Design one together with your customers</p></li><li><p><strong>Know your portfolio: </strong>Update it often. CRMs, wikis and spreadsheets get stale quickly</p></li><li><p><strong>Understand threat landscapes</strong>: Armed with some knowledge of popular modes of attack, find real world examples featuring similar technologies</p></li><li><p><strong>Implement security tooling: </strong>Some <a href="https://getmetaport.com/application-security/?utm_source=blog">application security</a> tooling is better than none but not if only a subset of a portfolio is covered</p></li><li><p><strong>Push back:</strong> Contrary to popular belief, customers will respect you <strong>more</strong>. Agencies have the domain expertise, so armed with context, experience, and knowledge - argue your position</p></li></ul><p>In our previous post <a href="https://blog.metaport.sh/p/why-sca-sast-and-sboms-dont-equal">Why SCA, SAST, and SBOMs don&#8217;t equal EOL planning for digital agencies</a>, we put forward the case that there&#8217;s a need for maintenance and security tooling which represents the business of agencies better.</p><p>If you or your agency wants to be the <strong>first to know</strong> when agency orientated security tooling finally lands, <a href="https://getmetaport.com/#signup">join the waitlist</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com#signup&quot;,&quot;text&quot;:&quot;Join Waitlist&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com#signup"><span>Join Waitlist</span></a></p><p>You can also level-up your agency&#8217;s approach to end of life software best practices. Get the 1-page <a href="https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf?utm_source=blog">EOL Survival Guide for agencies</a>.</p>]]></content:encoded></item><item><title><![CDATA[Why SCA, SAST, and SBOMs don't equal EOL planning for digital agencies]]></title><description><![CDATA[The unique business model of an agency]]></description><link>https://blog.metaport.sh/p/why-sca-sast-and-sboms-dont-equal</link><guid isPermaLink="false">https://blog.metaport.sh/p/why-sca-sast-and-sboms-dont-equal</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Sun, 08 Feb 2026 23:41:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D-Aq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D-Aq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D-Aq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!D-Aq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!D-Aq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!D-Aq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D-Aq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2554073,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/187335724?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D-Aq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!D-Aq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!D-Aq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!D-Aq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f49cf53-eeb5-4c82-bc90-478809a6e064_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The unique business model of an agency</strong></h2><p>We&#8217;re seeing many &#8220;helpful&#8221; LinkedIn recommendations which offer to help companies achieve more secure software. What&#8217;s clear from reading them is that the business of digital agencies is less well known outside the ecosystem than you&#8217;d imagine.</p><p>From a pure security perspective, greater exposure to security realities is a good thing - even for agencies - that is unless the initial steps needed to improve security standing is more difficult to achieve than for other IT companies.</p><p>Agencies are getting the message from their industry counterparts and from customers though: That security-first and maintenance-first delivery is fast becoming the only acceptable way of doing business in the 2020s.</p><p>Indeed, recent experience demonstrates that buyers score RFPs based on how respondents claim they secure and maintain the system in production. With an increase in agency uptake of <a href="https://getmetaport.com/application-security?utm_source=blog">application security</a> tools, then the signals appear generally positive that agencies are taking note.</p><p>Just one small problem remains: Most of today&#8217;s <a href="https://getmetaport.com/application-security/?utm_source=blog">application security</a> tools are not actually built with agencies in mind at all.</p><p>If planning is a core part of customer-facing roles in high-performing agencies, then it follows that they either require dedicated security resource to triage and action security tool outputs or that a repeatable workflow is implemented for use by the rest of the team.</p><p>Failing in either respect is the difference between useful data and data which is actually usable.</p><p style="text-align: center;"><strong>Which AppSec tools does your agency use? Do they provide a portfolio-wide view for your team?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/survey&quot;,&quot;text&quot;:&quot;Take Survey&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/survey"><span>Take Survey</span></a></p><div><hr></div><h2><strong>Security platforms aren&#8217;t &#8220;security tools&#8221; in the traditional sense</strong></h2><p>Modern AppSec platforms have become best-in-class for what they were designed to do. They help security-mature companies identify and remediate risk inside individual code-bases, container images, and cloud tenancies, and they assume a familiar operating context:</p><ul><li><p>A small number of internally owned products</p></li><li><p>Deeply technical users</p></li><li><p>A direct path from finding, to fixing, to deploying</p></li></ul><p>For product companies, the model works exceptionally well, but for digital agencies and studios, it only partially fits.</p><h2><strong>Agencies manage project portfolios, not just individual repositories and registries</strong></h2><p>An agency&#8217;s business differs in that it operates across <strong>dozens or hundreds of client systems</strong>,<strong> </strong>where each has its own commercial contract, delivery cadence, and risk tolerance.</p><p>And for more diverse agencies, technology stacks, version control, and hosting solutions also vary markedly.</p><p>What this means is that; security data and the way it&#8217;s presented serves a broader purpose than repository or container image-specific remediation alone. It helps agencies plan client work because they&#8217;re not just beholden to the one company, but to those represented by each customer, for responsibilities including:</p><ul><li><p>Budget forecasting</p></li><li><p>Maintenance planning</p></li><li><p>Feature development</p></li><li><p>Pipeline scheduling</p></li></ul><p>This is why an agency-first platform does not center around individual &#8220;things&#8221; (repos, container images, etc). Rather, it positions agencies for proactive maintenance, post go-live activities and <a href="https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf?utm_source=blog">end of life software best practices</a>, by providing an agency-wide means to aggregate end-of-life (EOL) dates, package-dependency, and security vulnerability data across entire portfolios.</p><p>Individual repositories and registries remain important, but they&#8216;re subordinate to the questions agencies actually need answers to about their own portfolios.</p><h2><strong>Built for customer-facing roles</strong></h2><p>Agency roles at the coal-face of customer planning are not security engineers or DevOps practitioners but project managers, account managers, and executives. Each needs confidence that their insights can be reliably acted upon and confidently explained to customers.</p><p>This customer-centric context changes the environment radically. For data and findings to be useful to agencies, it should be:</p><ul><li><p>Framed around actions able to be performed by traditionally non-technical roles</p></li><li><p>Suitable for proactive planning meetings and conversations, not just pull requests</p></li><li><p>Presented within design, copy, and help media which explains <em>why</em> not just <em>what</em></p></li></ul><h2><strong>Cross-portfolio visibility unlocks repeatable work</strong></h2><p>Traditional tools are designed well to answer the question: <em>&#8220;Is this repo or image vulnerable?&#8221; </em>leaving those skilled enough to interpret the answer to provide recommendations.<em> </em>But agency platforms need to be able to answer higher leverage questions:</p><ul><li><p>Which customers&#8217; apps include software due to go EOL this quarter?</p></li><li><p>Which packages implicated in supply-chain attacks impact our portfolios?</p></li><li><p>Are SSL certificate expiry dates likely to affect our customers in the next month?</p></li><li><p>What upgrade work can be grouped, scheduled, and sold proactively?</p></li></ul><p>By enabling <strong>cross-portfolio search </strong>and<strong> notifications </strong>across<strong> EOL software, dependencies, </strong>and<strong> security vulnerabilities</strong>, agencies move from reactive security responses to repeatable maintenance, upgrade work, and delivery.</p><h2><strong>A strategic difference</strong></h2><p>We&#8217;ve spoken a little about less-technical users. It&#8217;s true that security and engineering-laden data minimizes the range of people able to act on it, which may further engender agency information silos. But this role-orientated positioning has more to do with <strong>context </strong>than any <strong>technical capability</strong>.</p><p>Agencies see the world through a fundamentally different lens optimized for customer-first strategic work. It must balance security, delivery, and commercial realities.</p><p>This distinction is subtle, but for agencies in the context of security tooling, it&#8217;s the difference between those which merely alert and those which enable.</p><p>Get the 1-page <a href="https://getmetaport.com/doc/resources/metaport-eol-survival-guide.pdf?utm_source=blog">EOL Survival Guide for agencies</a> to level-up your agency&#8217;s approach to end of life software best practices.</p><p style="text-align: center;"><strong>Keen to know when agency orientated security tooling finally lands? <a href="https://getmetaport.com/#signup">Join the waitlist</a> and be the first to know.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getmetaport.com/#signup&quot;,&quot;text&quot;:&quot;Join Waitlist&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getmetaport.com/#signup"><span>Join Waitlist</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[End of Life Software Best Practices for Agencies (and Customers)]]></title><description><![CDATA[Practices]]></description><link>https://blog.metaport.sh/p/end-of-life-software-best-practices</link><guid isPermaLink="false">https://blog.metaport.sh/p/end-of-life-software-best-practices</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Mon, 05 Jan 2026 04:20:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/14406dc2-a083-4f62-a7a1-8857e6f1865d_2400x1600.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hyWp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hyWp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hyWp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hyWp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hyWp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hyWp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:477276,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/183503188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hyWp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hyWp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hyWp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hyWp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e4888a-6329-4dda-9ff6-12db96d46045_2400x1600.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Practice</h2><p>Agencies work in multiples. Multiple apps across multiple customers, with retainers and projects that can easily add up to thousands of dollars a year per client when everything runs smoothly.</p><p>End of life vs end of service life matters more than people think. When a production app or website relies on components that are out of support, agencies take on extra security, compliance, and operational risk. They also miss a straightforward chance to turn maintenance into planned, billable work instead of last minute effort.</p><p>In the real world, &#8220;EOL management&#8221; usually isn&#8217;t one big migration. Sometimes it starts that way, especially with older apps that haven&#8217;t been upgraded in years. But once you get past the initial cleanup, it should look like a repeatable process you can run across your whole portfolio.</p><ol><li><p><strong>Discover:</strong> What&#8217;s out of support or EOL in your portfolio?</p></li><li><p><strong>Assess Risk:</strong> What&#8217;s the downstream effect of an EOL or unsupported software component?</p></li><li><p><strong>Plan:</strong> For each affected application, plan and estimate for the upgrade effort.</p></li><li><p><strong>Communicate:</strong> Discuss impact, effort, timelines, and budgets with customers ahead of time (no-one likes scrambling for budget).</p></li><li><p><strong>Implement:</strong> Follow application or platform specific upgrade guidance and documentation.</p></li><li><p><strong>Monitor and Notify:</strong> Monitor key framework and O/S components for upcoming EOL dates. This is critical, very few agencies do it adequately (or at all).</p></li></ol><p>When <strong>done well</strong>, agencies prevent avoidable security breaches and downtime. When <strong>done consistently</strong>, customers stick around because they see a process they can trust, not chaos and last second &#8220;we need to update stuff now&#8221; messages. When <strong>done poorly</strong> though, customers notice quickly. Churn goes up, reactive maintenance takes over, and your team burns time on manual fixes that don&#8217;t move the business forward.</p><p>There&#8217;s a clear upside here. Agencies leave thousands of dollars on the table every year when upgrade projects show-up unplanned or get priced badly because nobody tracked end of life in the first place. The downside is reflected in news such as this piece from IBM reporting that in 2024 <a href="https://newsroom.ibm.com/2024-07-30-ibm-report-escalating-data-breach-disruption-pushes-costs-to-new-highs">the global average cost of a data breach hit $4.88M</a>.</p><p>Staying ahead of EOL and end of service life protects systems, agency margins, and customer trust.</p><h2>What is meant by &#8220;support&#8221; anyway?</h2><p>Most websites and apps rely on a stack of third party software components, like frameworks, libraries, operating systems, databases, web servers, and programming languages. Agencies put these pre built building blocks together to create custom solutions for clients. Over time, they need updates to add features, fix bugs, and patch security issues. Eventually, maintaining multiple older versions becomes too costly or complicated, so maintainers stop supporting them.</p><p>This is where the importance of end of life vs end of support starts to matter. Agencies that stay on top of risk usually track three milestones:</p><p>End of life (EOL)</p><p>A maintainer ends standard support for a software package at a specific version or a range of versions, for example v1.2 through v1.9. After EOL, end-users generally shouldn&#8217;t expect regular updates or normal support channels to keep up any support.</p><p>End of Support (EOS)</p><p>Standard support ends, meaning end-users stop getting new features and bug fixes. Support narrows down to security related fixes only. People often treat EOS as &#8220;it&#8217;s still safe because security patches continue&#8221;, but that window doesn&#8217;t last forever.</p><p>End of Long Term Support</p><p>Paid extended support ends. Once this happens, there are no more vendor provided fixes, even if end-users and agencies are willing to pay for a premium contract.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pfyP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pfyP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 424w, https://substackcdn.com/image/fetch/$s_!pfyP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 848w, https://substackcdn.com/image/fetch/$s_!pfyP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 1272w, https://substackcdn.com/image/fetch/$s_!pfyP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pfyP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png" width="1398" height="546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:546,&quot;width&quot;:1398,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36437,&quot;alt&quot;:&quot;Depicts Metaport's EOL planning gantt chart.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/183503188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Depicts Metaport's EOL planning gantt chart." title="Depicts Metaport's EOL planning gantt chart." srcset="https://substackcdn.com/image/fetch/$s_!pfyP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 424w, https://substackcdn.com/image/fetch/$s_!pfyP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 848w, https://substackcdn.com/image/fetch/$s_!pfyP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 1272w, https://substackcdn.com/image/fetch/$s_!pfyP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81c89778-0746-4a6f-8a5e-b5f64bdd9bd3_1398x546.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Metaport&#8217;s EOL date gantt chart</figcaption></figure></div><p>The risk is straightforward. Once security fixes stop at the end of EOS, the software is effectively at end of life in real world terms. Known vulnerabilities stay open, and any new vulnerabilities discovered later won&#8217;t get patched. That turns the software into a permanent liability.</p><p>This isn&#8217;t a theoretical problem. Verizon, a major US communications company, reported in its <a href="https://www.verizon.com/about/news/2024-data-breach-investigations-report-vulnerability-exploitation-boom">2024 Data Breach Investigation Report</a> that security vulnerability exploitation as an initial access method nearly tripled and made up 14% of breaches.</p><h3>Best Practice</h3><p>What &#8220;best practice&#8221; actually covers:</p><ol><li><p><strong>Security:</strong> reduce agency and customer exposure to unpatched security vulnerabilities, unsupported software, and supply chain compromises.</p></li><li><p><strong>Compliance:</strong> meet contract requirements for security, business continuity, and supportability. This also makes it easier to proactively recommend the right support contracts to customers before something breaks.</p></li><li><p><strong>Operations:</strong> make changes more predictable, cut down on incidents, and document clear ownership so fixes don&#8217;t fall through any cracks.</p></li><li><p><strong>Cost:</strong> plan upgrades instead of scrambling. Whether you use an annual EOL fund, project based remediation, or risk based allocations, you get fewer last minute upgrades and avoid expensive &#8220;special&#8221; maintenance contracts.</p></li><li><p><strong>Impact:</strong> fewer outages, more reliable performance, and stronger trust between the agency and the customer.</p></li></ol><p>A lot of end of life remediation starts only when something forces the issue, vendor or maintainer notificatins, penetration test findings, media publicised security vulnerabilities, or cloud and platform changes. That&#8217;s usually when people start asking about end of life vs end of service life, and realising too late that those dates can occur differently depending on the vendor and the support model in place.</p><p>With a bit of upfront discovery, agencies can predict these lifecycle dates and plan mitigation before risk and urgency spike.</p><p>Agencies can&#8217;t manage what they can&#8217;t see, so the first move is to build a complete, living inventory of what&#8217;s running and what they depend on.</p><ol><li><p><strong>Agency portfolio list</strong></p></li></ol><p>List every managed website and application. Capture its framework version, operating system version, hosting environment, and the end of life vs end of service life dates that apply. Include who owns it, who supports it, and what &#8220;done&#8221; looks like when an upgrade lands.</p><ol start="2"><li><p><strong>Libraries and frameworks</strong></p></li></ol><p>List each site&#8217;s and app&#8217;s direct and indirect dependencies, known security vulnerabilities, and their respective end of life vs end of service life dates. This is where supply chain risk hides, so don&#8217;t stop at top level packages. Array.</p><ol start="3"><li><p><strong>Monitored systems</strong></p></li></ol><p>Document how you monitor exposure over time, not just as a one off audit. Enumerate all vulnerability scanning and Software Composition Analysis (SCA) tools which run in code repositories, CI pipelines, and container registries. Track what gets scanned, how often, alert routing, and who&#8217;s accountable for remediation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x_Pj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x_Pj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 424w, https://substackcdn.com/image/fetch/$s_!x_Pj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 848w, https://substackcdn.com/image/fetch/$s_!x_Pj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!x_Pj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x_Pj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png" width="1456" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:223717,&quot;alt&quot;:&quot;Depicts Metaport's cross-portfolio application dashboard and search facility.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/183503188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Depicts Metaport's cross-portfolio application dashboard and search facility." title="Depicts Metaport's cross-portfolio application dashboard and search facility." srcset="https://substackcdn.com/image/fetch/$s_!x_Pj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 424w, https://substackcdn.com/image/fetch/$s_!x_Pj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 848w, https://substackcdn.com/image/fetch/$s_!x_Pj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!x_Pj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c45afe-e27b-48e3-bbcc-ad07c7bdb7b5_2213x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Metaport&#8217;s cross-portfolio search and management dashboard.</figcaption></figure></div><h2>Risk</h2><p>Before taking action, agencies first need to determine which of their customers&#8217; managed apps and sites to prioritize, in a process of risk and criticality assessment. This will of course be unique to each agency, but it needn&#8217;t be too complicated. An in-exhaustive list of considerations is provided below which when used in conjunction with established prioritization frameworks from e.g. <a href="https://infosec.mozilla.org/guidelines/risk/rapid_risk_assessment.html">Mozilla</a> and <a href="https://owasp.org/www-community/OWASP_Risk_Rating_Methodology">OWASP</a> to name but two, becomes the foundation of a rigorous process:</p><ul><li><p><strong>C&amp;C (Certification &amp; Compliance)</strong></p><ul><li><p>Prioritize apps with existing PCI-DSS, HIPAA, SOC 2, and/or ISO 27001 compliance</p></li></ul></li><li><p><strong>Data sensitivity</strong></p><ul><li><p>Prioritize apps which manage PII (Personally Identifying Information)</p></li><li><p>Prioritize apps representing customers&#8217; businesses (e.g. government vs small business)</p></li><li><p>Prioritize apps by no. affected users (e.g. all citizens vs a small industry segment)</p></li></ul></li><li><p><strong>EOL exposure and component dependencies</strong></p><ul><li><p>Prioritize apps in production vs CI or internal app hosts</p></li><li><p>Prioritize apps with upstream/downstream components which are or are not under agency control</p></li><li><p>Prioritize apps with known security vulnerabilities by rating or score: e.g. Severity, <a href="https://www.splunk.com/en_us/blog/learn/epss-exploit-prediction-scoring-system.html#exploit-prediction-scoring-system-epss">EPSS</a>, <a href="https://www.galiata.com/blog/cve-cvss-kev-explained">CVSS or KEV</a> scores</p></li></ul></li><li><p><strong>Contract basis</strong></p><ul><li><p>Prioritize apps (and clients) based on Non-Functional Requirements (NFRs) e.g. Return To Operation (RTO), and Recovery Point Objective (RPO)</p></li><li><p>Prioritize apps (and clients) based on Service Level Agreements (SLAs)</p></li></ul></li></ul><h2>Actions</h2><p>Understanding and assessing agency-specific risk can be done in isolation, but deciding on a treatment path such as: upgrade, replace, refactor, retire, isolate, or pay for extended support, requires a customer conversation based on an analysis by an expert such as a senior developer:</p><ul><li><p><strong>Upgrade:</strong> move to a supported version (often fastest ROI)</p></li><li><p><strong>Replace:</strong> swap product/vendor (common for legacy tools)</p></li><li><p><strong>Refactor:</strong> re-architect code to remove obsolete components</p></li><li><p><strong>Retire:</strong> decommission unused systems (high-leverage win)</p></li><li><p><strong>Isolate:</strong> reduce exposure with segmentation and strict access</p></li><li><p><strong>Extended support:</strong> Purchase LTS or NES (Never Ending Support) licenses <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p></li></ul><p>In addition to the decision which needs to be made, there are some longer term next-steps which stand agencies in good stead.</p><h2>Next Steps</h2><h3><strong>Encourage Contracts</strong></h3><p>While most agencies have their own template T&amp;M, SoW and S&amp;M contracts, they&#8217;re not typically well-sold to customers. Customers too can always do even more up-front by specifically asking agencies for security posture evidence, migration references, and concrete SLAs, the latter being especially important for regulated environments and customers e.g. central government.</p><h3><strong>Set-up Check-ins</strong></h3><p>Agencies should have a process for booking regular check-ins for managed applications and customers. Creating an EOL maintenance calendar and road-map aligned to budgets and release cycles in an excellent way to do this. <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><h3><strong>Document Policies</strong></h3><p>Agencies benefit from having documented internal standards, the benefit being twofold; for the agency itself and its customers, when shared with them:</p><ul><li><p>Production systems must run vendor-supported software and/or N-1 versions</p></li><li><p>EOL dates will be discussed 12 months prior to elapsed date</p></li><li><p>Estimates will be provided 12 months prior, so that customers can negotiate budget with adequate notice</p></li><li><p>Expectations of incident response time, process, recipients, and content</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w0gY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w0gY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 424w, https://substackcdn.com/image/fetch/$s_!w0gY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 848w, https://substackcdn.com/image/fetch/$s_!w0gY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 1272w, https://substackcdn.com/image/fetch/$s_!w0gY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w0gY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png" width="1282" height="504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cc87873-1122-4749-b214-048401bb5464_1282x504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:504,&quot;width&quot;:1282,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47064,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/183503188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w0gY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 424w, https://substackcdn.com/image/fetch/$s_!w0gY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 848w, https://substackcdn.com/image/fetch/$s_!w0gY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 1272w, https://substackcdn.com/image/fetch/$s_!w0gY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc87873-1122-4749-b214-048401bb5464_1282x504.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Getting Started</h2><h3><strong>First 30 days</strong></h3><p>Start with a baseline inventory. Create one shared view of what&#8217;s running in production across applications and websites. Then define agency/team policy for &#8220;end of life vs end of service life&#8221; so everyone in the team uses the same language and the same rules.</p><p>Build your first end of life software list and decide what &#8220;unsupported&#8221; means inside your organisation. For example, does it mean no security patches, no vendor support tickets, no compatible libraries, or all of the above? Identify the top 10 high and critical applications and sites that are already end of life, or soon to be end of life. Create an exception template that requires a clear owner, a reason, compensating controls, and a time-bound expiration date.</p><h3><strong>Next 60 days</strong></h3><p>Prioritise and remediate high-risk applications and sites. Focus on what&#8217;s internet-facing and what touches sensitive data first. Knock out quick wins, then schedule upgrades that need planning.</p><p>Remediate the highest-risk items first. Where upgrades aren&#8217;t possible, apply compensating controls and document evidence. That might look like tightening WAF rules, adding CDN protections, restricting access paths, increasing monitoring, and putting extra alerting around known attack patterns. Treat exceptions like a short-term bridge, not a strategy.</p><h3><strong>By 90 days</strong> </h3><p>Finalise ownership across teams so every application and site has a named accountable owner. Publish dashboards that show what&#8217;s end of life, what&#8217;s approaching end of life, what&#8217;s covered by exceptions, and what&#8217;s been remediated. </p><p>Set a monthly cadence for review and remediation so this becomes routine operational work, not a once-a-year reactive occurance.</p><h2>TL;DR</h2><p>So what are <strong>end of life software best practices</strong>?</p><p>They&#8217;re the repeatable program that keeps unsupported software out of production or at least tightly controlled with time-bound exceptions.</p><p>And <strong>how does end of life software best practice work</strong>?</p><p>Through continuous discovery, risk-based prioritization, clear decision making, disciplined execution, and measurable activities.</p><p>Finally, <strong>is end of life software best practice worth it</strong>?</p><p>For most organizations, yes of course! Locked-in pipelines of upgrade work are gold for agency bottom lines. But it obviously also reduces breach and outage risk, and improves audit readiness, especially on internet-facing and &#8220;crown-jewel&#8221; systems.</p><p>Forewarned is forearmed. <strong><a href="https://getmetaport.com/?utm_source=blog.metaport.sh&amp;utm_campaign=eol">Metaport</a></strong> is designed for agencies. It helps them plan EOL dates with their customers, with shared calendars, roadmap gantt charts and automated notifications months, or even years before EOL dates elapse.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Companies like <strong><a href="https://www.herodevs.com/?utm_source=blog.metaport.sh&amp;utm_campaign=metaport">HeroDevs</a></strong> can take over as de-facto maintainer of entire EOL software projects, via a paid <a href="https://docs.herodevs.com/guide/getting-started?ref=www.herodevs.com&amp;utm_source=blog.metaport.sh&amp;utm_campaign=metaport">NES (Never Ending Support) license</a>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p><strong><a href="https://getmetaport.com/?utm_source=blog.metaport.sh&amp;utm_campaign=eol">Metaport</a></strong> users already see gantt charts, a shared maintenance calendar, and automated EOL notifications. While alternatives are available, they almost always do require manual effort.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[End of life software for agencies is (and isn’t) what you think]]></title><description><![CDATA[TL;DR - Insecure apps are as much of a risk for agencies as they are for their customers.]]></description><link>https://blog.metaport.sh/p/end-of-life-software-is-and-isnt</link><guid isPermaLink="false">https://blog.metaport.sh/p/end-of-life-software-is-and-isnt</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Wed, 26 Nov 2025 19:10:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/13c0630e-c9fe-4dc9-9b00-4945c97c6a38_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>TL;DR - Insecure apps are as much of a risk for agencies as they are for their customers. Agencies want support and maintenance contracts with their customers, but are often unable to adequately convince them. But of those contracts which are in place, agencies often only offer a bare minimum of a service.</strong></p><p>Risk, in the context of <a href="https://getmetaport.com/application-security">application security</a> is of course always relative: The owners of a low-traffic recipe blog have fewer regulatory or legislative guidelines to adhere to than a government department running a nationwide identity system with millions of daily users.</p><p>In the context of website, and web-application security, the focus on risk isn&#8217;t unreasonable considering the regular tide of reported data-leaks, exploits, and hacks, as well as industry research - particularly the most recent <a href="https://owasp.org/Top10/">2025 OWASP Top 10 report</a> -  all of which serve to cement-in that the threat to industry remains real.</p><p>But it pays to consider that for a number of organisations; agencies, studios, and in-house development teams, the analysis required to assess risk for themselves and on behalf of their customers, is made more difficult by the very nature of their business.</p><p>Ironically, it&#8217;s the Project Managers, Product Owners, and Account Managers working within agencies who require access to risk-orientated data for planning with their customers and stakeholders - but is instead siloed within traditional engineering and security teams.</p><blockquote><p>If a way can be discovered to present data in a meaningful way for proactive planning purposes, then there are <strong>financial</strong> as well as <strong>reputational</strong> opportunities for agencies in the form of currently unrealised income and a reduction in churn.</p></blockquote><p>And if all this is true, it means there exists an alternative, parallel lens through which we may view the issue of unsupported software in an agency context, other than pure risk alone.</p><h2>What is end-of-life software?</h2><p>An agency typically manages dozens or hundreds of customers&#8217; software applications, where each one performs some essential function which the customer&#8217;s business relies on. They comprise individual software components which the agency has selected based on their own expertise and their knowledge of the customers&#8217; requirements.</p><p>An agency typically selects components from numerous available <a href="https://en.wikipedia.org/wiki/Containerization_(computing)">container images</a>, language run-times, application frameworks, databases, web and application servers to serve specific use-cases. Each one is an independent product developed by a maintainer; a company, team, or independent contributor who delivers new features, <a href="https://www.browserstack.com/guide/hotfix-vs-bugfix">bug-fixes</a>, technical support, and documentation for it.</p><p>At some point in a software product&#8217;s lifespan, it becomes necessary for maintainers to drop support for one or more versions of it. That point in time is known as the end of life date and usually applies to a subset of its version(s). For larger, or more mature products, this work is usually done according to publicly available <a href="https://www.atlassian.com/agile/product-management/product-roadmaps">roadmaps</a>, but it&#8217;s important to understand that the reasons for dropped support can vary:</p><ul><li><p><strong>Cost:</strong> Reducing the overall time spent on an otherwise expanding product line</p></li><li><p><strong>Sales:</strong> Vendors may elect to promote one product version over another</p></li><li><p><strong>Deprecation:</strong> When support for software the product itself relies on, is dropped</p></li><li><p><strong>Key person risk:</strong> When key staff leave an organisation and take some IP with them</p></li><li><p><strong>Security:</strong> Old versions contain security vulnerabilities which are impossible to fix</p></li><li><p><strong>Compliance:</strong> Older versions don&#8217;t comply with certain business regulations</p></li><li><p><strong>Engagement:</strong> Falling product usage becomes a financial liability to support</p></li></ul><h2>The problem with end of life software</h2><p>Any company is liable to suffer any number of problems derived from end-of-life software without proper management, but ultimately they&#8217;re beholden to a regulatory landscape which is mostly within their capability to adhere to.</p><blockquote><p>The same cannot be said for agencies specifically, where the cost of inaction is proportional to the cost to <strong>both</strong> the agency <strong>and</strong> the customer.</p></blockquote><p>Agencies are typically experts in a small set of available technologies and draw upon these expertise in most of their customer engagements. It follows then that an end-of-life software component such as an application-framework discovered in one customer&#8217;s project, is very likely to exist in other customers&#8217; projects too.</p><blockquote><p>But how should an agency know which of its managed applications contains unsupported software? Which tools should it use to get a list of <a href="https://isitendoflife.com/python">software end-of-life dates for Python</a>, or <a href="https://isitendoflife.com/php">PHP</a>, or for <a href="https://isitendoflife.com/dotnet">Dotnet</a>? Moreover, exactly what is the problem faced by agencies and its customers should things be left as-is anyway?</p></blockquote><p>Every day literally <a href="https://www.akamai.com/security-research/the-state-of-the-internet">millions of automated malicious access attempts</a> are made against hosted web-applications. If you&#8217;ve ever even glanced at the real-time logging data produced by a web-server or any internet facing appliance, you&#8217;ve seen the scale and sophistication involved.</p><p>The longer unsupported software continues as a building block of larger applications, the higher the likelihood that such attempts are ultimately successful and which may be traced back to the faulty component.</p><p>It&#8217;s useful to understand the reasons why such malicious access attempts occur in the first place. The reasons are varied, but by way of demonstration, here&#8217;s a non-exhaustive list which provides a flavour of what&#8217;s out there.</p><div><hr></div><h3><strong>Scenario: </strong>The Data leak</h3><p><strong>What is it?</strong> Personal information belonging to website users is accessed via stolen or <a href="https://en.wikipedia.org/wiki/Phishing">phished</a> administrator credentials, or the website&#8217;s database is found separately to the website which is itself poorly secured. You can use the popular <a href="https://haveibeenpwned.com/">haveibeenpwned</a> website to check if email addresses under your control have been found in major data leaks. </p><p><strong>What&#8217;s the motivation?</strong> Usually financial gain, sometimes informational. The stolen data can be on-sold on dark-markets to scammers and spammers.</p><h3>Scenario: Defacement</h3><p><strong>What is it?</strong> Offensive or controversial content is posted or uploaded to a website which replaces or is displayed more prominently, than the original content. In 2022, <a href="https://www.bleepingcomputer.com/news/security/multiple-ukrainian-government-websites-hacked-and-defaced/">several Ukrainian government websites were attacked and defaced</a>.</p><p><strong>What&#8217;s the motivation?</strong> Usually political or ideological.</p><h3>Scenario: Ransomware</h3><p><strong>What is it? </strong>Critical data such as application configuration or authentication credentials are accessed and rendered inaccessible by encryption. <a href="https://www.bleepingcomputer.com/news/security/mgm-resorts-shuts-down-it-systems-after-cyberattack/">A ransomware attack happened in September 2023 to MGM Casinos</a>, resulting in critical IT infrastructure having to be shut down.</p><p><strong>What&#8217;s the motivation? </strong>Usually<strong> </strong>financial. Data is decrypted on receipt of a ransom payment.</p><h3>Scenario: Distributed Denial of Service (DDoS)</h3><p><strong>What is it? </strong>A critical piece of a company or government&#8217;s digital infrastructure such as a banking website or identity platform is flooded with requests it wasn&#8217;t designed to receive. In September 2025 <a href="https://www.bleepingcomputer.com/news/security/cloudflare-mitigates-new-record-breaking-222-tbps-ddos-attack/">the largest DDoS attack seen by the cloud defence service Cloudflare</a> was observed and stopped.</p><p><strong>What&#8217;s the motivation?</strong> Financial, political or ideological. The affected applications are unable to operate normally. Coupled with announcements from hacking groups, the effect is a temporary perception of control which may increase awareness of a cause.</p><h3>Scenario: Malware</h3><p><strong>What is it? </strong>There are numerous kinds, but in the most recent example we&#8217;re aware of, a software maintainer&#8217;s version control system account was compromised and malicious code added to their software. This occurred in September 2025 with the <a href="https://www.securityweek.com/640-npm-packages-infected-in-new-shai-hulud-supply-chain-attack/">Shai-Hulud attack</a>.</p><p><strong>What&#8217;s the motivation?</strong> Financial. Informational. In the case of Shai-Hulud, the aim was to obtain cryptocurrency through wallet monitoring and mining.</p><div><hr></div><p>By definition, a software version which has reached its end-of-life, has no support whatsoever and the original maintainer is henceforth unwilling and unable to fix any bug or issue found subsequently.</p><p>What this means practically is that all software applications ever built on the affected software version, automatically become vulnerable to the same exploits, should they be found.</p><h2>Discovery is harder than you think</h2><p>If <strong>remediation</strong> is the industry word used to describe the follow-up activities involved in resolving an issue identified in software such as reducing permissions on a cloud service or fixing a user-interface problem, then <strong>discovery</strong> is always the necessary precursor step.</p><blockquote><p>Agencies first need to locate those customer projects that are affected by end-of-life software. However, they also need to understand the end-of-life dates of each of their commonly used technologies, before being able to reconcile them with their customers&#8217; projects - a two step task.</p></blockquote><p>There are several vendors whose products provide per code-base or per container-image insights into end-of-life data for open source and commercially licensed software. Some also provide a search facility for security vulnerabilities and dependency packages. But when delivering hosted applications using multiple cloud providers on a range of different technologies (or multiple versions of a single technology), agencies derive most benefit from both discovery <strong>and</strong> reconciliation. </p><blockquote><p>Even better would be to present end-of-life discovery in the context of an agency&#8217;s own managed application portfolio,  killing two birds with one stone.</p></blockquote><p>There&#8217;s an argument which contends that customers themselves should inventory their own applications using their own tools. After all, it is they who shoulder the burden of any compliance risk. However, because the technical skill required for application development has already been contracted to a third party, it&#8217;s unlikely customers have skills necessary.</p><p>There&#8217;s also an opposing argument which suggests that agencies should advocate more for the benefits to customers of regular maintenance through paid support contracts to cover end-of-life scenarios. But experience shows that many agencies have great difficulty in explaining the benefits to customers of long-term and even routine maintenance work, given what little there is to show of the work done; no shiny UIs and no new features or integrations.</p><h2>Stumbling block scenarios</h2><p>In order for agencies and ultimately their customers to benefit from the opportunities we believe are present in this space, some things might need to change on both sides of the agency and customer divide.</p><p><a href="https://www.linkedin.com/posts/theruss_agency-rfp-responses-mitigating-risk-or-activity-7369277021958381569-dIfQ/">We&#8217;ve seen that the provision of development services in an agency context are mere table stakes</a>. The time is long past where all agencies needed was to demonstrate a capability to <strong>deliver</strong>. Customers and buyers are now allocating increasingly significant resources to understanding an agency&#8217;s capability to <strong>maintain</strong> their solutions in production.</p><p>What this means is that <a href="https://getmetaport.com/application-security">application security</a>, application monitoring, end-of-life notifications, security composition analysis are all on the table for discussion from a customer&#8217;s perspective.</p><p>So the solution sounds simple enough; agencies propose, draft and sell maintenance contracts, perform regular end-of-life monitoring, and communicate with their stakeholders regularly.</p><p>But there are issues to be addressed which suggests things aren&#8217;t so easy. They broadly slot into three overlapping scenarios.</p><h3>1. The Stalemate: Agency Initiated</h3><p>An agency has developed three web-apps for a customer and wants to offer a support and maintenance contract. The contract includes provisions for pre-paid support hours, guaranteed security patching, and proactive end-of-life monitoring.</p><p>However, the customer declines, citing a lack of any cost/benefit analysis from the agency. The customers&#8217; apps remain unsupported beyond their operating system&#8217;s end-of-life date.</p><p>There is little incentive on the agency&#8217;s part to perform anything more than a cursory check-in periodically with the customer, should either party discover a component approaching its end-of-life date.</p><h3>2. The Stalemate: Customer Initiated</h3><p>An agency&#8217;s customer - a government department - has requested specific maintenance activities from the agency in light of new procurement and security legislation.</p><p>The requested activities comprise application security patching with a three day turnaround for CVEs with a <a href="https://www.intruder.io/blog/epss-vs-cvss">CVSS</a> score greater than 0.7 and proactive end-of-life monitoring.</p><p>The agency lacks experience in proactive monitoring and patching of this kind. It does however review the available tooling and finds they require either a paid subscription, or manual configuration effort which amounts to more of either than the agency is willing to deploy on a single customer.</p><p>The agency concedes it&#8217;s in the best interests of both organisations that the customer approaches a larger, more security-mature agency and declines the request accordingly.</p><p>In the interim, the application itself remains essentially unsupported to the extent the customer has been mandated to procure.</p><h3>3. The Poor Delivery</h3><p>Agency and customer have both agreed a support and maintenance contract which does contain a provision for end-of-life date monitoring.</p><p>Over time, the quality of the agency&#8217;s contract performance is reduced due to unforeseen circumstances including staff and customer churn. In addition, come renewal time, the customers&#8217; requirements have become more onerous than the agency is willing to support, which leaves the agency close to being in breach of contract, or losing yet another customer.</p><p>The net result is that the paid support service as it stands isn&#8217;t fit for purpose. And the application in question lies unsupported beyond the end-of-life date of one or more of its components.</p><h2>Agency opportunity</h2><p>These legitimate scenarios demonstrate that for entirely understandable reasons, both agency and customer can find themselves in the unenviable position of being in possession of a number of software applications that neither of them is able to satisfactorily support.</p><p>But if the agencies of those scenarios could have been better prepared in terms of an investment in tooling and process, then at least two scenarios are effectively rendered moot. </p><p>Things begin to look rosier too with the benefits to be had from predictable revenue through pre-paid hours, pipelines of locked-in upgrade work and a reduction in potential customer churn. </p><p>Future customers benefit too, assuming these new or improved maintenance capabilities are marketed well.</p><p>For agencies looking to maximise profit, and minimise losses derived from poorly managed (or completely unknown) end-of-life software components, there is more than one way to skin the proverbial cat, but first we should discuss software versioning.</p><h2>A note on versioning</h2><p>There are several &#8220;schemes&#8221; used to communicate a software version, the most popular of which for open source software products is <a href="https://semver.org/">Semantic Versioning</a> known as &#8220;Semver&#8221; for short.</p><p>Semantic Versioning is an informal versioning scheme. As such, adherence to it (or any) scheme is entirely voluntary. However, the benefit to software maintainers is understood when inferring meaning from a version change.</p><p>Consider the following, typical software version which follows Semantic Versioning:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gviK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gviK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 424w, https://substackcdn.com/image/fetch/$s_!gviK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 848w, https://substackcdn.com/image/fetch/$s_!gviK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 1272w, https://substackcdn.com/image/fetch/$s_!gviK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gviK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png" width="478" height="231" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:231,&quot;width&quot;:478,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gviK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 424w, https://substackcdn.com/image/fetch/$s_!gviK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 848w, https://substackcdn.com/image/fetch/$s_!gviK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 1272w, https://substackcdn.com/image/fetch/$s_!gviK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec5c0aa1-7b0c-4d4a-80dd-02805366132c_478x231.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Major version:</strong> Breaking, backwards incompatible or significant functionality changes (e.g., 4.2.1 to 5.0.1)</p><p><strong>Minor version:</strong> New features, backwards-compatible API additions, or enhancements (e.g., 4.2.1 to 4.3.1)</p><p><strong>Patch version:</strong> Bug fixes, security fixes, or minor backwards-compatible changes <em>only</em> (e.g., 4.2.1 to 4.2.2)</p><p>The most expensive, time consuming, and potentially problematic upgrade for agencies and customers is usually considered to be a <em>major version upgrade. </em></p><p>The following example illustrates the point: A maintainer drops support for version 4.x (where &#8221;x&#8221; is any number), but still supports versions in the 5.x &#8220;range&#8221;. Should security vulnerabilities subsequently be found in 4.4.3 for example, they will not be fixed, leaving agencies needing to react quickly with a solution.</p><p>Because maintainers are unconstrained by any assumptions around their software&#8217;s use when incrementing a major version digit, they&#8217;re free to introduce so-called &#8220;breaking changes&#8221;. Applications using this software which have come to rely on features now earmarked for change or removal, now have the potential for significant rework to become compatible with the upgraded software&#8217;s new way of doing things - also known as its <a href="https://en.wikipedia.org/wiki/API">Application Programming Interface</a> (API).</p><h2>Agency and customer next steps</h2><h3>Upgrade Project</h3><p><strong>What it is:</strong> When a software component of a larger, &#8220;consuming&#8221; application needs to be upgraded to its next major version, the incumbent agency will usually review the complexity of the application and estimate the effort required to modify it to suit the new version&#8217;s API, as well as perform the upgrade itself.</p><p><strong>Pros and cons: </strong>Locking-in a pipeline of upgrades is a great way for agencies to bring in additional income. Done proactively enough, it also assures customers that the agency is skilled enough for what can be a challenging task. Occasionally maintainers do disappear, become insolvent, or are bought out by other companies. Each of these scenarios has a bearing on the main application, its operation and expected lifespan which is worth taking into consideration.</p><p><strong>Providers:</strong> Most agencies should welcome the opportunity to estimate the effort required to upgrade to the next major version of a key software component. </p><h3>Never Ending Support (NES)</h3><p><strong>What it is: </strong>A <a href="https://www.herodevs.com/blog-posts/embracing-the-future-never-ending-support-nes-in-open-source">never ending support contract</a> (NES) undertaken between a customer or an agency, and a third-party company. The third-party is unaffiliated with the original maintainer of now end-of-life - usually open source - software, and commits to providing ongoing support and maintenance services for it.</p><p><strong>Pros and cons: </strong>There&#8217;s no guarantee that the contracted support duration matches the intended lifetime of the affected application, but that&#8217;s really little different to the situation from official maintainers. There may also be significant costs associated with access to NES software. Research and cost comparisons are necessary with those quoted by any agency for major version upgrades.</p><p><strong>Providers: </strong>Shop around as there are several companies offering NES services.</p><h3>Long Term Support (LTS) or Extended Security Maintenance (ESM)</h3><p><strong>What it is: </strong>A <a href="https://en.wikipedia.org/wiki/Long-term_support">long term support contract</a> (LTS) undertaken between a customer or an agency, and the original maintainer of now end-of-life - usually open source - software. While the original maintainer has now ceased free support of one or more versions of their software, they do commit to priority bug-fixes and/or security fixes for a fixed subset of versions under a paid support contract.</p><p><strong>Pros and cons: </strong>LTS contracts have a defined, limited duration. Depending on the affected application&#8217;s intended lifespan, customers may find that a major upgrade to a supported, open source version of the otherwise affected software is needed in time anyway<strong>.</strong> Research and cost comparisons are necessary with those quoted by an agency for major version upgrades.</p><p><strong>Providers:</strong> Not all maintainers are guaranteed to offer an LTS or ESM license service. But for larger software components with commercial arms such as some popular Linux operating systems, many maintainers do offer LTS/ESM licensing options.</p><h3>Decommission</h3><p><strong>What it is: </strong>The process by which an application is retired and its underlying infrastructure is decommissioned. When customers and stakeholders decide that the cost of application security, maintenance and feature development outweighs the business benefits of the app itself, one option available is to retire the application completely.</p><p><strong>Pros and cons:</strong> If an application is no longer profitable, or has served its purpose, then depending on its size and complexity, significant amounts of money can be saved in maintenance, license, and cloud costs. On the flip side, careful consideration should be applied with consensus reached by customers and product owners, that a &#8220;decom&#8221; as it&#8217;s known, is the only viable option.</p><p><strong>Providers:</strong> There is of course a cost to the time required for due diligence to occur with respect to  assessing infrastructure, API endpoints and touch-points. However, as with major upgrades, most agencies as the incumbent should welcome the opportunity to estimate for the effort required.</p><div><hr></div><p>There is of course nuance to everything, so there may be some overlaps, but the above represent the main approaches for what to do with applications containing end-of-life software, or software which is close to end-of-life.</p><h2>Conclusion</h2><p>If you didn&#8217;t feel qualified to comment on your own organisation&#8217;s policies towards end of life software prior to reading this article, you should certainly feel so now!</p><p>We&#8217;ve covered common definitions, scenarios, rationales, solutions and strategies for the existence, analysis, and mitigation of unsupported software from the perspective of agencies and their customers.</p><p>If you represent an agency, you know there&#8217;s of course always more you can do for your customers. But when was the last time you took time out to review your approach to maintenance and support contracts?</p><p>If you represent the customer in these scenarios - an organisation which outsources its software and web development to an agency - when was the last time you revisited the support contracts you have with them? Are they still fit for purpose with what you now understand of end-of-life software?</p><p>As we&#8217;ve mentioned, we&#8217;ve found several tools which will manage various aspects of an application&#8217;s security posture, but very few comprise an EOL software notification feature, and practically none presents it for use by an entire delivery team alongside traditional AppSec data points.</p><p>If you haven&#8217;t yet reviewed what <a href="https://getmetaport.com">Metaport</a> can do for your team, we&#8217;re currently taking bookings for conversations with interested agencies and studios.</p>]]></content:encoded></item><item><title><![CDATA[Do worms thrive on version ranges?]]></title><description><![CDATA[I don&#8217;t know about you, but the recent npm supply-chain attacks felt like some of us developers were asleep at the wheel.]]></description><link>https://blog.metaport.sh/p/do-worms-thrive-on-version-ranges</link><guid isPermaLink="false">https://blog.metaport.sh/p/do-worms-thrive-on-version-ranges</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Mon, 29 Sep 2025 02:11:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/86422271-4032-4c3f-a254-a50b0a2b923d_333x298.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I don&#8217;t know about you, but the recent npm supply-chain attacks felt like some of us developers were asleep at the wheel. And if we stay awake long enough, we&#8217;ll probably see a Shai-Hulud-style attack in other package managers in the near future.<br><br>Shai-Hulud is a self-propagating worm inserted into the code of a new package version by attackers when they took over a maintainer&#8217;s <strong><a href="http://npmjs.com/">npmjs.com</a></strong> account. Then every downstream app which used version ranges auto-ingested the problem.<br><br>So what&#8217;s a development team to do?<br><br>&#9989; Replace version ranges in package files with exact versions<br>&#9989; Rotate CI and API tokens (regularly)<br>&#9989; Enforce account-level MFA<br><br>And as of this week, teams can also &#9989; use <a href="https://getmetaport.com">Metaport</a> to identify applications with dependencies which use locked versions or ranges, across project portfolios.<br><br>If you lead a studio, agency, or an in-house delivery team, make this week the week you make some process changes.<br><br>Yes, locking versions means more work at upgrade time, but think of it as a revenue stream: Now is the ideal time to remind customers why they need a maintenance contract with you.<br><br>Humans are notoriously reactive; what&#8217;s &#8220;unforeseeable&#8221; often looks obvious in hindsight, which is just another reason why we built Metaport:<br><br>&#128270; Search portfolios for packages declared as ranges.<br>&#128266; Get notified in advance of EOL software.<br>&#128640; Surface apps by dependency name + version in seconds.<br>&#128737;&#65039; Understand which apps are affected by a CVE.<br><br>We&#8217;ve worked inside the same delivery teams as you. And maintenance still isn&#8217;t glamorous, but it is how teams keep velocity and credibility after the headlines and the urgency fade.<br><br>Check out Metaport at <strong><a href="http://getmetaport.com/">getmetaport.com</a></strong> and say hello to a <a href="https://calendly.com/dcentrica/metaport">free demo</a>.</p>]]></content:encoded></item><item><title><![CDATA[Who owns application maintenance?]]></title><description><![CDATA[Who really owns application maintenance in an agency context?]]></description><link>https://blog.metaport.sh/p/who-owns-application-maintenance</link><guid isPermaLink="false">https://blog.metaport.sh/p/who-owns-application-maintenance</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Tue, 09 Sep 2025 18:58:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uRBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Do the Ops Team own it? Nope. They're great at servers, networks and security, but they're not customer-facing in application delivery teams.<br><br>DevOps? Same story, and despite what it's supposed to be, its practitioners and their cloud-engineering and tooling focus means BAU is rarely front of mind.<br><br>Engineering? Developers are amazing at producing solutions to gnarly problems, but maintenance just isn't sexy enough.<br><br>So who then?<br><br>Project Managers are awesome, and if anyone can motivate these roles, it's them. But we think they're massively under-served: Without proactive data, proactive planning just won't happen. It's how issues slip through the cracks, and un-billable time racks up.<br><br>But it's also where <a href="https://getmetaport.com">Metaport</a> comes in.&#8203;<br>&#8203;<br>Metaport gives agencies and service providers a clear view of upcoming EOL and EOS risk, so their teams can plan ahead, keep customers informed, and avoid burning non-billable hours on last-minute fixes.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uRBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uRBW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 424w, https://substackcdn.com/image/fetch/$s_!uRBW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 848w, https://substackcdn.com/image/fetch/$s_!uRBW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 1272w, https://substackcdn.com/image/fetch/$s_!uRBW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uRBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:441266,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/173209215?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uRBW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 424w, https://substackcdn.com/image/fetch/$s_!uRBW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 848w, https://substackcdn.com/image/fetch/$s_!uRBW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 1272w, https://substackcdn.com/image/fetch/$s_!uRBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca669dd5-f514-450c-bd92-cc3b7fbe1912_2301x1289.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.metaport.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Startups are glam AF]]></title><description><![CDATA[Building a tech startup from scratch is all glitz. People with deep pockets throw money at you, and you spend your time building shiny new things on someone else's dime.]]></description><link>https://blog.metaport.sh/p/startups-are-glam-af</link><guid isPermaLink="false">https://blog.metaport.sh/p/startups-are-glam-af</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Fri, 01 Aug 2025 03:47:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!z67T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z67T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z67T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z67T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z67T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z67T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z67T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg" width="1200" height="791" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:791,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:329726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.metaport.sh/i/169806845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z67T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z67T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z67T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z67T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cd6014-2bee-460b-bd10-595d7fb849eb_1200x791.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And don't forget about your awesome team off whom you bounce ideas, and spend late nights with, as you're on a roll getting shit done.<br><br><strong>Startups are glam AF right?</strong></p><p>If this is your understanding of a startup, then you're so off target that you can't even see it, or indeed what it would look like if you could.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.metaport.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>What I've described is the Silicon Valley startup, popularised during and after the dot-com bubble and bust of the late 1990s and early 2000s. Young entrepreneurs made their way to Palo Alto, California with their half-baked ideas written on the back of a napkin * which outlined how their online grocery or pet store business would make millions on this burgeoning new platform called the World Wide Web. They would wave hands vigorously until the millions in VC funds they demanded landed right in their laps.</p><p>This was repeated to a lesser extent during the Blockchain not Bitcoin and ICO movement of 2016/2017, and it's being repeated again with AI, LLMs and MCPs as I write.</p><p>But it's not the world I inhabit, and I've never been quiet on my disdain for the "engineered scaling" approach to product and company building, conceived by accelerator programs first in the US with YC and others, and then globally.</p><p>No, I'm a bootstrapper. Bootstrapper's have the same aims for the ultimate success of their company and their product, but our goals are far less lofty than those who want to exit their company to the highest bidder. We operate from the same fundamental rules that came out of the Dot Com and ICO eras, and we gladly take the learnings from the hundreds of books, blogs and videos which came after, but we also differ in a couple of fundamental ways:</p><p><strong>We don't seek VC funding</strong></p><p>Every founder needs money to live on. Some of us run our companies as a side-hustle, some quit their jobs to focus on them, but founders still need to eat as well as to invest in the tools, subscriptions, and materials any tech company relies on in the internet age.</p><p>There are many ways to sustain one's self, and ones company, but only one of them means a deference to a company whose business model is to invest in such companies. And never mind the less-considered detriment to such a company's control, should founders choose this route.</p><p>In a way, those of us who do not seek such funding are the lucky ones. Either we already have savings enough to develop and scale in a cadence we're comfortable with given our current life situation (what's referred to as "runway") or we've asked for minimal investment, not from 3rd party commercial interests, but from friends and family (also known as "seed" funding - VC funds can also be a source of seed funding).</p><p><strong>We don't need a team (until we do)</strong></p><p>There's a rule of thumb I came across recently which flies in the face of the illusory startup heaven. It's very basic, and mandates that a company should not hire anyone until it becomes physically and mentally impossible for the incumbent(s) to continue with the business, without that additional hire.</p><p>Sounds logical doesn't it? But it wasn't to me until I'd heard it on a podcast. Until then, I had naively thought that founders surely needed support from co-founders and rock star employees as early as humanly possible. Well yes, they absolutely do, but we're bootstrapped, not VC funded. So we're going to have to suck it up and put in the hard yards until circumstances mandate that we're comfortably able to afford to hire into the company.</p><p>You can decide for yourself whether you think essentially working alone is a good or a bad thing, and it mostly hinges on personal circumstance.</p><p><strong>We don't need that much money</strong></p><p>I arbitrarily granted my company <strong><a href="https://dcentrica.com/?utm_source=substack-2">Dcentrica</a></strong>, a low 6 figure dollar amount which gave me a 12 month runway. So have I used those funds strategically to sign-up to SaaS services and to procure professional help when required? You bet your arse I have, and there's still something left in the kitty. But knowing there's an end to that funding, and not knowing how the whole project is going to end up in 6 months, next month, tomorrow? Now that can only be described as utter torture. For someone like me, who isn't made of the toughest stuff (I'll stand my ground when needed though, thank you) I ask myself the difficult questions, sometimes daily and while I continue to describe my own mental life to anyone who's interested as being "rich", lately I'd probably want to add "all over the show".</p><p>So why the hell do I continue, when my personality type seems hell bent on rug-pulling my ego any opportunity it gets?</p><p>Vision, determination (and circumstance)</p><p>I've always wanted to do this. I had the opportunity and funds to do it. I wasn't sans idea, given that first-hand experience has shown over and over that a particular problem I'd seen, existed everywhere I worked. Couple these with my having built 90% of a solution for it already ** (though it blows my mind that folks start on this path without any idea at all), then if any situation could be described as being a "hint" to YOLO into anything, then this was surely it.</p><p>I've seen first hand the plainly ridiculous situations which arise in an agency context when client facing teams don't have the information they need. But help a Project Manager, Delivery Lead or Account Manager understand that certain classes of information are indeed available to them, and further, that they promise to make their job infinitely easier, and engenders positive downstream effects for their clients, and their team's bottom line: Then the ability to <strong>proactively plan</strong> and <strong>effectively execute</strong> with them, should be very appealing indeed.</p><p>Dev and product teams have got the production of complex and secure software solutions down pat, but in my experience, they absolutely suck at keeping things that way post launch.</p><p>That's exactly what <strong><a href="https://getmetaport.com/?utm_source=substack-2">Metaport</a></strong> is designed to do.</p><p>I'm offering in-person demos for companies based in <strong>Wellington, NZ</strong>, and remote demos for everyone else, <strong><a href="https://getmetaport.com/contact?utm_source=substack-2">email us</a></strong> to kick things off. You can of course also have a play with the <strong><a href="https://demo.metaport.sh/?utm_source=substack-2">Metaport Demo</a></strong> yourself, just please <strong><a href="https://us11.list-manage.com/survey?u=50f1fdd65147cfedfbaa69727&amp;id=790b7735b4&amp;attribution=false&amp;utm_source=substack-2">tell us what you think</a></strong></p><p>* My late father did this in 1998, his postcard features in the heading.</p><p>** Tradition has it, that you validate first, not build first. Cart/Horse, Chicken/Egg.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.metaport.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Position or Imposition - or "How the hell do I classify my SaaS?"]]></title><description><![CDATA[Start writing today.]]></description><link>https://blog.metaport.sh/p/position-or-imposition-or-how-the</link><guid isPermaLink="false">https://blog.metaport.sh/p/position-or-imposition-or-how-the</guid><dc:creator><![CDATA[Dcentrica]]></dc:creator><pubDate>Mon, 30 Jun 2025 04:30:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fw6R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://substack.com/refer/dcentrica?utm_source=substack&amp;utm_context=post&amp;utm_content=167149522&amp;utm_campaign=writer_referral_button&quot;,&quot;text&quot;:&quot;Start a Substack&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Start writing today. Use the button below to create a Substack of your own</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://substack.com/refer/dcentrica?utm_source=substack&amp;utm_context=post&amp;utm_content=167149522&amp;utm_campaign=writer_referral_button&quot;,&quot;text&quot;:&quot;Start a Substack&quot;,&quot;hasDynamicSubstitutions&quot;:false}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://substack.com/refer/dcentrica?utm_source=substack&amp;utm_context=post&amp;utm_content=167149522&amp;utm_campaign=writer_referral_button"><span>Start a Substack</span></a></p></div><p>Having built something which we reckon is ludicrously useful is one thing, but convincing our ICP about this really is quite another.</p><p>When launching and then running a SaaS (or any product for that matter), there&#8217;s only usually only one major hurdle to overcome and that is <strong>convincing people to use it</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.metaport.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Since introducing <strong><a href="https://getmetaport.com">Metaport</a></strong> to the world in early 2025 however, it&#8217;s become quite apparent that we have in fact <strong>two</strong> such major hurdles, the other, primary one being:</p><p><strong>Convincing people they actually </strong><em><strong>have</strong></em><strong> the problem, which the product solves for.</strong></p><div><hr></div><p>Amazingly, and quite unlike many founders we&#8217;ve encountered, we&#8217;ve actually worked in the same industry whose practitioners need the product. We&#8217;ve observed first-hand the problems Metaport solves, which is basically <strong>why </strong>we built it. No-engineer wants to be asked the same - seemingly menial - questions about a project they probably haven&#8217;t touched for months.</p><p>But, here&#8217;s the kicker: Metaport cuts across the traditional engineering/ops and project management/customer experience boundaries. So how how on earth do you position a product which isn&#8217;t <strong>AppSec </strong>but deals with security-related data (and stakeholder outcomes), isn&#8217;t an <strong>Observability </strong>tool, but observes an application stack from afar, and isn&#8217;t an <strong>Issue Tracker</strong> or <strong>Task Management</strong> tool, despite its bent towards project management?</p><p>Well what you <strong>don&#8217;t do</strong><em><strong> </strong></em>is try and use words alone. We originally wrote about this <strong><a href="https://www.linkedin.com/feed/update/urn:li:activity:7344089649583165440/">in a LinkedIn piece</a></strong> last week, but as we summarised there too - a picture speaks a thousand words.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fw6R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fw6R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 424w, https://substackcdn.com/image/fetch/$s_!fw6R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 848w, https://substackcdn.com/image/fetch/$s_!fw6R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!fw6R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fw6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png" width="1265" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1265,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:272277,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dcentrica.substack.com/i/167149522?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fw6R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 424w, https://substackcdn.com/image/fetch/$s_!fw6R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 848w, https://substackcdn.com/image/fetch/$s_!fw6R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!fw6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442137c3-af46-4d9b-b680-7707ccb0a142_1265x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you work in, or run a web-development agency, or an in-house development team, find out if Metaport is right for you at <a href="https://getmetaport.com">getmetaport.com</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.metaport.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>