Where Bolt projects tend to stall
Bolt writes a whole application from a conversation, and for a small project that conversation can hold everything. As the project grows, the tool has to work on part of it at a time. Late in a build that shows up in a few recognisable ways: a feature disappears after an unrelated request, an error comes back in a different file each time you ask for it to be fixed, or the app runs in the preview and refuses to publish.
None of these mean the work so far is wasted. In the Bolt projects we see, the product idea and most of the screens hold up, and the trouble comes from the project having grown larger than the way it is being edited. The table lists the stalls we see most, with a first check for each that needs no code reading.
Late-stage Bolt stalls and a first check for each
- What you notice
- A feature that worked last week is gone
- What is often behind it
- A file was rewritten to satisfy a newer request and the older behaviour was left out
- First check
- Go through your written feature list after every change, and note the request that came just before the loss
- What you notice
- The same error returns after each fix, in a new place
- What is often behind it
- The fix treats the message and leaves the cause, often a mismatch between two parts written at different times
- First check
- Copy the first error shown, in full, and count how many requests you have spent on it
- What you notice
- The preview runs and publishing fails
- What is often behind it
- The preview tolerates problems that a full build from scratch does not
- First check
- Read the first error line in the publish or build output, ignoring the ones after it
- What you notice
- It publishes, and a feature that calls an outside service does nothing
- What is often behind it
- The key for that service was only present while building, or was never set for the published site
- First check
- List every outside service the app uses and where its key is stored
- What you notice
- You no longer dare to change anything
- What is often behind it
- There is no saved copy outside the builder to fall back on
- First check
- Check whether the code exists anywhere besides the Bolt project
| What you notice | What is often behind it | First check |
|---|---|---|
| A feature that worked last week is gone | A file was rewritten to satisfy a newer request and the older behaviour was left out | Go through your written feature list after every change, and note the request that came just before the loss |
| The same error returns after each fix, in a new place | The fix treats the message and leaves the cause, often a mismatch between two parts written at different times | Copy the first error shown, in full, and count how many requests you have spent on it |
| The preview runs and publishing fails | The preview tolerates problems that a full build from scratch does not | Read the first error line in the publish or build output, ignoring the ones after it |
| It publishes, and a feature that calls an outside service does nothing | The key for that service was only present while building, or was never set for the published site | List every outside service the app uses and where its key is stored |
| You no longer dare to change anything | There is no saved copy outside the builder to fall back on | Check whether the code exists anywhere besides the Bolt project |
When the project is bigger than the conversation
Early on, each request to Bolt touches a few files and you can see the whole result on screen. Later, a request such as a new field on a form can lead the tool to regenerate a file that also contained your discount logic or your email step. The new version does what you just asked. Whether it still does what you asked three weeks ago depends on whether that older behaviour was visible to the tool when it rewrote the file.
You cannot see that from the chat, so keep a record outside it. Write a feature list in a plain document: one line per thing a customer can do, in words you could hand to a friend to test. After each change that touches more than wording or colour, walk the list. It is quick while the list is short, and it tells you on the day that something went missing, when the request that removed it is still the latest one.
Smaller requests also help. Ask for one behaviour at a time, name the screen it belongs to, and say what must stay as it is. A request that names its boundaries gives the tool less reason to rewrite code that already worked.
The preview runs and the published build fails
While you build, Bolt shows you a running copy of the project so you can click through it straight away. Publishing is a stricter process. The code is assembled from nothing, every file has to be consistent with every other, and anything referred to but never created stops the build. A project can carry a number of these loose ends and still look healthy in the preview.
When a publish fails, the output is usually long, and most of it is consequence. Scroll to the first error and read only that one. It normally names a file and says what was expected there. Paste that single error back and ask for it to be fixed and nothing else, then publish again. Working from the top one error at a time is slower per step and tends to finish sooner than pasting the whole log and asking for everything to be repaired at once.
If the first error does not change after several attempts, stop spending requests on it. That is a sign the cause sits somewhere the message does not point to, and it is a reasonable moment to have a person read the code.
Finding the request that removed a feature
Keys, and the work that has to happen on a server
A browser-built app is quick to make partly because so much of it can run in the visitor's browser. Some work should never run there. Charging a card, sending email, calling an AI service on your account and anything else that uses a private key needs to happen on a server, because whatever the browser receives, a curious visitor can read. In the apps we see, a private key placed in browser code is one of the more common things to correct before launch.
You can look for this yourself. Make a list of every outside service the app talks to. For each one, find the key in that service's own dashboard and note its first six or eight characters. Then search the project files for those characters. If a key turns up in a file that builds the screens, ask where that code runs. A key the service describes as public or publishable is meant to be seen. A key described as secret is not, and if it has been in browser code on a published site, replace it with a new one in the service's dashboard once the code is corrected.
Keep a copy outside the builder and freeze the launch list
The fear of touching anything usually comes from having one copy. Get the code into a place you control before the next round of changes. Builders of this kind commonly let you download the project or connect it to a code repository. A repository is the better of the two, because each change is then stored as a step you can return to, and anyone you later ask for help can read the history of what changed and when.
Then decide what launch means. Late-stage projects often stall because new ideas keep arriving while the old ones are still half finished. Split your feature list in two: what a first customer needs in order to pay you and get the thing they paid for, and everything else. Stop requesting anything from the second group until the first group passes from start to finish on the published site.
What you can finish yourself and when to ask an engineer
A missing feature you can trace to one request, a build error that changes each time you fix the top one, a key that needs moving: these are within reach if you work in small steps and keep copies. Many founders launch a Bolt project that way.
Ask for help when the same build error has survived several attempts, when features keep vanishing faster than you can restore them, or when the app takes payments or holds private data and you cannot say where the keys and the records live. At that point a person reading the whole codebase will usually see the cause faster than more requests will find it. Our Diagnostic is a fixed-price written plan. We read the project, list what blocks launch in the order to fix it, and credit the fee to the build if you go ahead with us. The code, the Bolt project and every connected account remain in your name.
Before your next request to Bolt
Five things to have in hand. They make each request smaller and make it obvious when one has done damage.
- A feature list in plain words, one line per thing a customer can do.
- A copy of the code outside the builder, taken while the app was in a state you were happy with.
- The first error from the last failed publish, copied in full.
- Every outside service the app calls, with a note of where its key is kept.
- The short list of features a first paying customer needs, separated from the rest.
We can take your Bolt project the rest of the way.
Bring your feature list and the error you are stuck on to a free consultation. We will tell you whether it sounds like something you can clear in a few careful requests, or whether a written plan would save you time. Work we take on happens in your repository, and you keep the result.
Book a free consultationOn the project call, we’ll discuss the problem, your existing tools and what TDAT should take off your hands. Then we can define the scope and next steps.
Or call (919) 289-1231
Questions before we start
Why does Bolt keep breaking features that already worked?
When a project is large, a new request can cause a file to be rewritten, and behaviour that was in the old version is sometimes left out of the new one. Keeping a written feature list and checking it after each change shows you the loss on the day it happens, while it is still easy to trace.
My Bolt app works in the preview. Why will it not publish?
Publishing builds the whole project from scratch and stops at inconsistencies the preview lets through. Read the first error in the build output and fix that one alone, then try again. Later errors in the same log are often caused by the first.
Can I take my code out of Bolt and keep working on it elsewhere?
In general, yes. The project is ordinary application code, and builders of this kind commonly offer a download or a connection to a code repository. Check the current options in the product itself. A developer can continue from that code without starting again.
Should I start the project over in Bolt with a better prompt?
Sometimes a clean start is quicker for a small project, and you would bring your feature list with you. For a larger one, starting over usually reproduces the same stall later. Have someone read the existing code first, because the screens and the data layout are often worth keeping.
What does TDAT do with a stuck Bolt project?
We start with a free consultation. If the Diagnostic fits, we read the code, the build output and the connected services, and you get a written plan of what blocks launch and what to do first. If you want us to do the work, we do it in your repository and accounts.