Why We Can't Skip Design in Website Development
There is a common idea in web development that design is something we can figure out later.
The requirements are simple. The website doesn't seem that complicated. Someone says, "Let's just start building it and we'll make it look good later."
I've seen this approach create more work than it saves.
As someone who works on both design and development, I've learned that design is not just about deciding what a website should look like. Design helps us figure out what we are actually building before we spend time writing code.
Skipping design does not remove the design work.
It usually just moves that work into development, where it becomes harder and more expensive to change.
Design helps us answer questions before we write code
A website can look simple from the outside.
A homepage might have a navigation bar, a hero section, a few content sections, and a footer. It sounds easy enough to start coding.
But once you start building, questions appear.
What happens when the headline wraps onto two lines?
What does the navigation look like on mobile?
What happens when a user hovers over a button?
What does an error state look like?
What happens when there is more content than expected?
What happens when an image has a different aspect ratio?
These are design decisions.
If they are not made during the design stage, someone still has to make them. In many cases, that person becomes the developer.
Now the developer is not only writing the code. They are also making UX decisions, choosing spacing, adjusting typography, deciding component behavior, and figuring out how the interface should respond to different screen sizes.
That can work for small projects.
But as a project grows, it becomes difficult to keep everything consistent.
AI does not remove the need for design
AI has changed how quickly we can create websites.
We can ask an AI tool to generate a layout, create a React component, suggest a color palette, or even generate an entire website from a prompt.
This is useful.
But I don't think we should confuse generating a design with designing a product.
AI can produce something that looks like a website. It can combine patterns it has seen across thousands of existing websites and turn a description into a polished interface.
The harder question is whether that interface is actually right for the people who will use it.
Who is the website for?
What are they trying to accomplish?
What information should they see first?
What should they do next?
Which content deserves more attention?
What should happen when something goes wrong?
What should the experience feel like?
These questions require context.
AI can help us explore possible answers, but it does not automatically know the business, the users, the content, or the goals behind a project.
That is where human judgment still matters, at least for now.
AI is a design tool, not a replacement for design thinking
I use AI as part of my development workflow, and I think it is extremely useful.
It can help generate ideas, explore variations, create rough layouts, write copy, build components, and speed up repetitive work.
But I would rather use AI to help me think than ask it to think for me.
There is also a risk in accepting the first design an AI generates.
AI tends to produce familiar patterns because familiar patterns are what it has learned from. The result can look polished while still feeling generic.
You might end up with the same hero section, the same rounded cards, the same gradients, the same typography choices, and the same layout patterns that appear across countless other websites.
Nothing is necessarily wrong with those patterns.
The problem is using them without asking whether they solve the actual problem.
A good designer does more than make something visually appealing. They make decisions based on context, constraints, users, content, and goals.
AI can help with those decisions, but someone still needs to make the final call.
Design gives development a target
One of the biggest benefits of having a design is that developers have something concrete to build.
A Figma file, wireframe, or even a simple sketch can answer many questions before development starts.
It gives the team something to discuss.
Maybe a section feels too crowded. Maybe the hierarchy is unclear. Maybe a button does not stand out enough.
Those problems are much easier to solve when the interface is still a design than when it is already buried inside hundreds of lines of code.
Changing a layout in Figma can take minutes.
Changing the same layout after it has been built may involve CSS, component logic, responsive rules, content, and sometimes several related pages.
The earlier we find a problem, the cheaper it usually is to fix.
Responsive design is more than making things smaller
Another reason design matters is responsive behavior.
A desktop design does not automatically tell you what should happen on a phone.
A three-column layout might become one column.
A navigation menu might become a mobile drawer.
A large heading might need a different font size.
A card might change its layout completely.
Some elements might disappear. Others might move.
These are not implementation details. They affect how people use the website.
Planning these behaviors during design gives developers a much clearer idea of what the final experience should be.
Skipping design can create more work
The biggest misconception is that skipping design saves time.
It might save time on day one.
But the work does not disappear.
Instead, you may end up with a cycle like this:
Build > review > change > rebuild > review again > change again.
A developer builds something based on an assumption. The client sees it and says it is not quite what they had in mind. The developer changes it. Another issue appears. More changes follow.
The problem was not necessarily bad development.
The problem was that the team started building before they had enough clarity.
Design gives everyone an opportunity to catch these issues earlier.
Design and development should not be separate worlds
I don't think the answer is to make designers responsible for everything and developers simply follow instructions.
The best projects I've worked on happen when design and development influence each other.
A designer should understand that some ideas may be difficult or expensive to build.
A developer should understand that small visual details can have a big impact on the user experience.
Sometimes development reveals that a design needs to change.
Sometimes design reveals that the original technical approach needs to change.
That is normal.
The goal is not to create a perfect design that developers must follow without question.
The goal is to create enough clarity that everyone understands what they are building and why.
Design is part of development
Design does not need to mean spending weeks creating hundreds of polished screens before writing a single line of code.
For a small website, it might be a simple wireframe.
For another project, it might be a complete design system and high-fidelity prototype.
The amount of design should match the complexity of the project.
But some level of design is almost always useful.
Because when we skip design, we don't actually skip the design process.
We just move it somewhere else.
And when that happens during development, every design decision becomes a potential implementation change.
AI does not change this.
If anything, AI makes the need for good design judgment more important. When anyone can generate a working interface in seconds, the valuable skill is no longer just being able to produce an interface.
It is knowing what should be built in the first place.
Good design does not slow down development. It gives development a clearer direction.