Skip to content

GitHub Repositories

GitHub has hundreds of millions of users and, alongside the version control tool Git, is one of the most popular code repository platforms in the world – as close to an industry standard in software engineering as you can get. It’s used by professional engineers and non-developers alike.

For Mosayic, GitHub performs two essential functions:

Code Management

Store your code, manage updates, and handle release cycles

CI/CD via GitHub Actions

Deploy the API, run database migrations, execute tests, perform backups, and more

Mosayic will prompt you to install certain tools using your AI editor, including the GitHub CLI.

The first step is establishing your repositories on GitHub. Mosayic automates this process, creating two initial repositories:

  1. API codebase – the same Python codebase you downloaded from Mosayic
  2. Mobile application codebase – your React Native + Expo project

Simply use the buttons in the GitHub section of Mosayic – repository creation is fully automated.

Mosayic does not handle Git functionality for you – instead, rely on your AI tooling for Git operations. However, it’s strongly recommended that you understand the fundamentals of what Git is for and what it’s doing.

  1. Create a development or feature branch before making changes
  2. Commit often as you work
  3. Roll back when needed – branches make this painless
  4. Write code in small, modular chunks focused on specific tasks rather than broad feature requests

This approach drastically cuts down on wasted time.

When you’ve made changes, Mosayic will show the codebase status as modified. It will also warn you if:

  • You’re attempting to push directly to the main branch
  • Your code needs to be committed

When ready to push, use the command Mosayic provides:

Terminal window
git push origin your-feature-branch

Then in GitHub, create a pull request. The pull request lets you review the code you’re about to merge. Even if you don’t understand every line, reviewing your changes before merging into main is good practice.

GitHub also supports releases, allowing you to stamp the state of your main branch at a specific point in time with a version number. Certain workflow functions – such as pushing migrations to Supabase – typically happen only on a release. More on this later in the documentation.