Skip to content

ephemeraHQ/convos-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Convos

Setup

Environment

Run one of the following commands to set up your environment variables:

# For development environment
yarn env:pull:dev

# For preview environment
yarn env:pull:preview

# For production environment
yarn env:pull:prod

This will create the appropriate .env file with environment variables configured in expo.dev. Note that you'll need to have an Expo project set up since we use their EAS service to pull environment variables.

Install JS/React Native dependencies

yarn

Install Ruby dependencies

To ensure you're using the correct version of CocoaPods, install the Ruby dependencies:

gem install bundler
bundle install

Quick start

iOS:

yarn ios  # For iOS simulator
# OR
yarn ios:device  # For physical iOS device

Android:

yarn android

After the initial build, you can simply use yarn start to launch the Expo server for subsequent runs.

Running the app

Once the app builds, the Expo development server will start and you'll be able to run the app on your chosen device/simulator. If you encounter any issues, try:

# For iOS build issues
yarn ios:clean

# For Android build issues
yarn android:clean

Forward backend port (Android only)

If running the backend locally with Android, run:

yarn android:reverse

Start Expo server

yarn start

Development

Code Style and Best Practices

This project follows specific coding standards and best practices. Please refer to:

  • .cursorrules - Defines our coding standards and patterns
  • eslint.config.mjs - ESLint configuration
  • .prettierrc.cjs - Prettier formatting rules

We use ESLint and Prettier to enforce code quality and consistency. Make sure to run linting before submitting PRs:

Lint

yarn lint

Typecheck

yarn typecheck

Environments

The app supports three environments:

  1. Development - For local development
  2. Preview - For testing before production
  3. Production - Live app environment

Each environment has its own configuration in app.config.ts.

Rebuilding after Native Changes

If you add a new library with native dependencies or change configuration in app.config.ts, you'll need to rebuild:

# For iOS
yarn ios:clean

# For Android
yarn android:clean

Release Process

Preview Deployments (Main Branch)

The main branch represents the current preview code. When code is merged to main:

  1. For TypeScript-only changes:

    • An over-the-air (OTA) update is deployed via EAS Update
    • No version increment occurs
  2. For native changes (iOS/Android/package.json):

    • A new native build is triggered via EAS Build
    • Minor version is automatically incremented
    • App is submitted to TestFlight and Play Store internal testing
    • Source maps are uploaded to Sentry

Production Deployments (Production Branch)

The production branch represents the current production code. When main is merged to production:

  1. If versions match between main and production:

    • An over-the-air (OTA) update is deployed via EAS Update
    • No version increment occurs
  2. If versions differ:

    • A new native build is triggered via EAS Build
    • App is submitted to App Store and Play Store production
    • Source maps are uploaded to Sentry

Note: Production deployments are carefully managed to ensure version consistency. The system waits for any in-progress preview deployments to complete before proceeding with production deployment.

For more details on the deployment process, see the GitHub Actions workflows in .github/workflows/preview-deployment.yml and .github/workflows/production-deployment.yml.

Troubleshoot

If you're having trouble with installation or the build process, try running yarn clean to remove the build directories and reinstall dependencies.

Contributing

See our contribution guide to learn more about contributing to this project.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages