
This is a personal copy of a column in IEEE Software (Nov/Dec 2025). Republished with permission.
Vibe coding is taking the world by storm. And like any good storm, some people frown and stay inside while others let the wind carry them away. All opinions are valid, of course, but there surely are moments when vibing delivers real value. In this column, I team up with two excellent brains with complementary skills. Elizabeth Bjarnason, my university colleague with a background at Sony, researches prototyping from a requirements engineering perspective. Fabian Hedin is co-founder of Lovable, a Swedish vibe coding startup that has gone from zero to $75M in just 7 months. Together, we speculate based on a true intrapreneurship story: the development of Nimway at Sony in Lund, Sweden. – Markus Borg
Markus Borg, Elizabeth Bjarnason, and Fabian Hedin
Magnus is presenting PeopleSpace to his team. It’s just after lunch, and the room feels sluggish. But he vividly clicks through the prototype (see Figure 1), showing how the app could locate colleagues, find free meeting rooms, and book available desks. His message gets across. The sluggishness is gradually replaced by engaged discussions about possible improvements. “Can it notify me when the Therma test rig has an available spot?” someone asks. The idea first came to Magnus after the morning standup. He’d spent nearly 20 minutes wandering three floors of the massive office, trying to find Lisbeth, their senior UX designer…
This is a fictitious illustration of how the first demo of a smart office solution could have played out. Entirely made up. But the Sony project Nimway is not! It’s a commercial product born from internal innovation in Lund, Sweden. It combines sensors, mobile apps, and interactive maps to help employees find colleagues, book rooms or desks, and navigate large office spaces. We use
What is Vibe Coding?
Andrej Karpathy coined the term vibe coding in an X post in February 2025, which now has gained substantial traction. The term is used in different ways, from recklessly generating code for throwaway prototypes to referring to any use of generative AI for code, including work that involves careful reviews and testing. In this column, however, we discuss the former type, that is, “going with the vibe.”
Such vibe coding refers to rapid, improvisational software development with a large language model as your pair programmer. The human developer codes in a conversational loop together with an AI system. How often the human needs to prompt the LLM depends on how agentic the system is. The focus is on maintaining a creative flow and maybe, as Karpathy put it, “forgetting that the code even exists.” With less code-level attention, “vibers” can quickly iterate to an executable solution.
A major advantage of vibe coding is that it doesn’t require traditional programming skills. Being a developer does help, especially if you mix vibe coding with conventional programming – but any digitally fluent user can start vibing through a modern chat interface. In that sense, vibing shares traits with no-code/low-code approaches. However, vibe coding still produces actual source code that could potentially be evolved further using traditional means. Note that this is where most of the criticism begins. Qualities such as maintainability and security naturally take a backseat when flow and speed are the priority.
Several new platforms enable vibe coding for the masses. These tools reimagine software creation as vibing toward an idea. Users describe what they have in mind, and the tools sketch and propose. Popular platforms include Lovable, Bolt, v0, and the open-source alternative Dyad. We use Lovable to demonstrate the concepts in this piece.
Prototyping Fundamentals
Everyone has an intuitive sense of what prototyping means. We use the term to describe a hands-on, incremental approach to designing and developing new ideas and features. Prototyping is common in product design, interaction design, requirements engineering, and software development. It involves creating a concrete representation of the envisioned idea or feature: a prototype. This artifact is then evaluated either internally within the team or company, or with external parties such as customers, end users, or investors. The feedback and learnings are used to refine the product design, adjust requirements, or evolve the software.
The scope and medium of a prototype affect both the cost of prototyping and the type of feedback it can elicit. Simpler (and cheaper) low-fidelity (lo-fi) prototypes, such as sketches, wireframes, and static mock-ups, can provide good benefits, especially in the early stages of ideation and product design and development [6]. Figma is currently one of the most popular tools for creating lo-fi prototypes.
In contrast, executable high-fidelity (hi-fi) software prototypes are more expensive but allow communication and validation of a broader set of detailed requirements. This includes system behavior, user interactions and flows, and quality requirements. But what about using vibe coding for prototyping? The involved costs might drop substantially.
Furthermore, many practitioners prefer to use source code prototypes to demonstrate their ability. Especially within software startups, letting customers and investors run actual software builds important trust [1]. However, the engineering competence required to build such prototypes can be a challenge for startups without development skills [1]. Another occasion where vibe coding shines! Enabling app building for non-technical visionaries is actually one of the core missions behind Lovable – and we’ve observed several examples where we made exactly this possible.
Prototyping for Communication
In our research, we have identified five primary purposes for using prototypes in software and product development [2]. For each purpose, we highlight the main value they deliver and what hi-fi versions bring over lo-fi counterparts. Finally, we discuss how the dynamics might shift with vibe coding in the toolbox.
External communication is the first major purpose. Prototypes are an effective way to convey product vision to customers, end users, and investors. Furthermore, they often play central roles in sales and marketing, for example when introducing upcoming features or generating interest ahead of a launch. For startups, a compelling prototype can make the difference when pitching to investors or securing venture capital.
Hi-fi prototypes, in particular, build greater trust in both the product and the development team behind it. By demonstrating core features in executable form, as well as showcasing tangible value for future users, they offer a persuasive proof of design intent and functionality – something a Figma mockup alone cannot provide.
Internal communication is the second major purpose. Prototypes provide value by aligning understanding across development teams, product owners, and managers. As such, they reduce communication gaps and misunderstandings, which in turn clarify requirements and minimize costly rework later on. Successful prototyping supports collaboration, shared knowledge creation, and team-based ideation. All these aspects are essential in early-stage product design.
Hi-fi prototypes add another layer of value over lo-fi alternatives. When colleagues can jointly execute early ideas, they observe product behavior and not just look and feel. This interactivity stimulates richer discussions around user flows and edge cases. By grounding abstract ideas in something executable, conversions reach a new level. We’ve seen how this helps frontload feedback that would be way more expensive to act on later in the development process.
When colleagues can jointly execute early ideas, they observe product behavior and not just look and feel.
Vibe coding significantly lowers the threshold for creating hi-fi prototypes. With substantially shorter turnaround times and less dependence on traditional software engineering skills, teams can showcase interactive artifacts very early. This opens new possibilities for both external and internal communication. Startups can demonstrate value sooner, intrapreneurs like Magnus can pitch ideas faster, and teams can quickly align around executable concepts.
Prototyping for Refinement
The third purpose is validation and testing, which is part of using prototyping for refining a product under development. Feedback can come from both proxy customers within the team and from external users. Prototypes provide early opportunities to pick their brains and validate requirements before major development decisions (and investments) are made.
The primary benefit of hi-fi prototypes lies in their executable nature, which allows early usability testing. This includes uncovering issues related to user flow, interaction, and interface design. Additionally, they support analysis of how well different users complete tasks of varying complexity. This is something that wireframes or static mockups cannot offer.
Incremental development is the fourth purpose. In this use case, prototypes pave the way for the main product evolution by enabling continuous feedback and validation throughout the development process. This evolutionary prototyping contrasts with throwaway prototyping (build quickly and discard), that is so appealing using vibe coding. As Karpathy explicitly stated in his original X post: “It’s not too bad for throwaway weekend projects.”
Our research identified organizations that have successfully integrated hi-fi prototypes into their development workflows. In some cases, they report decreased overhead in innovation efforts. One reason is that executable prototypes can serve as both design artifacts and implementation seeds, which might streamline the path from idea to new feature.
Exploration and learning is the fifth purpose. Prototyping lets teams test and refine ideas early, helping to tune the product-market fit before committing to full implementation. By exploring alternatives and eliciting feedback at low cost, teams can rapidly identify risks, spot promising directions, and make informed decisions. Effective prototyping greatly increases the chances of success in the market.
Hi-fi prototypes enrich the learning process. Executable artifacts offer a far deeper sense of interactivity and behavior than wireframes or Figma designs. When users and teams can experience an executable prototype, they can better grasp what works and what should be changed.
Vibe coding opens new avenues for refinement-oriented prototyping. Using vibing, even teams without dedicated developers can explore and validate ideas using executable prototypes. This has previously been a bottleneck in many startups. Another interesting direction is to do more parallel experimentation, including A/B testing, rapid prototyping of alternatives, and early usability checks. What previously took a sprint, Magnus can now complete during a morning session.
The vibe paradigm certainly raises new questions. Evolutionary prototyping requires not only speed, but other qualities such as maintainability, security, and performance. How should we shape our engineering processes to accommodate these demands? More research is needed as we move forward, even though the coding foundations currently shake beneath our feet.
Another consideration is how creativity will be impacted. Regular readers of this department may recall the recent column with recommendations for creative practice by Prof. Neil Maiden [5], head of the Institute for Creativity and AI. Still, lo-fi sketches are known to encourage broad exploration and bold ideas [7]. Does faster access to hi-fi prototypes stifle that in any way? On the other hand, generative AI brings new modes of combinatorial creativity, and LLMs appear to outperform humans at divergent thinking [4]. We now need to learn how to best harness the vibe for effective human-AI co-creation!
Magnus’s PeopleSpace
So, what did Magnus actually show his team after his morning prototyping session? Figure 2 shows two pages of the PeopleSpace web app. First, he presented a searchable list of colleagues with interactive filtering and proposed adding direct messaging. Then came the “killer feature”: clicking a “Map” button next to a name opens a page showing that colleague’s current location. While demoing, he passionately explained how this could be realized using off-the-shelf Bluetooth sensors, beacons, and room panels. Please have a go at exploring Magnus’s prototype yourself.

The executable prototype is built on a React stack, comprising about 6,000 lines of TypeScript. It uses Tailwind CSS for responsive styling and TanStack Query to support future API integration. Magnus didn’t write any code himself. What did he do instead?
Magnus went with the morning vibe. He first used OpenAI’s ChatGPT to discuss a potential smart office solution called PeopleSpace and asked for key features. His main goal was to assist in navigating large office spaces with people tracking and desk booking. ChatGPT helped elicit less innovative features worth including, like direct messaging. He then asked ChatGPT to generate an effective prompt for Lovable.
Second, he entered the prompt in Lovable and explored the result. With agent mode enabled, he combined chatting about the solution and entering improvement requests in edit mode to directly update the prototype. Most changes were to component aesthetics and string content, but he also added some basic button functionality.
Third, Magnus connected the PeopleSpace project to GitHub to get easy access to the code. He initiated Antrophic’s AI assistant Claude Code to analyze the project and provide onboarding assistance – vibing or not, it feels good to understand the code. While not yet critical, he knew tech-savvy teammates would have questions about the stack. Claude Code gave him a quick tour of the codebase.
Finally, what about the code quality? What if the team wanted to extend the prototype and add a backend? Magnus ran a CodeScene analysis to assess the maintainability [3] and received an average CodeHealth score of 9.6 out of 10 – higher than most of his other projects. Sure, the small size helps, but the verdict suggests that the code is brain-friendly. A key reason is that Lovable’s prompt engineering is geared towards producing highly modular React code, leading to high CodeHealth on individual files.
What will happen to Magnus’s PeopleSpace prototype? Was it a throwaway or an evolutionary prototype? On one hand, vibe coding makes it cheap to spin up another prototype. On the other, the generated frontend might be good enough to evolve. With hi-fi prototyping now disrupted by the vibe, we’re heading into an intriguing future for the early design phase. Stay tuned! Already in the next column, we’ll look into one of the inevitable Requirements challenges that follow from this paradigm.
References
- [1] Bjarnason, E. (2021). Prototyping practices in software startups: Initial case study results. In Proc. of the IEEE 29th International Requirements Engineering Conference Workshops (REW) (pp. 206-211).
- [2] Bjarnason, E., Lang, F., & Mjöberg, A. (2023). An empirically based model of software prototyping: a mapping study and a multi-case study. Empirical Software Engineering, 28(5), 115.
- [3] Borg, M., Ezzouri, M, Tornhill, A. (2024) Ghost Echoes Revealed: Benchmarking Maintainability Metrics and Machine Learning Predictions Against Human Assessments, In Proc. of the International Conference on Software Maintenance and Evolution, pp. 678-688.
- [4] Hubert, K. Awa, K. & Zabelina, D. (2024). The current state of artificial intelligence generative language models is more creative than humans on divergent thinking tasks, Scientific Reports 14, 3440.
- [5] Maiden, N. (2025) Generative Rules for More Creative Thinking About Requirements, IEEE Software, 42(3), pp. 7-12.
- [6] Nguyen-Duc, A., Wang, X., and Abrahamsson, P. (2017) What influences the speed of prototyping? An empirical investigation of twenty software startups, In Proc. of the International Conference on Agile Software Development, pp. 20-36.
- [7] Schlachtbauer, T., Schermann, M., & Krcmar, H. (2013). Do Prototypes Hamper Innovative Behavior in Developing IT-based Services? In Proc. of the 34th International Conference on Information Systems.


