{"id":9023,"date":"2025-05-22T10:05:41","date_gmt":"2025-05-22T09:05:41","guid":{"rendered":"https:\/\/www.markwilson.co.uk\/blog\/?p=9023"},"modified":"2025-05-22T10:05:43","modified_gmt":"2025-05-22T09:05:43","slug":"postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually","status":"publish","type":"post","link":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm","title":{"rendered":"Postmortem: deploying my static website with Azure Static Web Apps (eventually)"},"content":{"rendered":"\n<p>This all started out as a bit of vibe coding<em>*<\/em> in ChatGPT&#8230;<\/p>\n\n\n\n<p>Yesterday, whilst walking the dog, I was listening to <a href=\"https:\/\/wb40podcast.com\/2025\/05\/20\/329-ai-leadership\/\">the latest episode of WB-40<\/a>. Something <a href=\"https:\/\/www.linkedin.com\/in\/julia-bellis\/\">Julia Bellis<\/a> said gave me an idea for a simple custom GPT to help people (well, mostly me) eat better. ChatGPT helped me to create a custom GPT &#8211; which we named\u00a0<em>The Real Food Coach<\/em>.<\/p>\n\n\n\n<p>With the GPT created, I asked ChatGPT for something else: help me build a one-page website to link to it. In minutes I had something presentable: HTML, styling, fonts, icons &#8211; all generated in a few minutes. Pretty slick.<\/p>\n\n\n\n<p>When it came to hosting, ChatGPT suggested something I hadn\u2019t used previously: Azure Static Web Apps, rather than the Azure Storage Account route I\u2019d used for hosting in the past. It sounded modern and neat &#8211; automatic GitHub integration, free SSL, global CDN. So I followed its advice.<\/p>\n\n\n\n<p>ChatGPT was great. Until it wasn\u2019t.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A quick win turns into a slow burn<\/h3>\n\n\n\n<p>The proof of concept came together quickly &#8211; code committed to GitHub, site created in Azure, workflow generated. All looked good. But the deploys failed. Then failed again. And again.<\/p>\n\n\n\n<p>What should have taken 10 minutes quickly spiralled into a full evening of troubleshooting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The critical confusion<\/h3>\n\n\n\n<p>The issue came down to two settings that look similar &#8211; but aren\u2019t:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Deployment source &#8211; where your code lives (e.g. GitHub)<\/li>\n\n\n\n<li>Deployment authorisation policy &#8211; how Azure authenticates deployments (either via GitHub OIDC or a manually managed deployment token)<\/li>\n<\/ul>\n\n\n\n<p>ChatGPT had told me to use GitHub for both. That was the mistake.<\/p>\n\n\n\n<p>Using GitHub as the authorisation method relies on Azure injecting a secret (<code>AZURE_STATIC_WEB_APPS_API_TOKEN<\/code>) into GitHub, but that never happened. I tried regenerating it, reauthorising GitHub, even manually wiring in deployment tokens &#8211; all of which conflicted with the setup Azure had created.<\/p>\n\n\n\n<p>The result? Deploys that failed with:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cNo matching Static Web App was found or the API key was invalid\u201d<\/p>\n<\/blockquote>\n\n\n\n<p>Eventually, after several rounds of broken builds, missing secrets, and deleting and recreating the app, I questioned the advice ChatGPT had originally given. Sure enough, it confirmed that yes &#8211; the authorisation policy should have been set to Deployment Token, not GitHub.<\/p>\n\n\n\n<p>Thanks, ChatGPT. Bit late.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The right setup<\/h3>\n\n\n\n<p>Once I created the app with GitHub as the deployment source and Deployment Token as the authorisation policy, everything clicked.<\/p>\n\n\n\n<p>I copied the token from Azure, added it to GitHub secrets, updated the workflow to remove unnecessary build steps, and redeployed.<\/p>\n\n\n\n<p>Success.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Custom domain and tidy-up<\/h3>\n\n\n\n<p>Pointing my subdomain to the Static Web App was easy enough. I added the TXT record for domain verification, removed it once verified, and then added the CNAME. SSL was provisioned automatically by Azure.<\/p>\n\n\n\n<p>I now have a clean, simple landing page pointing to my custom GPT &#8211; fast to load, easy to maintain, and served via CDN with HTTPS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lessons learned<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ChatGPT can take you far, fast<\/strong> &#8211; but it can also give you confidently wrong advice. Check the docs, and question your co-pilot.<\/li>\n\n\n\n<li><strong>Azure Static Web Apps is fantastic<\/strong>\u00a0for a simple website &#8211; I&#8217;m even using the free tier for this.<\/li>\n\n\n\n<li><strong>Authorisation and deployment are not the same thing<\/strong>. Get them wrong, and everything breaks &#8211; even if the rest looks correct.<\/li>\n\n\n\n<li><strong>Start again sooner<\/strong> &#8211; sometimes it&#8217;s faster to delete and recreate than to debug a half-working config.<\/li>\n\n\n\n<li><strong>DNS setup was smooth<\/strong>, but your DNS provider might need you to delete the\u00a0TXT record after verification before you can create a CNAME).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Where is this website?<\/h3>\n\n\n\n<p>You can check out <em>The Real Food Coach<\/em> at <a href=\"https:\/\/realfood.markwilson.co.uk\/\">realfood.markwilson.co.uk<\/a> &#8211; and chat with the GPT at <a href=\"https:\/\/chat.openai.com\/g\/g-682dea4039b08191ad13050d0df8882f-the-real-food-coach\">chat.openai.com\/g\/g-682dea4039b08191ad13050d0df8882f-the-real-food-coach<\/a>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>*<a href=\"https:\/\/www.ctco.blog\/\">Joe Tomkinson<\/a> told me that&#8217;s what it is. I&#8217;d heard of vibe coding but I thought it was something real developers do. Turns out it&#8217;s more likely to be numpties like me&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This all started out as a bit of vibe coding* in ChatGPT&#8230; Yesterday, whilst walking the dog, I was listening to the latest episode of WB-40. Something Julia Bellis said gave me an idea for a simple custom GPT to help people (well, mostly me) eat better. ChatGPT helped me to create a custom GPT &hellip; <a href=\"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Postmortem: deploying my static website with Azure Static Web Apps (eventually)<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":9025,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[218],"tags":[646,852,563,176,853],"class_list":["post-9023","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-artificial-intelligence","tag-chatgpt","tag-github","tag-azure","tag-vibe-coding"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Postmortem: deploying my static website with Azure Static Web Apps (eventually) - markwilson.it<\/title>\n<meta name=\"description\" content=\"This postmortem explores how a quick win using Azure Static Web Apps and ChatGPT turned into a frustrating loop of failed deployments - and the misconfiguration that caused it all.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Postmortem: deploying my static website with Azure Static Web Apps (eventually) - markwilson.it\" \/>\n<meta property=\"og:description\" content=\"This postmortem explores how a quick win using Azure Static Web Apps and ChatGPT turned into a frustrating loop of failed deployments - and the misconfiguration that caused it all.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\" \/>\n<meta property=\"og:site_name\" content=\"markwilson.it\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-22T09:05:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-22T09:05:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mark Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:site\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mark Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\"},\"author\":{\"name\":\"Mark Wilson\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"headline\":\"Postmortem: deploying my static website with Azure Static Web Apps (eventually)\",\"datePublished\":\"2025-05-22T09:05:41+00:00\",\"dateModified\":\"2025-05-22T09:05:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\"},\"wordCount\":672,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"image\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1\",\"keywords\":[\"Artificial Intelligence\",\"ChatGPT\",\"GitHub\",\"Microsoft Azure\",\"Vibe Coding\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\",\"name\":\"Postmortem: deploying my static website with Azure Static Web Apps (eventually) - markwilson.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1\",\"datePublished\":\"2025-05-22T09:05:41+00:00\",\"dateModified\":\"2025-05-22T09:05:43+00:00\",\"description\":\"This postmortem explores how a quick win using Azure Static Web Apps and ChatGPT turned into a frustrating loop of failed deployments - and the misconfiguration that caused it all.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2025\\\/05\\\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Postmortem: deploying my static website with Azure Static Web Apps (eventually)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/\",\"name\":\"markwilson.it\",\"description\":\"get-info -class technology | write-output &gt; \\\/dev\\\/web\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\",\"name\":\"Mark Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"width\":800,\"height\":800,\"caption\":\"Mark Wilson\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\"},\"description\":\"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.\",\"sameAs\":[\"http:\\\/\\\/www.markwilson.co.uk\\\/\",\"https:\\\/\\\/www.instagram.com\\\/markwilsonuk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/markawilson\\\/\",\"https:\\\/\\\/x.com\\\/markwilsonit\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCWHlZCoHRTocdvtrOJ2IL4A\"],\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/author\\\/mark-wilson\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Postmortem: deploying my static website with Azure Static Web Apps (eventually) - markwilson.it","description":"This postmortem explores how a quick win using Azure Static Web Apps and ChatGPT turned into a frustrating loop of failed deployments - and the misconfiguration that caused it all.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm","og_locale":"en_GB","og_type":"article","og_title":"Postmortem: deploying my static website with Azure Static Web Apps (eventually) - markwilson.it","og_description":"This postmortem explores how a quick win using Azure Static Web Apps and ChatGPT turned into a frustrating loop of failed deployments - and the misconfiguration that caused it all.","og_url":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm","og_site_name":"markwilson.it","article_published_time":"2025-05-22T09:05:41+00:00","article_modified_time":"2025-05-22T09:05:43+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1","type":"image\/png"}],"author":"Mark Wilson","twitter_card":"summary_large_image","twitter_creator":"@markwilsonit","twitter_site":"@markwilsonit","twitter_misc":{"Written by":"Mark Wilson","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#article","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm"},"author":{"name":"Mark Wilson","@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"headline":"Postmortem: deploying my static website with Azure Static Web Apps (eventually)","datePublished":"2025-05-22T09:05:41+00:00","dateModified":"2025-05-22T09:05:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm"},"wordCount":672,"commentCount":0,"publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"image":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1","keywords":["Artificial Intelligence","ChatGPT","GitHub","Microsoft Azure","Vibe Coding"],"articleSection":["Technology"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm","url":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm","name":"Postmortem: deploying my static website with Azure Static Web Apps (eventually) - markwilson.it","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage"},"image":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1","datePublished":"2025-05-22T09:05:41+00:00","dateModified":"2025-05-22T09:05:43+00:00","description":"This postmortem explores how a quick win using Azure Static Web Apps and ChatGPT turned into a frustrating loop of failed deployments - and the misconfiguration that caused it all.","breadcrumb":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#primaryimage","url":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/postmortem-deploying-my-static-website-with-azure-static-web-apps-eventually.htm#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.markwilson.co.uk\/blog"},{"@type":"ListItem","position":2,"name":"Postmortem: deploying my static website with Azure Static Web Apps (eventually)"}]},{"@type":"WebSite","@id":"https:\/\/www.markwilson.co.uk\/blog\/#website","url":"https:\/\/www.markwilson.co.uk\/blog\/","name":"markwilson.it","description":"get-info -class technology | write-output &gt; \/dev\/web","publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.markwilson.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468","name":"Mark Wilson","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","url":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","width":800,"height":800,"caption":"Mark Wilson"},"logo":{"@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1"},"description":"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.","sameAs":["http:\/\/www.markwilson.co.uk\/","https:\/\/www.instagram.com\/markwilsonuk\/","https:\/\/www.linkedin.com\/in\/markawilson\/","https:\/\/x.com\/markwilsonit","https:\/\/www.youtube.com\/channel\/UCWHlZCoHRTocdvtrOJ2IL4A"],"url":"https:\/\/www.markwilson.co.uk\/blog\/author\/mark-wilson"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/ChatGPT-Image-May-22-2025-09_57_24-AM.png?fit=1536%2C1024&ssl=1","jetpack-related-posts":[{"id":9031,"url":"https:\/\/www.markwilson.co.uk\/blog\/2025\/05\/does-vibe-coding-have-a-place-in-the-world-of-professional-development.htm","url_meta":{"origin":9023,"position":0},"title":"Does vibe coding have a place in the world of professional development?","author":"Mark Wilson","date":"Wednesday 28 May 2025","format":false,"excerpt":"I\u2019ve been experimenting with generative AI lately \u2013 both in my day job and on personal projects \u2013 and I thought it was time to jot down some reflections. Not a deep think piece, just a few observations about how tools like Copilot and ChatGPT are starting to shape the\u2026","rel":"","context":"In &quot;Published elsewhere&quot;","block_context":{"text":"Published elsewhere","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/published-elsewhere"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/code-1076536-scaled.jpg?fit=1200%2C674&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/code-1076536-scaled.jpg?fit=1200%2C674&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/code-1076536-scaled.jpg?fit=1200%2C674&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/code-1076536-scaled.jpg?fit=1200%2C674&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/code-1076536-scaled.jpg?fit=1200%2C674&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":9191,"url":"https:\/\/www.markwilson.co.uk\/blog\/2025\/10\/tonights-talk-at-the-bletchley-ai-user-group-and-a-new-ai-resources-page.htm","url_meta":{"origin":9023,"position":1},"title":"Tonight&#8217;s talk at the Bletchley AI User Group, and a new AI Resources page","author":"Mark Wilson","date":"Tuesday 21 October 2025","format":false,"excerpt":"Tonight, I'll be giving a talk on AI Transformation at the Bletchley AI User Group. Slides I gave up on bit.ly QR codes\/links to OneDrive* and hosted the slides on my own website. They are also embedded below: Alternatively, you can save my bandwidth by picking them up from my\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/highres_530620137.jpg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/highres_530620137.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/highres_530620137.jpg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/highres_530620137.jpg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/highres_530620137.jpg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":8583,"url":"https:\/\/www.markwilson.co.uk\/blog\/2023\/11\/celebrating-chatgpts-first-birthday.htm","url_meta":{"origin":9023,"position":2},"title":"Celebrating ChatGPT&#8217;s first birthday&#8230;","author":"Mark Wilson","date":"Thursday 30 November 2023","format":false,"excerpt":"I was asked to comment on a few GPT-related questions by Node4's PR agency. I haven't seen where those comments are featured yet, but I decided to string them together into my own post... How has ChatGPT prompted innovation over the past year, transforming industries for the better? ChatGPT\u2019s main\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/chatgpt-birthday.jpg?fit=405%2C405&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":9043,"url":"https:\/\/www.markwilson.co.uk\/blog\/2025\/06\/monthly-retrospective-may-2025.htm","url_meta":{"origin":9023,"position":3},"title":"Monthly retrospective: May 2025","author":"Mark Wilson","date":"Monday 2 June 2025","format":false,"excerpt":"I've been struggling to post retrospectives this year \u2013 they are pretty time consuming to write. But, you may have noticed the volume of content on the blog increasing lately. That's because I finally have a workflow with ChatGPT prompts that help me draft content quickly, in my own style.\u2026","rel":"","context":"In &quot;Lifestyle&quot;","block_context":{"text":"Lifestyle","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/lifestyle"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/5b212061-eff2-4bf2-bdb2-b01645d924ce.png?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/5b212061-eff2-4bf2-bdb2-b01645d924ce.png?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/5b212061-eff2-4bf2-bdb2-b01645d924ce.png?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/5b212061-eff2-4bf2-bdb2-b01645d924ce.png?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/5b212061-eff2-4bf2-bdb2-b01645d924ce.png?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6428,"url":"https:\/\/www.markwilson.co.uk\/blog\/2016\/05\/scripting-azure-server-build-tasks.htm","url_meta":{"origin":9023,"position":4},"title":"Scripting Azure VM build tasks: static IP addresses, BGInfo and anti-malware extensions","author":"Mark Wilson","date":"Wednesday 25 May 2016","format":false,"excerpt":"Following on from yesterday's blog post with a pile of PowerShell to build a multiple-NIC VM in Azure, here are some more snippets of PowerShell to carry out a few build-related activities. Setting a static IP address on a NIC $RGName = Read-Host \"Resource Group\" $VNICName = Read-Host \"vNIC Name\"\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6553,"url":"https:\/\/www.markwilson.co.uk\/blog\/2016\/09\/preparation-notes-microsoft-exam-70-534-architecting-microsoft-azure-solutions.htm","url_meta":{"origin":9023,"position":5},"title":"Preparation notes for Microsoft exam 70-534: Architecting Microsoft Azure Solutions","author":"Mark Wilson","date":"Monday 12 September 2016","format":false,"excerpt":"I've been preparing for Microsoft exam 70-534: Architecting Microsoft Azure Solutions. At the time of writing, I haven't yet sat the exam (so this post doesn't breach any NDA) but the notes that follow were taken as I studied. Resources I used included: Microsoft Association of Practicing Architects (MAPA) bootcamp\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"https:\/\/ir-uk.amazon-adsystem.com\/e\/ir?t=marsweblo-21&l=li2&o=2&a=0735697442","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/9023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=9023"}],"version-history":[{"count":1,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/9023\/revisions"}],"predecessor-version":[{"id":9026,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/9023\/revisions\/9026"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/media\/9025"}],"wp:attachment":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=9023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=9023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=9023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}