Last weekend, I was working on an institutional website for a personal project and decided to use the new version of Vercel's v0. Even though I had early access to the first version and really liked it, I saw a lot of hype online about the latest improvements.
I used Next.js, TypeScript, Tailwind, and Shadcn. After a very simple setup, I asked v0 to generate a landing page with specific features, including the use of the mentioned technologies.
After a couple of iterations, I had 80% of the landing page ready:
- Light and dark mode
- Responsive design
- A color theme configurable in a single file
- Different sections for the content
- Photo carousel
- Contact form
- Certain animations in specific places
How long did it take? Approximately an hour and a half ๐คฏ
Yes, I have experience with React and Next.js, and I didnโt just copy and paste, I iterated on the AI's results to adjust them to what I wanted, added some code manually, and made small refactors here and there. But still, I was surprised by how quickly I progressed and how neat everything turned out.
Now, a key point: while this experience is fantastic for an MVP or a startup development, frontend development in an already established company is a completely different story (and, in my experience, the bigger the company, the more complicated it gets).
Some similarities Iโve seen in frontend projects at large companies using React:
- Older versions of React, in some cases with a significant percentage of class components.
- Proprietary component libraries that, although useful in some cases, complicate others and slow down new features depending on the abstractions used.
- Generally, these component libraries are developed and maintained by another team, so any change we need might take weeks, even months, depending on priorities.
- Several teams modifying the same codebase, or microfrontend architectures that, while solving many problems, add considerable complexity and other types of challenges, each with its trade-offs.
- Real technical debt, with massive components full of hard to follow logic, lots of repeated code, few custom hooks to reuse logic, to name just a few smells. All this makes it more complicated to fix bugs, maintain, and improve the product.
- Little emphasis on testing, which complicates future refactoring, to mention just one thing, but it's much more severe.
- Not to mention app state management, with a variety of approaches and a large number of different libraries, depending on the company a whole world in this aspect.
In summary: although the advances with AI are undeniable, we are far from replacing frontend work entirely. The complexity of maintaining and evolving a system in production while meeting deadlines and addressing priorities cannot be underestimated. What is true is that AI significantly improves developer performance in many aspects (as long as you know what youโre doing and are familiar with the technologies being used).
Also, itโs important not to forget that implementing new technologies in large projects comes with its own challenges, and thatโs something that AI, no matter how advanced, still cannot fully solve.
The big picture is that while the hype is justified in certain contexts, the daily reality in established companies is much more complicated than is often portrayed.
As always, the keyword is โit dependsโ.