Skip to main content

Bolt.new: A Practical Guide on How to Create Apps Without Coding

Learn how to create and publish a gym workout app using Bolt.new with adaptive workout plans.
Oct 20, 2025  · 8 min read

Bolt.new is a new text-to-app AI tool. Similar to Lovable, it allows users to build apps purely using prompts. In this tutorial, I’ll walk you through the tool, and we will try creating a Gym Workout app with it.

If you’re keen to learn more about these kinds of tools, I recommend checking out our Lovable tutorial.

What is Bolt.new?

Bolt.new is a text-to-app tool that lets developers instantly spin up full-stack applications with modern frameworks, libraries, and integrations already set up. 

Instead of starting from scratch or spending hours configuring project boilerplates, you can type a prompt like “create a SaaS landing page with authentication and Stripe payments”, and Bolt will scaffold a working project in seconds.

Bolt.new's interface.

The main idea is to reduce the distance between an idea and a running product. With Bolt.new, you don’t need to manually piece together dependencies, routing, state management, or styling libraries; those choices are handled automatically by the tool. It’s designed to follow best practices out of the box, so the resulting codebase is structured and production-ready rather than just a throwaway prototype.

Bolt.new allows you to publish a project with a single click, making it accessible publicly on the web. However, as of the time of writing, important features like database and authentication are still in beta, making it quite limited for real applications.

How to Get Started with Bolt.new

To get started, navigate to their website and create an account. Without a subscription, you have a limit of 1M tokens per month and a daily limit of 150K tokens.

Bolt.new pricing details.

Their free tier makes it possible to try it, but don't expect to be able to iterate a lot over the application. 

I've tried to go around the token limit by specifying all of the features in great detail with the initial prompt, but I found that it usually only generates the main app idea, requiring further iterations and, therefore, more tokens.

How to Build an App with Bolt.new: Gym Coaching App

To test Bold.new, we're going to try to build a gym coaching app. The basic idea of such an app is that it will plan exercises for us each day and help us track our progress. It then creates plans based on past data.

Here's the initial prompt I've used:

I want to build an exercise tracking app for the gym. Each day it should give me an exercise set. A exercise specifies a machine, a weight and a number of repetitions. The app should allow me to mark, for each exercise, how many repetitions I did and wether it was hard, normal or easy. Then that data is used to plan further days. 

Initial prompt used for the gym coaching app.

After submitting the prompt, it created a React project and started implementing the basic functionality. It provides a comprehensive list of all the files generated in the logs:

Chat logs of Bolt.new creating the app.

After a while, the app was running. Here's what it looked like at this stage:

The initial app interface.

When creating a new workout session, this is what I got:

First workout session generated with the app.

This isn't exactly what I had in mind because each exercise consisted of a single set, but it was close enough. In fairness, I think my initial prompt wasn't totally clear on that. This is where understanding prompt engineering comes in useful. 

In terms of tokens, this initial prompt has already used up 97K out of the 150K daily limit. This shows that, on the free plan, we aren't able to push our ideas very far.

Tokens used after the initial prompt.

Requesting Changes to the App

The main idea behind these text-to-app AI tools is that we can bring our ideas to life without knowing how to code, simply by chatting with the AI and requesting changes.

To put that vibe-coding claim to the test, I request each exercise to be composed of multiple sets.

Requesting changes to the app.

Bolt.new made changes; however, when it tried to render the app again, it ran into an error.

Bolt.new error example.

The interface is aware of the error and offers the possibility to automatically attempt to fix it.

Error fixing with Bolt.new

Sometimes it can directly identify the error and fix itself. However, in this case, the new changes came with other errors:

Fixing problems with Bolt.new

After a few rounds of error fixing, we had a working version, where each workout session had multiple exercises, each with multiple sets (number of repetitions). For each set, we can keep track of how many repetitions we did, and then we can give feedback about the difficulty we felt.

Improved workout plan

The feedback data should be used to plan future sessions. I wanted to chat to ask for details about how this data is used, but by that time, I had run out of credits for the day. 

One of the issues I often find with creating applications like this is that we have little control over what is going on under the hood. We can see by experimenting and using the app, but that's not always enough to get a full understanding of how things are implemented.

Running out of tokens with Bolt.new

Looking at the Bolt.new Code

If you know how to program, then it's possible to get an understanding of how the app works by looking at the code. Contrary to Lovable, Bolt.new makes it very easy to see the code straight in the web interface.

Inspecting the code in a Bolt.new app.

By opening the code editor, we can see all the project files, and clicking a file will open it in the code editor, making it possible to see how it's working and make changes directly in the browser. 

There, I saw a file named workoutGenerator.ts, whose name indicates it contains the logic for generating new workouts.

The code editor of Bolt.new

Since I was out of credits, I copied and pasted the code into ChatGPT and asked it to explain it to me. Here's a summary of how it works:

The app creates a new workout for you each day by looking at what you’ve already done. It keeps track of the number of workouts you’ve completed and rotates through different types, like upper body, lower body, or full body, so that your muscles get a balanced routine over time. For each workout type, it randomly picks a handful of exercises that match the right muscle groups, so you’re not always doing the same moves.

It also pays attention to how well you did in your past workouts. If an exercise felt easy and you’ve been succeeding often, it will slightly increase the weight or add more reps to keep you challenged. If an exercise is too hard, it will lower the weight to make it more doable. This way, the workout adjusts to your progress and helps you improve at the right pace without overdoing it. This seems reasonable to me, especially for a first version of the product.

Publishing the Bolt.new App

To publish the application, simply click the "Publish" button at the top right corner.

Publishing an app with Bolt.new

Once it's published, we receive a URL in the chat where we can open the app.

Result of publishing the application with Bolt.new

We can use it on the browser and share it with others. We can also install it on the phone. But since it's a web application, we don't install it using the app store; we do it from the browser by:

  1. Open the link on the phone.
  2. Click the options menu in the browser.
  3. Click the "Add to Home screen" option.

Installing the application on the phone.

Unfortunately, Bolt.new didn't make the application into a progressive web app (PWA) out of the box. This means that when we install it on the mobile phone, in the way we've just explained, it simply creates a link on our home screen, so the experience isn't much different from using it in the browser.

I asked it to convert the application into a PWA so that it behaves as a native application, but that didn't go very well. Bolt.new started well by generating the necessary files, but one of the requirements for a PWA is to have image logos. Unfortunately, Bolt.new’s attempt to generate those by writing the image bytes, which not only probably generated nonsensical images but also consumed all the tokens.

Setting a Custom Domain

The URL we got for the app was automatically generated, making it not ideal for production. For a real product, we would need to buy and configure our own domain. This can be done on the "Domains & Hosting" page in the project settings.

Configuring a custom domain on Bolt.new.

The current version of the app doesn't store data in a database. Therefore, if we open the app on our computer and then on our phone, we won't see the same data. There is local data persistence on the device, so if you use the same device, the data will be stored locally. That's why if we refresh the app, we won't lose the current workout plan and past workouts.

This is okay for a prototype, but not at all suitable for a commercial product. Right now, authentication and databases are still in beta. You can access them by signing up for their private beta.

Joining the private beta in Bolt.new

Conclusion

I believe Bolt.new is a great tool for quickly scaffolding a prototype and validating a product idea. However, the AI tends to implement features at a surface level, meaning that substantial applications require a great deal of iteration. 

Even when providing a detailed initial prompt, the result only scratches the surface of the full specification, and the free tier's token limits make it nearly impossible to build anything meaningful without a subscription.

Furthermore, with essential services like authentication and database support still in beta, I would recommend waiting for their full release before attempting to build a production-ready application. 

Overall, Bolt.new operates much like its competitors, but its standout feature is the ability to view and edit the source code directly within the web interface; a crucial advantage that addresses one of the major frustrations I experienced with platforms like Lovable.


François Aubry's photo
Author
François Aubry
LinkedIn
Full-stack engineer & founder at CheapGPT. Teaching has always been my passion. From my early days as a student, I eagerly sought out opportunities to tutor and assist other students. This passion led me to pursue a PhD, where I also served as a teaching assistant to support my academic endeavors. During those years, I found immense fulfillment in the traditional classroom setting, fostering connections and facilitating learning. However, with the advent of online learning platforms, I recognized the transformative potential of digital education. In fact, I was actively involved in the development of one such platform at our university. I am deeply committed to integrating traditional teaching principles with innovative digital methodologies. My passion is to create courses that are not only engaging and informative but also accessible to learners in this digital age.
Topics

Top DataCamp Courses

Track

AI Fundamentals

0 min
Discover the fundamentals of AI, dive into models like ChatGPT, and decode generative AI secrets to navigate the dynamic AI landscape.
See DetailsRight Arrow
Start Course
See MoreRight Arrow
Related

Tutorial

Lovable AI: A Guide With Demo Project

Learn how to build and publish a mobile app using Lovable AI, integrating it with Supabase for backend services and GitHub for version control.
François Aubry's photo

François Aubry

Tutorial

Gemma 3n: A Guide With Demo Project (VLM Android App)

Learn how to build an Android app that uses Google's Gemma 3n to answer questions about images directly on your phone, without needing a cloud connection.
Aashi Dutt's photo

Aashi Dutt

Tutorial

Firebase Studio: An Honest Review With Examples

Learn about Google's Firebase Studio, an AI-powered development tool for building full-stack apps using natural language prompts.
Marie Fayard's photo

Marie Fayard

NotebookLM can generate realistic podcasts

Tutorial

Notebook LM: A Guide With Practical Examples

Learn how to make the most of NotebookLM by utilizing its podcast-generating feature and its ability to organize, summarize, and answer questions about your documents.
Amberle McKee's photo

Amberle McKee

Tutorial

Genesis Physics Engine: A Step-by-Step Guide to Setting Up Genesis

Learn how to set up and run the Genesis Physics Engine on Google Colab, overcoming installation challenges and getting started with physics simulations.
Dr Ana Rojo-Echeburúa's photo

Dr Ana Rojo-Echeburúa

code-along

AI Python Zero-to-Hero: Build Your Own Fitness Tracker

Yashas Roy, a Senior Learning Solutions Architect at DataCamp, walks you through creating your own fitness tracker.
Yashas Roy's photo

Yashas Roy

See MoreSee More