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:
| Tool | Version | Notes |
|---|---|---|
| Node.js | 20+ | Version 22+ required for B1App and LessonsApp (Next.js 16) |
| npm | Comes with Node.js | Used as the package manager across all projects |
| Git | Latest | Each project is a separate repository |
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):
| Tool | Version | Notes |
|---|---|---|
| MySQL | 8.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:
| Tool | Version | Notes |
|---|---|---|
| Expo CLI | Latest | Install globally: npm install -g expo-cli |
| Android Studio | Latest | Required for Android development (includes Android SDK) |
| Xcode | Latest | Required for iOS development (macOS only) |
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
| Tool | Version | Notes |
|---|---|---|
| Python | 3.12 | Required by node-gyp for native module compilation |
| setuptools | Latest | Install via pip install setuptools |
Windows
| Tool | Notes |
|---|---|
| Visual Studio | Community edition is sufficient |
| "Desktop development with C++" workload | Select during Visual Studio installation |
| Windows 10 SDK | Included 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