Doug Oliver
Vibe Coding
Building websites with AI
Building websites has given me a new way to explore my interest in technology. I use artificial intelligence, or AI, to help write code and guide me through the process. I bring the ideas, choose what I want to share, and decide how the website should work. AI helps me turn those choices into the files that make up the site.
You may have heard the expression “vibe coding.” If you are wondering what that means, I want to explain it in everyday language, including how it relates to the way I am building this website.
What does vibe coding mean?
Vibe coding is a term people use for creating software by describing what they want to an AI coding tool in ordinary language. Instead of personally typing every line of code, a person can explain an idea, ask the AI to generate code, try the result, and request changes. The conversation becomes part of the building process.
The term is used in different ways. Sometimes it describes an approach where someone concentrates almost entirely on what the finished result does, with very little attention to the code underneath. More broadly, people also use it to describe building through a conversation with AI. My approach is to use AI as a guide and coding assistant while learning about the work it produces. “AI-assisted website building” is another way to describe what I am doing.
From an idea to a working page
Consider the About Me page on this website. The starting point was my own story: who I am, my experience with computers, and how I began building websites. I supplied that information and asked for a separate page. The AI helped arrange the text and create the code for the page. I could then ask for a link from the homepage and a clearly worded link to return home.
A request can be quite specific. For example: “Create an About Me page using this text. Give it a clear heading, make the text easy to read, and add a link that says ‘Click here to return home.’” That gives the AI a purpose, actual content, and a particular action visitors should be able to take.
The first version is a starting point. If the wording does not sound right, I can ask for a revision. If a page needs more information, I can provide it. If a link goes to the wrong place, that needs to be corrected. Building this way involves an ongoing conversation, with each change shaped by what the website needs.
What is the code doing?
A basic webpage commonly uses HTML, CSS, and sometimes JavaScript. HTML gives the page its structure: headings, paragraphs, links, and other content. CSS controls its presentation, including colors, spacing, and how the layout adapts to different screen sizes. JavaScript can add behavior, such as updating the copyright year automatically.
On this website, each page is saved as an HTML file with its styling included. The homepage is an index.html file. The About Me page has its own index.html file inside an about folder. That arrangement lets visitors use a simple address such as dougoliver.net/about. Creating the files and uploading them to the hosting server are separate parts of putting a website online.
AI as a guide, with me setting the direction
I use AI to help with the code, but the website still reflects my choices. I decide which pages belong here, what they should say, and what I want visitors to find. When I give the AI personal information for this page, that information comes from me. It should not invent details about my life to fill a gap.
I can also ask questions about the work: “What does this part of the code do?” “Why does this link need a folder name?” or “How can we make this heading easier to navigate?” Those questions make the process an opportunity to learn. I do not need to pretend that I wrote every line myself to take an active role in building my website.
Why checking the result matters
AI can produce mistakes, misunderstand a request, or create something that looks complete but does not behave as intended. A generated page still needs to be checked. For this site, useful checks include opening the live pages, following the navigation links, confirming that the correct text appears, and making sure the return-home link reaches the homepage.
It is also helpful to keep a copy of the website files before making changes. That gives you a way to recover an earlier version if an update goes wrong. More complicated features, such as accounts, passwords, payments, or forms that store information, require additional care and suitable server-side systems. A button or form appearing on a page does not, by itself, mean the feature works.
Accessibility belongs in the process
As someone who has been blind since birth, accessibility is an important part of what I want to build. For a website, that includes meaningful headings, understandable link text, and navigation that works with a keyboard. Screen readers need a useful page structure, and visitors should be able to understand a link without having to guess its destination.
Asking AI to make a page accessible is a useful instruction, but it is not proof that every visitor can use it. Checking with a keyboard and a screen reader remains important. A page should also stay readable when text is enlarged or when it is opened on a smaller screen. These are practical things to consider as the site develops.
Learning as this website grows
For me, this is a chance to bring my ideas online while developing a better understanding of website building. AI provides help with writing and explaining code, and I provide the purpose, personal content, and direction. As I add more to the site, I want to keep asking questions, making thoughtful changes, and learning from the results.
If you would like to explore the subject further, IBM's introduction to vibe coding explains the term, and research by Advait Sarkar and Ian Drosos examines how people build through conversations with AI.
Questions and pricing
Explore the frequently asked questions for more about getting started, accessible tools, checking your work, and costs.