Ranking the Best CI/CD Tools for React Native: Pros, Cons, and My Picks

Choosing the best CI/CD platform for React Native can feel overwhelming because every team has different needs and preferences. Here’s my take on some of the most popular platforms, ranked from my least to most recommended:

5. Jenkins
Jenkins is a powerhouse with loads of customization options and plugin support, perfect for complex projects. But, let’s be real—it’s not the friendliest to set up, especially for mobile-first teams. If you’re just looking to get your React Native app out there without a steep learning curve, Jenkins might feel like a bit of a dinosaur.

4. Fastlane
Fastlane is fantastic for automating those repetitive tasks in mobile app development, like managing app releases. It’s super useful for setting up your deployment pipeline but doesn’t handle the entire CI/CD process on its own. You’ll likely need to pair it with another tool. It’s kind of like the perfect sidekick—reliable and handy, but not a complete superhero on its own.

3. CircleCI
CircleCI is all about power and scalability. Its YAML-based pipeline setup gives you the flexibility to tailor your build processes. But if you’re new to CI/CD, CircleCI can feel a bit like diving into the deep end. Once you get the hang of it, though, it’s a solid choice for those who need a robust CI/CD setup, even if it takes a bit more time to get comfortable.

2. App Center
App Center is an all-in-one dream for mobile devs, offering build, test, and distribution all under one roof. Plus, it hooks up seamlessly with your version control. The downside? It can get pricey, especially for bigger teams, and it’s not as flexible as some of the more customizable platforms. One big bummer is that Microsoft announced it’s retiring App Center in March 2025. So while it’s great, keep that in mind if you’re looking for a long-term solution.

1. Bitrise
Bitrise is hands down my top pick. It’s built specifically for mobile apps, so setting up workflows is super easy and designed with developers in mind. It’s like Bitrise knows exactly what you need before you do. Yes, it’s not perfect for non-mobile projects, and the cost can add up if you’re running a massive team, but for React Native, it’s pretty much unbeatable. With Bitrise, you get a seamless, stress-free CI/CD experience that just works.

Conclusion
Every platform has its strengths, so what’s best for you depends on your needs. But if you’re looking for a smooth, mobile-first CI/CD experience, Bitrise and App Center (at least until it’s retired) are the ones to beat. They take the hassle out of setting up CI/CD pipelines and make the whole process feel like less of a chore.

How to Easily Compress and Join Your Videos Using a Simple Script

So I just found myself on creating a video header background for a client’s site, and needed to join about 7 videos, compress them to an aceptable size for the web, and didn’t really want to download iMovie or use a video editing software. My approach was to use a simple script. Whether you’re working on a Mac or another Unix-like system, this should work for you. Let’s dive in!

Why Would You Want to Do This?

Sometimes you’ve got a bunch of video clips from your phone, camera, or other sources, and you want to make them into one seamless video. Maybe it’s for a vlog, a presentation, or just to share with friends. But those raw video files can be huge, and stitching them together can be a pain if you don’t know the right tools. That’s where this script comes in handy!

What You’ll Need

  • A Mac or Unix-like system: This script uses ffmpeg, a powerful and free tool for handling videos.
  • Some basic terminal knowledge: Don’t worry, I’ll walk you through it!

The Script

Here’s the magic script that does it all. Just copy this into a text file, save it as something like compress_and_join.sh, and make sure it’s executable.

#!/bin/bash

# Ensure we're working in the directory where the script is located
cd "$(dirname "$0")"

# Step 1: Compress each video and create intermediate files for concatenation
index=0
for f in *.mov; do
  if [ -f "$f" ]; then
    index=$((index + 1))
    output="compressed_${index}.mp4"
    
    # Compress the video
    ffmpeg -i "$f" -vcodec libx264 -crf 28 -preset fast -vf "scale=-2:720" -an "$output"
  fi
done

# Step 2: Generate a list of all compressed video files
concat_list="concat_list.txt"
rm -f $concat_list
for f in compressed_*.mp4; do
  if [ -f "$f" ]; then
    echo "file '$f'" >> $concat_list
  fi
done

# Step 3: Concatenate all videos by re-encoding them into a single stream
ffmpeg -f concat -safe 0 -i $concat_list -c:v libx264 -crf 28 -preset fast -c:a copy final_output.mp4

# Cleanup temporary files
rm $concat_list
rm compressed_*.mp4

How to Use the Script

  1. Save Your Script: Drop this script into the folder where your .mov video files are located.
  2. Make It Executable: Open your Terminal and navigate to the folder with the script. Run the command:
chmod +x compress_and_join.sh

Run It: Now, just run the script:

./compress_and_join.sh

And that’s it! The script will do all the heavy lifting—compressing each video and then joining them into a single file called final_output.mp4.

Why This Works Like a Charm

  • Compression: The script uses ffmpeg to compress each video so they take up less space but still look good.
  • Re-encoding: Instead of just slapping the videos together (which can cause issues), this script re-encodes them into a single smooth video.
  • Simple: You don’t need any special software or hours of fiddling around—just run the script and let it do its thing.

Wrapping Up

If you’re a video enthusiast or just someone who occasionally needs to work with video files, this script is a real time-saver. It’s a simple, effective way to compress and join videos without needing to mess with complex editing software. Plus, once you’ve set it up, you can reuse it whenever you need to—just drop it in a folder with your videos, and you’re good to go.