Financial tools for communities - A modern monorepo containing the Bitsacco applications and shared packages.
bitsacco/
βββ apps/
β βββ home/ # Main website with Sanity CMS integration
βββ packages/
β βββ core/ # Shared business logic and utilities
β βββ ui/ # Shared UI components
β βββ eslint-config/ # Shared ESLint configurations
β βββ tsconf/ # Shared TypeScript configurations
β βββ tailwind-config/ # Shared Tailwind CSS configuration
βββ compose.yml # Docker compose configuration
βββ turbo.json # Turborepo configuration
βββ package.json # Root package configuration
This project uses:
- npm (v10.9.2+) for package management
- Node.js (v20.0.0+) runtime
- Docker and Docker Compose for containerized services
- Turbo for monorepo management
- Next.js for web application development
- Sanity for content management
- Install Node.js v20.0.0 or higher
- Install Docker and Docker Compose
- Clone the repository
# Install all dependencies
npm install
# Copy environment variables
cd apps/home
cp .env.example .env.local
# Fill in required environment variables (see ENV_CONFIGURATION.md)
cd ../..# Run all applications in development mode
npm run dev # Runs all apps
npm run dev:all # Alias for npm run dev
# Run specific applications
npm run dev:home # Home website (localhost:3000)
# Using Docker Compose for backend services
npm start # Start all services
npm stop # Stop all services
npm run logs # View logsnpm run dev- Run all apps in development modenpm run dev:all- Alias for npm run devnpm run dev:home- Run home website only (port 3000)
npm run build- Build all appsnpm run build:home- Build home website onlynpm run build:ui- Build UI package onlynpm run build:core- Build core package only
npm run lint- Lint all appsnpm run lint:fix- Lint and fix all appsnpm run typecheck- Type check all appsnpm run test- Run tests across all appsnpm run format- Format code with Prettier
npm run clean- Clean build outputsnpm run clean:docker- Clean Docker volumes and containers
npm start- Start all services with Docker Composenpm stop- Stop all Docker servicesnpm run logs- View logs for all servicesnpm run dc <command>- Run any docker-compose command
The main Bitsacco website built with Next.js 15 and Sanity CMS.
Features:
- Server-side rendering with Next.js App Router
- Content management with Sanity Studio
- Blog with RSS feed generation
- Contact form with rate limiting
- Dark/light theme support
- Partners carousel
- FAQ section
.well-knownproxy for OAuth/OIDC endpoints
Tech Stack:
- Next.js 15.3.3
- React 19
- Tailwind CSS v4
- Sanity CMS
- Resend for emails
- TypeScript
Development:
cd apps/home
npm run devAccess:
- Website: http://localhost:3000
- Sanity Studio: http://localhost:3000/studio
Shared business logic, utils and typescript type definitions across all apps
Shared TypeScript configurations:
base.json- Base configurationnextjs.json- Next.js appsreact-app.json- React applicationsreact-library.json- React component librariests-library.json- TypeScript libraries
See apps/home/ENV_CONFIGURATION.md for detailed environment variable documentation.
Quick setup:
cd apps/home
cp .env.example .env.local
# Edit .env.local with your valuesThe monorepo uses Turborepo for efficient builds and caching. Configuration is in turbo.json.
# Run all tests
npm run test
# Run tests for specific app
cd apps/home
npm run testThis project uses:
- ESLint for linting
- Prettier for code formatting
- TypeScript for type safety
# Lint all code
npm run lint
# Format all code
npm run formatThe project includes Docker configuration for containerized development:
# Start services
npm start
# View logs
npm run logs
# Stop services
npm stop
# Clean up
npm run clean:docker- Create an issue first and assign it to yourself
- Branch naming: Use
username/feature-nameformat - Create a PR - Never push directly to
main - Request review from
@okjodom - Commit format: Follow Conventional Commits
feat: add user authentication
fix: resolve memory leak in data processing
docs: update API documentation
chore: upgrade dependencies-
Setup your environment
npm install cd apps/home cp .env.example .env.local -
Create a feature branch
git checkout -b username/feature-name
-
Make your changes
- Write clean, documented code
- Add tests where applicable
- Update documentation
-
Test your changes
npm run lint npm run test npm run build -
Submit a PR
- Clear description of changes
- Link to related issue
- Screenshots for UI changes
If you have issues with this setup, reach out to Jodom:
Copyright Β© 2025 Bitsacco. All rights reserved.