Skip to main content

Project Overview

ChurchApps consists of approximately 20 independent repositories, each published under the ChurchApps GitHub organization. Below is a complete inventory organized by category.

Backend APIs

All APIs are built with Node.js, Express, and TypeScript, and are deployed to AWS Lambda via Serverless Framework.

ProjectPurposeDev PortDatabase
ApiCore modular monolith covering membership, attendance, content, giving, messaging, and doing8084Separate MySQL database per module (6 total)
LessonsApiLessons.church backend--Single lessons MySQL database
AskApiAI query tool powered by OpenAI----
info

The core Api project is a modular monolith. Each module (membership, attendance, content, giving, messaging, doing) has its own database and is accessible at a subpath such as /membership or /giving. In production, these are exposed as separate Lambda functions behind API Gateway.

Web Apps

ProjectFrameworkDev PortPurpose
B1AdminReact 19 + Vite + MUI 75173Church administration dashboard
B1AppNext.js 16 + React 19 + MUI 73301Public-facing church member app
LessonsAppNext.js 163501Lessons.church frontend
B1TransferReact + Vite--Data import/export utility
BrochureSitesStatic--Static church brochure websites

Mobile Apps

All mobile apps use React Native with Expo.

ProjectPurposeKey Versions
B1MobileChurch member app for iOS and AndroidExpo 54, React Native 0.81
B1CheckinCheck-in kiosk appExpo
LessonsScreenAndroid TV lesson displayExpo
FreePlayContent playback (including TV OS)Expo
FreeShowRemoteMobile remote control for FreeShowExpo

Desktop

ProjectStackPurpose
FreeShowElectron 37 + Svelte 3 + VitePresentation and worship software

Shared Libraries

Shared code is published to npm under the @churchapps scope. These are consumed as regular npm dependencies by the projects above.

Packagenpm NamePurposeUsed By
Helpers@churchapps/helpersBase utilities (DateHelper, ApiHelper, CurrencyHelper, etc.)All projects
ApiHelper@churchapps/apihelperExpress server utilities (auth middleware, DB helpers, AWS integration)All APIs
AppHelperWorkspace with 6 packagesReact component libraryAll web apps
ContentProviderHelper@churchapps/content-provider-helperYouTube, Vimeo, and local content providersFreeShow, FreePlay, Api

AppHelper Sub-packages

The AppHelper project is a monorepo workspace that publishes six packages:

Packagenpm Name
Core@churchapps/apphelper
Login@churchapps/apphelper-login
Donations@churchapps/apphelper-donations
Forms@churchapps/apphelper-forms
Markdown@churchapps/apphelper-markdown
Website@churchapps/apphelper-website

Project Relationships

Frontend Apps              Shared Libraries           Backend APIs
-------------- ---------------- ------------
B1Admin ──────┐
B1App ──────┤ @churchapps/helpers ◄───── Api
LessonsApp ──────┼──► @churchapps/apphelper LessonsApi
B1Mobile ──────┤ AskApi
FreeShow ──────┘ @churchapps/apihelper ◄────┘

All frontend apps depend on @churchapps/helpers. Web apps additionally depend on @churchapps/apphelper packages. All backend APIs depend on both @churchapps/helpers and @churchapps/apihelper.