If you’ve ever sat back and watched your AI write code for you, you’re not alone. This practice is often called vibe coding, a term popularized by Andrej Karpathy that captures AI-assisted development.
AI-assisted development tools like Bolt.new, v0 by Vercel, Lovable, and so on can speed up your app development from “idea” to “live prototype” in minutes.
In this guide, you’ll learn how to combine Bolt.new and Strapi 5 to build a full-stack app that fetches content from a real CMS, using Next.js as the frontend framework, giving you hands-on experience with vibe coding.
This tutorial is divided into two parts:
We will build a company website using Bolt.new. And by the end of this tutorial, you will have:
Project Demo
To follow along, make sure you have:
Vibe coding is a term coined by Andrej Karpathy, in a famous Twitter post, to describe the trend of letting AI "take the wheel" when writing code.
Vibe coding means collaborating with AI tools by giving them intent and refining the results through iteration.
This doesn't mean outsourcing your thinking, but about using AI as a pair programmer that can help accelerate your ideation, prototyping and debugging.
Bolt is an AI-powered builder for creating web and mobile apps directly from natural language prompts.
It allows developers to:
Bolt works through prompt-based development. You describe what you want to create.
For example, when you give it the prompt:
1Build a marketing website for a design agency using Next.js and Tailwind CSS.From there, Bolt:
You can edit files directly, switch agents (like Claude or v1 Agent), and view the live results in seconds without leaving your browser.
While Bolt.new is one of the most polished AI app builders available, several alternatives explore similar concepts with unique approaches.
Some Bolt.new alternatives include, Lovable.dev, v0 by Vercel, Replit Agent and so on.
Each tool shares the same goal; to let developers move from idea to implementation faster, while maintaining creative control.
Bolt.new’s interface is designed to make AI-assisted development intuitive, visual, and context-aware.
Here is a quick rundown of Bolt's user interface and some key features:
Bolt’s interface is centered around an AI workspace where you can chat, plan, and edit code in real time. From the left-hand menu, you can view your projects and select which AI agent you want to work with:
You can attach files, insert reusable prompts, and clear context when switching topics, ensuring the AI stays focused and efficient.
Bolt makes managing and organizing your projects straightforward:
You can also export a project locally or duplicate it to preserve specific configurations.
Lock and Target Features
These tools are crucial for maintaining control as your project grows in complexity.
Other features include code highlighting and inspection.
Bolt automatically saves backups and maintains a version history, so you can restore previous states without overwriting the current version.
Bolt runs best on Chromium-based browsers such as Chrome, Edge, Brave, Vivaldi, or Opera. Mobile browsers are currently not fully supported.
Bolt supports third-party integrations for authentication, payments, analytics, and design systems. For databases, you can choose between:
Supabase Integration: for developers who need SQL capabilities or external data access.
Beefore August 14, 2025, all Bolt projects were deployed using Netlify by default. Today, you can export, connect custom hosting, or deploy through supported CI/CD workflows.
This lets you choose between instant preview deployments and production-ready builds, depending on your project’s scope.
To interact with Bolt or any AI-powered coding environment, you need tokens. Tokens are the smallest units of text (like words or characters) that an AI model processes.
Think of tokens as the "fuel" for your vibe coding or AI development session.
Every time you send a message, receive code, or ask Bolt to analyze your files, tokens are consumed, just like API calls consume bandwidth.
Efficient token management can make a huge difference, especially in large or collaborative projects.
To learn more about token optimization, visit the Maximizing Token Efficiency guide by Bolt. Here is the summary:
.bolt/ignore fileLet's discuss Bolt pricing for token usage.
Bolt's pricing is based directly on token usage. Each plan determines how many tokens you can use.
As of this writing, Bolt offers four main plans:
For this tutorial, we’ll use the Teams plan, which includes 10M tokens per month. The Teams plan is ideal for longer and multi-prompt workflows.
If you’re just experimenting, the Free plan is perfect for quick prototypes and learning how token budgeting works.
Visit Bolt's pricing page to learn more.
Before you start vibe coding, it’s important to understand how to communicate effectively with your AI.
Here are nine general prompting techniques that can dramatically improve of AI-generated results.
Using Bolt, we will be combining most of these techniques to achieve better results. So, let's look at the best practices when using Bolt.
👋 NOTE: You can skip this section if you already have a live Strapi Cloud project running.
Before we generate our frontend with Bolt.new, we need a backend that Bolt can connect to.
In this tutorial, we will be using a Company Website as an example. Below are the content models and relationships that make up its structure.
Diagram 1: Content Model Types
Diagram 2: Content Models and Relationships
In the first diagram, we specified the content model types. And in the second diagram, we have the relationships between every model.
We’ll start with a ready-made Strapi project that includes seed data and configurations. You can run this locally or deploy it directly to Strapi Cloud.
So, let's use a Strapi page builder Company website example.
Step 1: Clone the Example Project Clone the Strapi company website example from GitHub:
1git clone https://github.com/Theodore-Kelechukwu-Onyejiaku/strapi5-page-builder-example.gitInside the cloned project, you’ll find a file named company-website-data.tar.gz. This archive contains seed data that will pre-populate your Strapi app thereby saving time on manual content creation.
Step 2: Install Dependencies Install all required dependencies using either npm or yarn:
npm install
#or
yarn installStep 3: Populate Strapi Project with Seed Data Next, populate your Strapi project using the provided seed data file:
npm run strapi import -- -f company-website-data.tar.gz
# or
yarn strapi import -f company-website-data.tar.gzThis command automatically imports the prebuilt content models and sample data.
Step 4. Start Strapi Project Once the dependencies are installed and data imported, start your local server:
1npm run devYou should now have a working Strapi instance with preloaded content:
Step 5. Deploy to Strapi Cloud Hosting your Strapi instance on Strapi Cloud makes it publicly accessible. This is essential for connecting Bolt.new to a real CMS API.
Now, you can decide to host your project on Strapi cloud. Check out this guide on Strapi cloud deployment options or see the video below.
Follow the Strapi Cloud deployment guide or watch this quick video overview:
Step 6. Transfer Local Data to Strapi Cloud Once deployed, we’ll transfer our local data to the cloud instance. First, create a Transfer Token from your Strapi Cloud dashboard.
Then, run the transfer command, replacing the destination URL with your Strapi Cloud project URL:
npm run strapi transfer -- --to destinationURL
# or
yarn strapi transfer --to destinationURLIn this tutorial, our destinationURL is https://superb-freedom-8531c68dfe.strapiapp.com/admin. So we will run the command below:
npm run strapi transfer -- --to https://superb-freedom-8531c68dfe.strapiapp.com/adminWhen prompted, paste in your transfer token, which you created earlier. After a successful transfer, you’ll see the following confirmation:
You can now verify the imported content in your Strapi Cloud dashboard:
Visit the Data Transfer guide to learn more about Data transfer in Strapi.
With your Strapi backend running on the cloud, your API is now publicly accessible.
This means you can connect Bolt.new to your Strapi project’s API URL, thus allowing you to build and preview your frontend dynamically.
In the next section, we’ll prompt Bolt to generate our frontend using this Strapi API as the backend.
Before diving into code, it’s good practice to help your AI tool understand the context and goal of your project.
In this case, we’ll start by using ChatGPT to help us write a clear, well-scoped prompt for Bolt.new.
To make Bolt.new more effective, we first “prime” ChatGPT with context, telling it what Bolt is, what we’re building, and what stack we’re using.
Then, we ask it to create a structured prompt for our company landing page.
Here’s the resulting prompt:
1I want to generate a visually creative and complex AI-based company landing page with Bolt.new.
2
3Can you generate the prompt for a very complex landing page with amazing designs and be as creative as you possibly can? The tech stack is Next.js 15, TypeScript, and Tailwind CSS.
4
5Let's start with the landing page for now. Other pages can come in later.Now, copy and paste the prompt into Bolt.new. Within seconds, Bolt generates a complete landing page using Next.js, TypeScript, and Tailwind CSS, all scaffolded automatically.
Landing page from Bolt.new
This is a best practice when working with AI tools: start small and foundational.
By focusing on a single page first, you allow Bolt to establish consistent styling and structure. This sets a strong base for future iterations.
→ View Full Prompt 1 on GitHub gist.
Now that Bolt has built the landing page, we’ll add structure incrementally. This iterative process helps you guide the AI’s creativity while keeping full control of the design and logic.
For this step, we’ll focus on creating the Header component. Bolt already generated a Footer component automatically, so we’ll only prompt it for the header.
Once again, we use ChatGPT to refine the header prompt and then paste it into Bolt.new.
After a few seconds, we get a responsive, fully functional header layout.
→ View Full Prompt 2 on GitHub gist.
This step-by-step approach of generating, previewing, and refining reflects the vibe-coding mindset. This mindset means collaborating with your AI, not just instructing it.
With the header and landing page ready, it’s time to extend the project.
Here we’ll leverage Bolt’s Plan Mode, which lets you discuss your codebase, generate ideas, and make controlled updates without consuming too many tokens.
Because we’re using the Claude Agent, only Plan Mode is available (the legacy v1 Agent uses Discussion Mode).
Prompt Bolt to identify other pages to create:
1Now that I have the landing page and a header component, what other pages can you generate?Bolt will propose a project plan. If you’re satisfied, you can implement it directly by clicking “Implement Plan”.
In our case, Bolt suggested using the Bolt Database for persistence. However, since we already have Strapi as our backend, we’ll correct that with another prompt:
1I want you to create only the pages and use only mock data. Don't integrate Bolt Database backend and authentication💡 Tip: Bolt may occasionally hallucinate (generate irrelevant results). Keep refining your prompts in Plan Mode until it meets your requirements.
After the new pages are created, you may notice small layout bugs.
For example:
Instead of manually hunting for the issues, use Bolt’s Select/Inspect tool for targeted fixes. This tool lets you visually select an element and prompt Bolt to adjust just that component.
For example:
1The Header component disappears upon scrolling or clicking to other pages. Please fix only this.Then, to simplify the UI for now:
1Now remove the announcement bar for now.And when we preview our app, we can see that the Header component works and that all pages are working.
Other Pages Created by Bolt
Next, let's connect with Strapi backend!
In this first part of the series, we explored the concept of vibe-coding and learned how to use Bolt.new alongside Strapi 5 to set up a real CMS backend and generate the initial version of our company website’s frontend.
We covered Bolt’s interface, features, and prompting best practices while preparing a Strapi Cloud project as the foundation for integration. With our backend ready and frontend structure in place, we’ve built a strong starting point for a full-stack project.
In the next part, we’ll connect the Bolt-generated frontend to Strapi’s API, fetch live data, and publish our project to Netlify. Stay tuned!
Theodore is a Technical Writer and a full-stack software developer. He loves writing technical articles, building solutions, and sharing his expertise.