Andrej Karpathy, an AI researcher and former Tesla AI director, coined the term “vibe coding” in 2025 to describe a style of software creation in which a person uses natural-language instructions to guide an AI coding tool and may largely avoid reading or directly working with the underlying code. In other words, vibe coding can allow someone with little or no programming experience to create websites, apps, games, or other programs with the assistance of AI.
Vibe coding can also be useful for experienced programmers, although that broader practice is often better described as AI-assisted programming. A programmer may use AI to generate code and then inspect, modify, and refine the result directly.
Typical Vibe-Coded Projects
Vibe-coded projects can range from a single HTML file to large applications containing many files, such as JavaScript, JSON, CSS, markdown, and other types of code or configuration. Larger projects are often managed with development tools and may be stored in services such as GitHub, but neither a multi-file project nor a GitHub account is required for vibe coding.
It is also important to distinguish between AI being used to create a project and AI being used by the completed project. A simple game, for example, can be created with the help of an AI tool and then delivered as a standalone HTML file. Once completed, the game may not communicate with an AI service at all, so playing the game does not necessarily create additional AI costs.
On the other hand, some applications are designed to use an AI service while they are running. In that case, the application may communicate with an AI provider through an API. API access is typically authenticated with an API key or another credential, and usage may incur charges depending on the provider and account. API keys should never be exposed in browser-based code or otherwise made available to end users, because someone could potentially use the credential to make unauthorized requests and generate costs for the account owner.
While the creation of software code can be surprisingly easy and seamless for a non-programmer, configuration, testing, security, accessibility, and deployment of the completed project can be considerably more complicated. A project that works on a developer’s computer is not necessarily ready to be distributed as a reliable, secure, or “plug and play” experience for students.
Simplified Practice Games
For instructors seeking to create materials designed to assist student learning, there is a relatively simple method of vibe coding available. Ask the AI to create a game contained in a single HTML file, specify the content or skills the game should reinforce, and then host the resulting file somewhere that students can access it through a web browser.
A single HTML file can contain the game’s HTML, CSS, and JavaScript, making it relatively easy to distribute. When creating the file, it is helpful to instruct the AI to avoid unnecessary external dependencies so that the game remains as portable as possible.
A standalone JavaScript game generally cannot simply be pasted into a standard Webcourses page and expected to execute, because the Webcourses/Canvas environment restricts the use of JavaScript in ordinary page content. Depending on the particular implementation and UCF-supported options, the game may instead need to be hosted separately or delivered through an appropriate Webcourses integration. Instructors may wish to investigate third-party hosting such as WordPress.com (which can be free for the simplest accounts), and link to the game from inside Webcourses.
We’ve even built a “magic prompt” that should work for many types of games or disciplines. All you have to do is paste the entire prompt and substitute your own topic in the yellow highlighted area. Within a few minutes, the AI can generate an arcade-style game. Keep in mind that this type of activity would be for practice only; there is no automatic connection to the Webcourses gradebook.
From Games to Simulations
One variation to consider is raising the complexity to switch from an arcade game to a simulation. This requires a much more involved set of instructions. We recommend that you engage the AI in a conversation about what you hope to accomplish, the way the simulation should unfold, and the capabilities and limitations of the simulation. This conversation can eventually culminate in asking the AI to generate an extensive prompt for another AI coding tool to use in creating the product.
We’ve had prompts exceed 60 pages in this fashion. The length of the prompt is not inherently important, however; what matters is that the instructions clearly communicate the learning objectives, desired behavior, rules, interface, content, and limitations of the simulation.
Data Safety
Vibe coding may result in a product that, even though it works on the surface, is not constructed in a way that an experienced programmer would have chosen. Poor architecture can make a project inefficient, difficult to maintain, or difficult to secure. It can also create risks such as exposing private data, credentials, or API keys.
An especially important rule is never to put a private API key directly into HTML or JavaScript that will be delivered to students’ browsers. Anything sent to the browser can potentially be inspected by the person using it. If an application needs to communicate with a paid AI service, the API credential should generally be protected on a server or through another appropriately secured architecture.
Poorly secured applications can potentially allow unauthorized users to make requests using someone else’s credentials, which could result in unexpected or “runaway” costs. AI-generated code should therefore be reviewed and tested for security before it is made available to students or the public.
Accessibility
UCF has institutional requirements for digital accessibility, and instructors should ensure that digital course materials and other content they create or use meet applicable accessibility requirements. Accessibility is particularly important for websites, digital games, apps, and other interactive materials.
Vibe coding can create products that work well on the surface for users who do not rely on assistive technologies while still presenting significant accessibility barriers to other users. For example, an AI-generated game might have inadequate keyboard navigation, poor color contrast, missing labels, inaccessible controls, or content that does not work properly with screen readers.
Accessibility can sometimes be addressed by including accessibility requirements in the original vibe-coding prompt, but this should not be considered sufficient by itself. AI-generated products should be tested and reviewed for accessibility in the final product as well. Instructors should make use of available UCF and Webcourses accessibility-checking resources and, when appropriate, conduct additional testing with assistive technologies.
Vibe coding can be a powerful way to create engaging educational materials quickly, but the ease of generating a working prototype should not be confused with having a finished instructional product. Before sharing a vibe-coded activity with students, consider its functionality, security, accessibility, privacy, maintainability, and compatibility with Webcourses.