Using Version Control in Shakespeare
Learn how to effectively use version control features in Shakespeare to manage your project history, collaborate with others, and maintain your codebase.
What is Version Control? What is Git?
Version control is like having a time machine for your code. It tracks every change you make to your project, allowing you to see what changed, when it changed, and who changed it. Git is the most popular version control system - think of it as a super-powered "undo" button that can save snapshots of your entire project at different points in time. If something breaks, you can easily go back to a working version. It also lets multiple people work on the same project without stepping on each other's toes.
1. Using Shakespeare's Built-in Version Control
Roll back to existing versions by clicking the … menu in the project chat pane → Rollback

💡 Pro tip: Advanced Git Users
If you are an experienced git user, you can also speak to Shakespeare in the chat to give it git commands, or use git in the built-in terminal!
To access the terminal: click the code icon in the top right of the preview pane, then the terminal icon

2. Connecting to GitHub and GitLab
A benefit of connecting to GitHub or GitLab is that others can easily improve your projects, and you can easily sync your projects across devices by pushing and pulling.
GitHub
First log in to GitHub on Shakespeare: (settings → Git settings → connect GitHub)

Then you have to create a new project in GitHub:https://github.com/new
(note: visibility MUST be public!)
Then copy the HTTPS clone URL (make sure you get the HTTPS and NOT the SSH!)
Example: https://github.com/marykatefain/fantastic-couscous.git

Then in Shakespeare click the … menu in the chat pane → Repository

Then paste the git URL you copied and click "Save"
Then click "Push" to push your Shakespeare work to GitHub

GitLab
Same as GitHub, except you need to login with "Create a new token" first:
Create a new token here:https://gitlab.com/-/user_settings/personal_access_tokens
- Set a long expiration for smoothest experience
- Scope: read_repository, write_repository

Add the token to Shakespeare under settings → Git settings → GitLab:https://shakespeare.diy/settings/git

Create new blank project in GitLab here:https://gitlab.com/projects/new#blank_project
Make it public, and Uncheck "Initialize repository with a README"
Copy the clone with HTTPS link (make sure it's not the SSH one!)
Ex. https://gitlab.com/marykatefain/testing.git

Add as the repository URL and click Push to sync your changes (same as GitHub)
3. Using Nostr Git
Under the repository settings, you can also push to Nostr to back up your repository without needing a GitLab or GitHub account (note: must be logged in to Nostr)

Then you will have a Nostr git URL you can use to share or import your project across devices:
Example: nostr://npub1jvnpg4c6ljadf5t6ry0w9q0rnm4mksde87kglkrc993z46c39axsgq89sc/git.shakespeare.diy/design-craftsman

Ready to Build with Shakespeare?
Start building amazing projects with AI-powered development on Nostr.
Turn your ideas into reality through natural conversation with AI
Get the latest Shakespeare updates and resources
Stay updated with the latest features and announcements. Optionally provide your npub to link your account.