Skip to main content

Prerequisites

The tools you need depend on which projects you plan to work on. Below is the full list, organized by what you are developing.

All Projects

These are required regardless of which project you work on:

ToolVersionNotes
Node.js20+Version 22+ required for B1App and LessonsApp (Next.js 16)
npmComes with Node.jsUsed as the package manager across all projects
GitLatestEach project is a separate repository
tip

Use a Node version manager like nvm (macOS/Linux) or nvm-windows (Windows) to switch between Node versions easily.

Backend API Development

If you plan to run the API locally (rather than pointing to staging):

ToolVersionNotes
MySQL8.0+Each API module uses its own database

You will need six databases for the core API: membership, attendance, content, giving, messaging, and doing. The API includes scripts to initialize the schema -- see the API local setup guide.

Mobile App Development

For B1Mobile, B1Checkin, LessonsScreen, or other React Native / Expo apps:

ToolVersionNotes
Expo CLILatestInstall globally: npm install -g expo-cli
Android StudioLatestRequired for Android development (includes Android SDK)
XcodeLatestRequired for iOS development (macOS only)
note

You can use the Expo Go app on a physical device for quick testing without Android Studio or Xcode. However, building production binaries requires the native toolchains.

FreeShow (Desktop App) Development

FreeShow has additional native build dependencies because it compiles native Node modules (like canvas):

All Platforms

ToolVersionNotes
Python3.12Required by node-gyp for native module compilation
setuptoolsLatestInstall via pip install setuptools

Windows

ToolNotes
Visual StudioCommunity edition is sufficient
"Desktop development with C++" workloadSelect during Visual Studio installation
Windows 10 SDKIncluded in the C++ workload; ensure it is checked

You can install the Visual Studio build tools via the command line:

npm install --global windows-build-tools

Or install Visual Studio Community and select the "Desktop development with C++" workload during installation.

Linux

sudo apt-get install libfontconfig1-dev

macOS

Xcode Command Line Tools are typically sufficient:

xcode-select --install

Verify Your Installation

Run these commands to confirm everything is installed:

node --version    # Should print v20.x.x or higher
npm --version # Should print 10.x.x or higher
git --version # Should print git version 2.x.x
mysql --version # Only needed for local API development