{"id":108669,"date":"2026-05-06T09:00:00","date_gmt":"2026-05-06T16:00:00","guid":{"rendered":"https:\/\/www.crazyegg.com\/blog\/?p=108669"},"modified":"2026-04-30T12:05:09","modified_gmt":"2026-04-30T19:05:09","slug":"vibe-code-a-website","status":"publish","type":"post","link":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/","title":{"rendered":"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?"},"content":{"rendered":"\n<p>What happens when you put powerful coding tools in the hands of people who don\u2019t fully understand their outputs?<\/p>\n\n\n\n<p>This scenario is now playing out. Vibe coding has made it possible to ship entire apps without even talking to a developer. Yet there seems to be little understanding of the dangers, especially among businesses without in-house dev expertise.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1200\" height=\"720\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png\" alt=\"Crazy Egg diagram showing the dangers of vibe coding including tech debt, data breaches, unsecured APIs, and edge-case vulnerabilities.\" class=\"wp-image-108674\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png 1200w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1-300x180.png 300w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1-1024x614.png 1024w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1-768x461.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>To better understand the risks, I interviewed three experts. I asked them about the underlying technology, what\u2019s at stake, and, crucially, how smaller businesses can protect themselves.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Is Vibe Coding?&nbsp;<\/h2>\n\n\n\n<p>The phrase \u201cvibe coding&#8221; comes from Andrej Karpathy, a highly regarded AI researcher and one of the co-founders of Anthropic (he\u2019s since left the company). He first used it in an <a href=\"https:\/\/x.com\/karpathy\/status\/1886192184808149383\" target=\"_blank\" rel=\"noreferrer noopener\">X post<\/a>, where he described it as \u201cnot really coding.\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"734\" height=\"618\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125225\/Dangers-of-Vibe-Coding_Andrej-Karpathy.png\" alt=\"Andrej Karpathy tweet explaining vibe coding, describing AI-assisted development where code grows beyond the developer's comprehension.\" class=\"wp-image-108676\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125225\/Dangers-of-Vibe-Coding_Andrej-Karpathy.png 734w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125225\/Dangers-of-Vibe-Coding_Andrej-Karpathy-300x253.png 300w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/><\/figure>\n\n\n\n<p>Vibe coding works in much the same way as other forms of generative AI. The user enters a prompt into their chatbot of choice. The LLM then draws on its vast corpus of training material to generate a new codebase or modify an existing one.&nbsp;<\/p>\n\n\n\n<p>Popular platforms like Claude Code (Anthropic) and Codex (OpenAI) package their genAI engines in a suite of developer and agentic tools. This allows them to do things like access files in a local environment, execute multi-stage workflows, and interact with third-party platforms like GitHub.&nbsp;<\/p>\n\n\n\n<p>Here\u2019s a quick overview of how easily I (a non-developer) can create a website in <em>minutes<\/em>. I simply open up Visual Studio, install the Claude Code extension, configure a CLAUDE.md file with my instructions, and ask for a website.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125259\/Dangers-of-Vibe-Coding_Claude.png\" alt=\"Claude Code interface in VS Code building a freelance writer website for Daniel Mowinski using the frontend-design skill.\" class=\"wp-image-108678\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125259\/Dangers-of-Vibe-Coding_Claude.png 1920w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125259\/Dangers-of-Vibe-Coding_Claude-300x169.png 300w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125259\/Dangers-of-Vibe-Coding_Claude-1024x576.png 1024w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125259\/Dangers-of-Vibe-Coding_Claude-768x432.png 768w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125259\/Dangers-of-Vibe-Coding_Claude-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p>I can then check the output in my local environment, make changes as needed (Claude will modify the code directly), and upload the files to my chosen host.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1895\" height=\"1074\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125337\/Dangers-of-Vibe-Coding_Daniel-Mowinski.png\" alt=\"Daniel Mowinski freelance writer portfolio website built with Claude Code, featuring bold typography and dark design.\" class=\"wp-image-108679\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125337\/Dangers-of-Vibe-Coding_Daniel-Mowinski.png 1895w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125337\/Dangers-of-Vibe-Coding_Daniel-Mowinski-300x170.png 300w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125337\/Dangers-of-Vibe-Coding_Daniel-Mowinski-1024x580.png 1024w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125337\/Dangers-of-Vibe-Coding_Daniel-Mowinski-768x435.png 768w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125337\/Dangers-of-Vibe-Coding_Daniel-Mowinski-1536x871.png 1536w\" sizes=\"(max-width: 1895px) 100vw, 1895px\" \/><\/figure>\n\n\n\n<p>There are more use cases than you can count. Personal websites, content management systems, data management systems, full-blown customer-facing apps\u2014the list goes on.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Widespread Is Vibe Coding?&nbsp;<\/h2>\n\n\n\n<p>Short answer? A <em>lot <\/em>of people are doing it. There\u2019s no sign of the trend slowing, either.&nbsp;<\/p>\n\n\n\n<p>Jellyfish reported in <a href=\"https:\/\/jellyfish.co\/ai-engineering-trends\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>AI Engineering Trends<\/em><\/a> that 67% of software engineers are using AI tools in some way. They also found that 14% of pull requests (proposed changes to existing codebases) were generated autonomously by AI agents.&nbsp;<\/p>\n\n\n\n<p>In early 2025, Silicon Valley startup accelerator Y Combinator said that a quarter of apps in its winter cohort had codebases that were <a href=\"https:\/\/techcrunch.com\/2025\/03\/06\/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated\/\" target=\"_blank\" rel=\"noreferrer noopener\">95% AI-generated<\/a>.&nbsp; We\u2019re also seeing the emergence of a new role: the so-called <a href=\"https:\/\/www.linkedin.com\/posts\/matthewhrockwell_oh-man-and-it-begins-activity-7444488002543980544-b1ky?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAABg0NWgB7VglLgKVXJhv5_-CLeYhqls6vbY\" target=\"_blank\" rel=\"noreferrer noopener\">vibe code cleanup specialist<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"649\" height=\"792\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125509\/Dangers-of-Vibe-Coding_LinkedIn.png\" alt=\"LinkedIn screenshot shared by Matthew Rockwell showing developers adding vibe code cleanup specialist to their profiles.\" class=\"wp-image-108680\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125509\/Dangers-of-Vibe-Coding_LinkedIn.png 649w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125509\/Dangers-of-Vibe-Coding_LinkedIn-246x300.png 246w\" sizes=\"(max-width: 649px) 100vw, 649px\" \/><\/figure>\n\n\n\n<p>What is especially interesting, however, is uptake among non-technological and low-dev-expertise businesses.<\/p>\n\n\n\n<p>According to the2025 <a href=\"https:\/\/www.uschamber.com\/technology\/empowering-small-business-the-impact-of-technology-on-u-s-small-business\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Empowering Small Business<\/em><\/a> report by the U.S. Chamber of Commerce, one in five small businesses use genAI coding tools. In addition, a <a href=\"https:\/\/www.pax8.com\/en-us\/news-post\/new-pax8-research-reveals-small-businesses-are-adopting-ai-faster-than-theyre-building-strategies-to-manage-it\/\" target=\"_blank\" rel=\"noreferrer noopener\">survey by Pax8<\/a> found that 62% of SMB leaders believe AI adoption is essential for remaining competitive.&nbsp;<\/p>\n\n\n\n<p>Small and medium businesses are using coding tools to ship features for in-house and external apps. Even more worryingly, this is happening in a context of hypercompetition and ongoing pressure to increase speed to deployment.&nbsp;<\/p>\n\n\n\n<p>All of this makes it unsurprising that a smorgasbord of vulnerabilities has started to appear. In late 2025, Escape <a href=\"https:\/\/escape.tech\/state-of-security-of-vibe-coded-apps\" target=\"_blank\" rel=\"noreferrer noopener\">surveyed 5,600 publicly available apps<\/a> built with vibe-coding platforms. They uncovered over 2,000 vulnerabilities. In certain cases, highly sensitive data like medical records were exposed.<\/p>\n\n\n\n<p>I took these concerns to three experts who work with advanced software on a daily basis. I asked them how much of a risk these tools present and what SMBs in particular need to do to avoid potentially serious problems.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Amy Gottler, PhD: Communication Is Essential for Filling Knowledge Gaps<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1200\" height=\"720\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125602\/Dangers-of-Vibe-Coding_Image-2.png\" alt=\"Amy Gottler, PhD, Founder of eLearning Academy quote on vibe coding risks for small teams.\" class=\"wp-image-108681\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125602\/Dangers-of-Vibe-Coding_Image-2.png 1200w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125602\/Dangers-of-Vibe-Coding_Image-2-300x180.png 300w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125602\/Dangers-of-Vibe-Coding_Image-2-1024x614.png 1024w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125602\/Dangers-of-Vibe-Coding_Image-2-768x461.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Amy Gottler is an e-learning consultant who works on complex education systems. She is the founder of <a href=\"https:\/\/elearning-academy.co.uk\/\" target=\"_blank\" rel=\"noreferrer noopener\">eLearning Academy<\/a> and holds a PhD in Technology Enhanced Learning.&nbsp;<\/p>\n\n\n\n<p>When I spoke to Amy, she was keen to point out that she\u2019s not anti-AI. \u201cThey\u2019re absolutely amazing tools,\u201d she said. \u201cThe issue I\u2019ve observed, especially working with small teams, is that a lot of people don&#8217;t know what they don&#8217;t know.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Data exploits are a real risk for small businesses<\/h3>\n\n\n\n<p>She explained that<strong> serious risks emerge when small businesses start collecting data,<\/strong> especially if they\u2019ve gained confidence from using AI to help with tasks where there\u2019s limited scope for things to go wrong.&nbsp;<\/p>\n\n\n\n<p>\u201cIf you&#8217;re a small business and you want to create a one-page website, you could do that in less than ten minutes. In this case, the risk is quite low. You put it in a prompt, and you&#8217;ve got your website.\u201d<\/p>\n\n\n\n<p>Amy used the example of a hairdressing salon to illustrate the dangers that arise when somebody starts collecting and integrating data. \u201cThe next step for the business owner is to say, \u2018I used that brilliant AI tool to create a website so quickly. I&#8217;m not going to pay for an application to take bookings or reservations. I&#8217;ll just try to create one myself.\u2019\u201d<\/p>\n\n\n\n<p>The hairdresser now builds a database. They can capture users&#8217; names, email addresses, and potentially credit card information when they&#8217;re booking an appointment. <strong>\u201cIf you don&#8217;t know how programming works, you could, for example, be creating a database where passwords are stored in plain text<\/strong> without encryption, which means that hackers have a nice open door to all your customers&#8217; data.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why vibe coding creates unnecessary tech debt<\/h3>\n\n\n\n<p>I also asked Amy about her direct experience working on learning management systems (LMS) through her <a href=\"https:\/\/amygottler.co.uk\/\" target=\"_blank\" rel=\"noreferrer noopener\">consultancy business<\/a>. It\u2019s an interesting case because the in-house professionals responsible for managing these systems often have <em>some <\/em>programming experience but lack highly specialized expertise.&nbsp;<\/p>\n\n\n\n<p>\u201cI&#8217;m seeing that people will often have some familiarity with HTML, CSS, and JavaScript. They use AI tools to take their outputs to what they see as the next level, but they don\u2019t know how to run full tests. So they launch a new feature, and it causes issues. Over time, other things on the system stop working. This isn\u2019t as much of a risk as a direct data exploit, but it&#8217;s an annoyance because it means you have to troubleshoot what&#8217;s going on and find the rogue code.\u201d<\/p>\n\n\n\n<p>The problem here is tech debt. A feature <em>appears<\/em> to work when it\u2019s first implemented. But whoever is responsible for implementing it doesn\u2019t understand the broader context of the system. Because the new features aren&#8217;t fully supported, a simple update is enough to break existing dependencies or introduce a string of small security vulnerabilities. This creates a time and cost drain at a later stage when the problem needs to be fixed.&nbsp;<\/p>\n\n\n\n<p>\u201cIn larger organizations, you have what I call semi-developers. These people are more involved in building frontend functionality, and they\u2019re the ones who are more likely to be a little bit more adventurous with vibe-coding tools. In attempting to make the system go further, they can unknowingly introduce security vulnerabilities, cross-stack compatibility issues, and hidden dependencies.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Businesses need to be cautious about cutting budgets<\/h3>\n\n\n\n<p>We finished by talking about another worrying trend that Amy has seen in her work: companies reducing tech budgets and replacing developers with AI. She argues that this impulse on the part of budget-strapped businesses needs to be treated with a great deal of caution.&nbsp;<\/p>\n\n\n\n<p>\u201cI see some companies starting to say. \u2018We&#8217;re going to replace people with AI.\u2019 And with tight budgets, I can understand that line of thinking. But it\u2019s where mistakes start to happen. If companies are adopting these tools, there needs to be proper governance behind it. Not only do you need to vet the tools that are being used to make sure that they&#8217;re appropriate, they need to be set up properly,&#8221; she explained. \u201cSo if you&#8217;re giving your employees licenses to use them, it\u2019s important to ask if those licenses have been set up so there\u2019s no data sharing.\u201d&nbsp;<\/p>\n\n\n\n<p>She finished by making the case for employee education, an area that is often deprioritized. \u201cI think there\u2019s also a user education element,\u201d she said. \u201cYou shouldn\u2019t blindly use these tools. I think this is everything in IT. Security training should be provided and enforced.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">David Mytton: Don\u2019t Confuse Vibe Coding With Serious Agentic Engineering&nbsp;<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1200\" height=\"720\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125644\/Dangers-of-Vibe-Coding_Image-3.png\" alt=\"David Mytton, CEO of Arcjet quote on AI replicating insecure code patterns in vibe coding.\" class=\"wp-image-108682\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125644\/Dangers-of-Vibe-Coding_Image-3.png 1200w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125644\/Dangers-of-Vibe-Coding_Image-3-300x180.png 300w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125644\/Dangers-of-Vibe-Coding_Image-3-1024x614.png 1024w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125644\/Dangers-of-Vibe-Coding_Image-3-768x461.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>David Mytton is the CEO of <a href=\"https:\/\/arcjet.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Arcjet<\/a>, a security platform that provides real-time guardrails for AI apps. He is also conducting PhD research on sustainable computing at the University of Oxford. <a href=\"https:\/\/console.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Console<\/a>, his weekly digest for experienced developers, goes out to more than 30K subscribers.&nbsp;<\/p>\n\n\n\n<p>David began by describing how he thinks AI coding tools have altered the traditional development workflow. In his view, this change has led to greater speed and lower costs but has also created genuine security risks.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How AI coding is consuming the middle \u201cimplementation phase\u201d<\/h3>\n\n\n\n<p>\u201cThere used to be three phases of development,\u201d he told me. \u201cThere was upfront planning, which happens before you write any code. There&#8217;s the middle implementation phase where you write the code. Finally, there&#8217;s the end phase for testing and making sure everything works before deployment. These three phases still exist, but the middle phase is no longer run by humans, or at least it won&#8217;t be in a very short period of time.\u201d<\/p>\n\n\n\n<p>He explained how, in this new model, developers add value by reviewing the initial roadmap, coming up with ideas, refining the application with the coding agent, and then, at the end, verifying everything actually works. \u201cThe middle bit, the code bit, is where all the value was,\u201d David said. \u201cNow, instead of the human writing the code, AI is taking over. This delivers speed. It also makes code cheaper. You can generate lots of different ideas and throw things away that you don&#8217;t like or don&#8217;t work.\u201d<\/p>\n\n\n\n<p>What\u2019s not to like? Fewer costs, less time to deployment, and plenty of space to try new prototypes. It all sounds perfect, at least until you acknowledge the lingering issue that you can&#8217;t fully trust AI. \u201cWhile AI is very good at coming up with coverage of all the different use cases and edge cases that you might have,\u201d he said, \u201cit&#8217;s going to make decisions that can open up security holes, either because things have been implemented in an insecure way or because known security issues aren\u2019t addressed.\u201d<\/p>\n\n\n\n<p>This has added a new element, the testing of AI edge cases, to the final phase described above. And it\u2019s where an experienced developer is non-negotiable. \u201cThe problem is <strong>you don&#8217;t know about edge cases unless you&#8217;ve experienced them in the past or you have knowledge of this field<\/strong>. AI is going to introduce potential security vulnerabilities without anyone understanding.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The difference between vibe coding and agentic engineering<\/h3>\n\n\n\n<p>David was careful to draw a distinction between vibe coding and true agentic engineering: \u201cAgentic engineering involves running the three phases of planning, implementation, and deployment after proper validation. Vibe coding is different in that you&#8217;re just prompting the AI to do things and, often, deploying to production without rigorous testing or any testing at all.\u201d<\/p>\n\n\n\n<p>\u201cI think there&#8217;s more vibe coding than agentic engineering right now,&#8221; he went on to say, \u201cand I think that&#8217;s because of the kind of developers who are adopting these tools first. The more experienced engineers are skeptical. They&#8217;re adding AI to existing workflows, which maintains the three traditional phases. The less experienced engineers are going as fast as they possibly can, releasing things without thinking about it. That <em>can<\/em> be an advantage in certain circumstances, but it has a lot of inherent risk. The fact that Anthropic and OpenAI have both recently released built-in security tools for their coding agents proves that this is a real problem.\u201d&nbsp;<\/p>\n\n\n\n<p>One of the recurring themes of our conversation was the speed at which new code is being deployed. David has seen first-hand how velocity has increased. And it\u2019s something he suspects has spread to the enterprise sector, in significant part because of competitive tensions. Interestingly, he said that he has heard of developers being given a remit to work on projects using AI outside of organization guardrails. These so-called \u201ctiger teams\u201d have mandates to ship features as quickly as possible.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AI tools can\u2019t build secure apps on their own<\/h3>\n\n\n\n<p>Why can\u2019t AI tools simply run their own security checks? I posed this question to David. He explained that there are three interlocking factors at play:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The inadequacies of LLM training materials<\/li>\n\n\n\n<li>The subtleties of security issues<\/li>\n\n\n\n<li>The absence of advanced infrastructure needed to secure apps on an ongoing basis<\/li>\n<\/ul>\n\n\n\n<p>\u201cIf you think about all the code that exists, we already have security vulnerabilities,\u201d he explained. <strong>\u201cHumans haven\u2019t created perfect code. AI is trained on that imperfect body of work, which means it&#8217;s going to reimplement existing patterns of insecure code.\u201d<\/strong><\/p>\n\n\n\n<p>The issue is further compounded by the fact that many of these security flaws aren\u2019t obvious. \u201cThere are lots of subtleties in how these protocols work. Basic issues are quite rare because it&#8217;s more the case that there are small flaws in the way something is implemented. This can result in a chain of multiple vulnerabilities that can be exploited to access a system. It&#8217;s very rare that there&#8217;s going to be one single issue like failing to implement authentication correctly. And you need to draw on different, nuanced approaches to identify subtle bugs. These are what AI struggles with.\u201d<\/p>\n\n\n\n<p>David argues that the solution is a mix of expert human review and strict, automated guardrails, both of which are lacking in the industry. \u201cIt&#8217;s just no longer possible for humans to review every single line of code. Certain code will need review by humans in the most sensitive areas, things like payment flows, authentication, and other really critical parts of the application. But we also need to provide safe rails for people to implement common functionality.\u201d<\/p>\n\n\n\n<p>This is the underlying philosophy of Arcjet. His company provides a series of building blocks that allow developers to bring common security functionality into their application without having to re-implement it from scratch. \u201cA simple example,&#8221; David says, \u201cis that we have bot detection that identifies automated scrapers and prevents issues like spam sign-ups and automated abuse of your application. We maintain multiple threat feeds with real-time data coming from multiple providers and visibility across thousands of applications deployed on the product. We have all sorts of heuristics that go into the detection of not just known threats but emerging threats that happen over very short periods of time.\u201d<\/p>\n\n\n\n<p>This approach highlights the very real shortcomings of asking the tools themselves to take care of security. \u201cWe have to do an array of things behind the scenes to maintain a product. If you ask ChatGPT to stop bot signups, it will implement some very basic protections. But it&#8217;s not going to have the sophistication that we&#8217;re able to bring to the problem. And that&#8217;s just one area. There are many others like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Secure logins<\/li>\n\n\n\n<li>Dealing with cookies correctly<\/li>\n\n\n\n<li>Managing personal information across jurisdictions to deal with the different privacy legislation<\/li>\n<\/ul>\n\n\n\n<p>\u201cVibe-coders using AI to account for these risks will see a lot of incorrect and insecure implementations.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Matthew Rockwell: Vibe Coders Can\u2019t Find Subtle Vulnerabilities<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1200\" height=\"720\" src=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125727\/Dangers-of-Vibe-Coding_Image-4.png\" alt=\"Matthew Rockwell, CEO of ATOMiK quote on vibe coders lacking security awareness when handling user data.\" class=\"wp-image-108683\" srcset=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125727\/Dangers-of-Vibe-Coding_Image-4.png 1200w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125727\/Dangers-of-Vibe-Coding_Image-4-300x180.png 300w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125727\/Dangers-of-Vibe-Coding_Image-4-1024x614.png 1024w, https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/29125727\/Dangers-of-Vibe-Coding_Image-4-768x461.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Matthew Rockwell is the founder of <a href=\"https:\/\/atomik.tech\/\" target=\"_blank\" rel=\"noreferrer noopener\">ATOMiK<\/a>, where he is developing hardware architecture that minimizes data movement by updating only state changes (deltas). He previously worked as an advanced manufacturing engineer at Keysight Technologies, where he specialized in database management for industrial IoT applications.&nbsp;<\/p>\n\n\n\n<p>As somebody with wide experience of mission-critical systems, one of Matthew\u2019s main concerns is that non-experts can\u2019t reliably stress-test the data security of their vibe-coded apps.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vibe coding will be big, but it needs guardrails<\/h3>\n\n\n\n<p>Like everybody I spoke to, Matthew was eager to point out that he\u2019s not against vibe coding in its entirety. In fact, he thinks it opens up exciting opportunities for people with limited experience who are working on app and website frontends.&nbsp;<\/p>\n\n\n\n<p>\u201cWhen it comes to vibe coding and programming in general,\u201d he told me, \u201cthere&#8217;s always been two avenues: the frontend, the UI and UX, and the backend that makes everything work. I think people who are more creative and artsy tend to enjoy the former part more. That\u2019s why vibe coding has really taken off and why it\u2019s ultimately a good thing. Somebody who doesn\u2019t have a deep programming background now has the tools to be artistic.\u201d<\/p>\n\n\n\n<p>So far, so good. The issue is that this freedom creates a set of problems that traditional dev workflows aren\u2019t designed to fix. \u201c<strong>It\u2019s possible to create UIs that traditional programmers never would have even thought of, and that&#8217;s creating a new set of backend challenges, particularly around data. <\/strong>We saw with OpenClaw exactly what could happen when you have exposure to private data.\u201d<\/p>\n\n\n\n<p>The <a href=\"https:\/\/www.reco.ai\/blog\/openclaw-the-ai-agent-security-crisis-unfolding-right-now\" target=\"_blank\" rel=\"noreferrer noopener\">OpenClaw saga<\/a> he\u2019s referring to is one of the most significant AI security crises of 2026. OpenClaw lets users build autonomous AI agents that can exercise significant control over local systems. A number of serious issues have emerged, including the distribution of malicious skills via the OpenClaw marketplace, a release bug that allowed hackers to hijack browser connections and control local instances, and a large database exposure via Moltbook, a social media network for OpenClaw agents.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One of the basic issues is unsecured two-way gateways<\/h3>\n\n\n\n<p>One of the main problems with vibe-coded apps revolves around poorly secured two-way gateways. These are bidirectional interfaces that allow for the exchange of data. APIs, which give users access to backend services, are a well-known example.&nbsp;<\/p>\n\n\n\n<p>\u201cI think the biggest issue,\u201d Matthew told me, \u201cis that vibe coders don\u2019t understand how to create virtual environments that secure data locally and prevent it from extending beyond an encrypted router. A lot of gateways are two-way gateways. And because a vibe coder wants a new feature, they allow this gateway to exist without thinking about what someone else can do with access to it. If you don&#8217;t have a strong virtual sandbox environment, you won&#8217;t be able to test applications offline before pushing them into production. You can\u2019t see and understand what somebody who&#8217;s looking to perform malicious acts is capable of.\u201d<\/p>\n\n\n\n<p>He uses the example of a radio channel to illustrate the common misconception that data only moves in one direction: \u201cIt\u2019s like I&#8217;ve <em>created <\/em>a radio, but I&#8217;m under the impression that the radio is a one-way radio. I can talk, but nobody can listen. But that&#8217;s not the reality. The reality is you are creating an exposed environment. And the danger comes from storing private information, even locally, in a way where it isn\u2019t secured and is therefore completely visible. It&#8217;s basically presenting customer data to hackers on a silver platter.\u201d<\/p>\n\n\n\n<p>Matthew isn\u2019t pessimistic, however. He thinks this problem will lead to the emergence of a new role: the infrastructure engineer. \u201cThere\u2019s going to be a serious need for professionals who can set up robust, safe testing infrastructures. They\u2019ll also come up with creative solutions to hurdles like insufficient context windows and reliable multi-agent orchestration. The push I&#8217;m seeing, and I think this is integral to being able to have your employees build features that ship quickly without security vulnerabilities, is to fully re-orchestrate the way data is stored and have the underlying database infrastructure where it really needs to be.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Only experienced developers can try to hack systems effectively<\/h3>\n\n\n\n<p>In his work with complex data storage systems, Matthew spent a lot of his time testing edge cases. These are unusual situations that sit on the \u201cedges\u201d of expected user behavior and inputs. They can be a source of subtle, high-impact vulnerabilities and are often the focus of malicious actors.&nbsp;<\/p>\n\n\n\n<p>\u201cWhen you&#8217;ve dealt with user data and you understand the privacy component thoroughly, you know that it\u2019s not as trivial as vibe coding,&#8221; he said. \u201cIt&#8217;s not as simple as building something and putting it out there. <strong>When you&#8217;re dealing with user data, you&#8217;re testing edge cases and essentially trying to hack your own system. That&#8217;s something only an experienced programmer knows how to do.<\/strong> A vibe coder is unlikely to even be concerned about it.&#8221;<\/p>\n\n\n\n<p>The obvious danger is small and medium businesses that don\u2019t have any understanding of the high-level, complex skills that hackers regularly employ. But larger businesses might also be at risk.<\/p>\n\n\n\n<p>\u201cEspecially when you&#8217;re in industry,\u201d Matthew explained, \u201cyou\u2019re holding on to confidential information that can lead to a catastrophic situation if it\u2019s revealed. You\u2019re talking job losses, long-term brand damage, and even legal action. A lot of industries haven&#8217;t even adopted AI yet because they don&#8217;t feel that the security is there. When you&#8217;re dealing with that level of sensitivity, you develop a lot of respect.\u201d<\/p>\n\n\n\n<p>This is at odds with the \u201cship at any cost\u201d mentality that dominates so much of the current approach among companies.<strong> &#8220;With vibe coding, everything seems to be on more of an output basis. People are thinking, \u2018What can I get out there? What can I build today? I want to build something fast and I want to get it out.\u2019 But when you start dealing with secure and private information, you need to be beyond cautious.\u201d<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Vibe Code Safely: 4 Tips for Non-Experts<\/h2>\n\n\n\n<p>There were several recurrent threads that came up in my discussions about vibe coding. Data exposure presents the core risk. How testing requires in-depth expertise. The likelihood of major security breaches in the coming months.&nbsp;<\/p>\n\n\n\n<p>At the same time, however, there was a lot of optimism. Despite the risks, these <em>are <\/em>democratizing tools. When used safely, they open up a realm of opportunities for non-developers and small and medium businesses.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Define your blast radius<\/h3>\n\n\n\n<p>When I asked him how businesses can protect themselves from security breaches, David Mytton explained the concept of the \u201cblast radius.\u201d<\/p>\n\n\n\n<p>\u201cWhat we&#8217;ve been doing at Arcjet is to categorize our code base based on the blast radius and the risk levels of the different areas.\u201d<\/p>\n\n\n\n<p>A blast radius is a prediction of how much damage a potential breach can cause. A homepage bug, for example, is an annoyance but not a mission-critical problem. If there&#8217;s a security bug in a login flow, on the other hand, then that&#8217;s a serious issue. You should apply separate rules to the different areas of your codebase. This way, developers can vary the rigor of their reviews accordingly.&nbsp;<\/p>\n\n\n\n<p>\u201cYou can get pretty granular in large code bases to fully understand the risk levels and to know whether it&#8217;s fine to have code go out automatically with basic checks versus having humans come into the loop,\u201d David explained. He described it as \u201cthe first step is to safely enabling the velocity that AI is bringing.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Ensure tight alignment between frontend and backend teams<\/h3>\n\n\n\n<p>If you have a dedicated backend team, you can prevent a whole host of problems by ensuring that anybody working on the frontend can communicate quickly with IT and dev professionals. Small frontend changes tend to be less risky, but they can be responsible for costly tech debt. Simple checks can go a long way in preventing this.&nbsp;<\/p>\n\n\n\n<p>Amy Gottler emphasized this point: \u201cPeople at the front think, &#8216;Oh yeah, I use this system, but I don&#8217;t like this bit. I want to make it better. How can I now change it?\u2019 In these cases, there needs to be good communication between the back-end IT team and the people who are actually in charge of managing and maintaining the day-to-day platform.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Use third-party databases tools<\/h3>\n\n\n\n<p>If you\u2019re set on adding advanced functionality to vibe-coded apps, use third-party tools with established security credentials. Databases are the obvious example here. But it applies equally to authentication providers, payment processors, file storage services, and messaging APIs. Anything that handles sensitive data or system access.<\/p>\n\n\n\n<p>Matthew Rockwell regularly gives this advice. \u201cWhen I&#8217;m talking to vibe coders, I do recommend using third-party established back-end databases. They&#8217;ve invested billions of dollars into encryption methods. You can pull APIs to create data-passing structures with their security enabled through your own user interface. Don&#8217;t stop vibe coding; enjoy it. Just don&#8217;t try to secure data on your own terms.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Don\u2019t allow AI to implement core security features<\/h3>\n\n\n\n<p>Don\u2019t allow AI to implement core security features from scratch. These are the parts of an application that determine who gets access to what and how sensitive data is protected. If they fail, the consequences are usually severe.<\/p>\n\n\n\n<p>Developers should rely on established libraries and managed services for authentication, payment processing, API access control, encryption, session handling, and secrets management. These tools have been tested at scale, reviewed by specialists, and are updated when new threats emerge.<\/p>\n\n\n\n<p>David Mytton gave a particularly relevant example: \u201cThere is a common rule that developers should never write their own cryptography. There are very few people in the world who can write secure cryptography. And that&#8217;s why everyone always uses one of the few standard libraries that are available. I think that&#8217;s going to become the case for other areas of the codebase as AI use continues to grow.\u201d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What happens when you put powerful coding tools in the hands of people who don\u2019t fully understand their outputs? This scenario is now playing out&#8230;.<\/p>\n","protected":false},"author":274,"featured_media":108674,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","_lmt_disableupdate":"","_lmt_disable":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[876],"tags":[],"class_list":["post-108669","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-website"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?<\/title>\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.crazyegg.com\/blog\/vibe-code-a-website\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?\" \/>\n<meta property=\"og:description\" content=\"What happens when you put powerful coding tools in the hands of people who don\u2019t fully understand their outputs? This scenario is now playing out....\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/\" \/>\n<meta property=\"og:site_name\" content=\"The Daily Egg\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/crazyegganalytics\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-06T16:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Mowinski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CrazyEgg\" \/>\n<meta name=\"twitter:site\" content=\"@CrazyEgg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Mowinski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/\"},\"author\":{\"name\":\"Daniel Mowinski\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#\\\/schema\\\/person\\\/6d38b18fbc4dbac2a3e3c053e92df52b\"},\"headline\":\"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?\",\"datePublished\":\"2026-05-06T16:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/\"},\"wordCount\":4290,\"publisher\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ceblog.s3.amazonaws.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/29125112\\\/Dangers-of-Vibe-Coding_Image-1.png\",\"articleSection\":[\"Website\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/\",\"url\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/\",\"name\":\"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ceblog.s3.amazonaws.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/29125112\\\/Dangers-of-Vibe-Coding_Image-1.png\",\"datePublished\":\"2026-05-06T16:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ceblog.s3.amazonaws.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/29125112\\\/Dangers-of-Vibe-Coding_Image-1.png\",\"contentUrl\":\"https:\\\/\\\/ceblog.s3.amazonaws.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/29125112\\\/Dangers-of-Vibe-Coding_Image-1.png\",\"width\":1200,\"height\":720,\"caption\":\"Crazy Egg diagram showing the dangers of vibe coding including tech debt, data breaches, unsecured APIs, and edge-case vulnerabilities.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/vibe-code-a-website\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Website\",\"item\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/category\\\/website\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/\",\"name\":\"The Daily Egg\",\"description\":\"Conversion Rate Optimization Made Easy\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#organization\",\"name\":\"Crazy Egg\",\"url\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ceblog.s3.amazonaws.com\\\/wp-content\\\/uploads\\\/2015\\\/06\\\/Crazy-Egg-logo-small.png\",\"contentUrl\":\"https:\\\/\\\/ceblog.s3.amazonaws.com\\\/wp-content\\\/uploads\\\/2015\\\/06\\\/Crazy-Egg-logo-small.png\",\"width\":191,\"height\":100,\"caption\":\"Crazy Egg\"},\"image\":{\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/crazyegganalytics\\\/\",\"https:\\\/\\\/x.com\\\/CrazyEgg\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/crazy-egg\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJNe_xmPi07YezxaqfoRVqg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/#\\\/schema\\\/person\\\/6d38b18fbc4dbac2a3e3c053e92df52b\",\"name\":\"Daniel Mowinski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/db7163afc78f833c57644a3fe613d0e73db19329a10f1b8e020af5d93a000e9b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/db7163afc78f833c57644a3fe613d0e73db19329a10f1b8e020af5d93a000e9b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/db7163afc78f833c57644a3fe613d0e73db19329a10f1b8e020af5d93a000e9b?s=96&d=mm&r=g\",\"caption\":\"Daniel Mowinski\"},\"description\":\"Dan Mowinski is a UK-based freelance writer and journalist. His main areas of interest are sales and marketing, business communication, and the future of tech. He's also a dab hand at a cryptic crossword. Find him at DanMowinski.com.\",\"url\":\"https:\\\/\\\/www.crazyegg.com\\\/blog\\\/author\\\/danielm\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?","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.crazyegg.com\/blog\/vibe-code-a-website\/","og_locale":"en_US","og_type":"article","og_title":"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?","og_description":"What happens when you put powerful coding tools in the hands of people who don\u2019t fully understand their outputs? This scenario is now playing out....","og_url":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/","og_site_name":"The Daily Egg","article_publisher":"https:\/\/www.facebook.com\/crazyegganalytics\/","article_published_time":"2026-05-06T16:00:00+00:00","og_image":[{"width":1200,"height":720,"url":"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png","type":"image\/png"}],"author":"Daniel Mowinski","twitter_card":"summary_large_image","twitter_creator":"@CrazyEgg","twitter_site":"@CrazyEgg","twitter_misc":{"Written by":"Daniel Mowinski","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/#article","isPartOf":{"@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/"},"author":{"name":"Daniel Mowinski","@id":"https:\/\/www.crazyegg.com\/blog\/#\/schema\/person\/6d38b18fbc4dbac2a3e3c053e92df52b"},"headline":"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?","datePublished":"2026-05-06T16:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/"},"wordCount":4290,"publisher":{"@id":"https:\/\/www.crazyegg.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/#primaryimage"},"thumbnailUrl":"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png","articleSection":["Website"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/","url":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/","name":"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?","isPartOf":{"@id":"https:\/\/www.crazyegg.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/#primaryimage"},"image":{"@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/#primaryimage"},"thumbnailUrl":"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png","datePublished":"2026-05-06T16:00:00+00:00","breadcrumb":{"@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/#primaryimage","url":"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png","contentUrl":"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/29125112\/Dangers-of-Vibe-Coding_Image-1.png","width":1200,"height":720,"caption":"Crazy Egg diagram showing the dangers of vibe coding including tech debt, data breaches, unsecured APIs, and edge-case vulnerabilities."},{"@type":"BreadcrumbList","@id":"https:\/\/www.crazyegg.com\/blog\/vibe-code-a-website\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.crazyegg.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Website","item":"https:\/\/www.crazyegg.com\/blog\/category\/website\/"},{"@type":"ListItem","position":3,"name":"Vibe Coding for Websites and Apps: A Disaster Waiting to Happen?"}]},{"@type":"WebSite","@id":"https:\/\/www.crazyegg.com\/blog\/#website","url":"https:\/\/www.crazyegg.com\/blog\/","name":"The Daily Egg","description":"Conversion Rate Optimization Made Easy","publisher":{"@id":"https:\/\/www.crazyegg.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.crazyegg.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.crazyegg.com\/blog\/#organization","name":"Crazy Egg","url":"https:\/\/www.crazyegg.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.crazyegg.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2015\/06\/Crazy-Egg-logo-small.png","contentUrl":"https:\/\/ceblog.s3.amazonaws.com\/wp-content\/uploads\/2015\/06\/Crazy-Egg-logo-small.png","width":191,"height":100,"caption":"Crazy Egg"},"image":{"@id":"https:\/\/www.crazyegg.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/crazyegganalytics\/","https:\/\/x.com\/CrazyEgg","https:\/\/www.linkedin.com\/company\/crazy-egg\/","https:\/\/www.youtube.com\/channel\/UCJNe_xmPi07YezxaqfoRVqg"]},{"@type":"Person","@id":"https:\/\/www.crazyegg.com\/blog\/#\/schema\/person\/6d38b18fbc4dbac2a3e3c053e92df52b","name":"Daniel Mowinski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/db7163afc78f833c57644a3fe613d0e73db19329a10f1b8e020af5d93a000e9b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/db7163afc78f833c57644a3fe613d0e73db19329a10f1b8e020af5d93a000e9b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/db7163afc78f833c57644a3fe613d0e73db19329a10f1b8e020af5d93a000e9b?s=96&d=mm&r=g","caption":"Daniel Mowinski"},"description":"Dan Mowinski is a UK-based freelance writer and journalist. His main areas of interest are sales and marketing, business communication, and the future of tech. He's also a dab hand at a cryptic crossword. Find him at DanMowinski.com.","url":"https:\/\/www.crazyegg.com\/blog\/author\/danielm\/"}]}},"modified_by":"Lauren Knoll","_links":{"self":[{"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/posts\/108669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/users\/274"}],"replies":[{"embeddable":true,"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/comments?post=108669"}],"version-history":[{"count":4,"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/posts\/108669\/revisions"}],"predecessor-version":[{"id":108766,"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/posts\/108669\/revisions\/108766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/media\/108674"}],"wp:attachment":[{"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/media?parent=108669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/categories?post=108669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.crazyegg.com\/blog\/wp-json\/wp\/v2\/tags?post=108669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}