Skip to main content

Checkpoints

As you build an app in the Base44 online app editor, Base44 saves versioned snapshots of it called checkpoints. A checkpoint captures the full state of your app at a point in time, both the code and the configuration that define how it works. Because it is a complete snapshot, you can publish it to production or roll your app back to it later. Publishing a checkpoint does not change your saved checkpoints. It only changes which version production serves. Base44 creates checkpoints automatically as you build.
  • The AI saves a checkpoint each time it applies changes from a chat message, named after that message.
  • Editing your app directly in the editor saves those changes as a checkpoint.
  • Syncing code from a connected GitHub repository creates a checkpoint.
  • Applying a security scan fix creates a checkpoint before the change is made.
Each checkpoint belongs to a single branch of your app. Production always serves your main branch, so a checkpoint created on a feature branch cannot be published directly. Merge the branch into your main branch first, then publish.
A checkpoint is not a Git commit. It references the commit that holds your app’s code at that moment, but it also captures your app’s configuration and metadata, so it snapshots more than code alone.

Turns

When you send a message to your app’s AI chat, the AI works on that message until it is done. That whole cycle is a turn. A single turn can involve several steps, such as reading your app’s files, writing code, and calling a tool. Because of that, a turn is not a quick request. A large change can take several minutes to settle. Each turn consumes credits. A turn ends in one of three states, reported as state on the app’s status object:
  • ready: Turn finished and the app is idle again
  • processing: Work is still running
  • error: Turn failed. When a turn fails, error_source records where it failed.
A turn is a unit of work, not a message. One message starts one turn, and that turn covers everything the AI does in response, however many steps it takes.

Branches

A branch is a separate line of work on the same app, similar to a Git branch, that keeps unfinished changes out of your live app. Production always serves your main branch. A branch has its own chat conversation, so its history stays separate from the app’s main chat. It also has its own preview, its own page routes, and its own entity schemas, so you can change the shape of your data on a branch without touching the live app. Everything else stays shared with the app. Work you do on a branch reaches production by merging it into your main branch and publishing from there. If your app is connected to a GitHub repository, you can adopt an existing repository branch as a Base44 branch with Import a GitHub branch. An imported branch keeps its GitHub name and commits back to that same GitHub branch, so Base44 never creates a separate one for it.