4.3 KiB
4.3 KiB
Technology Stack
Analysis Date: 2026-01-11
Languages
Primary:
- Ruby 2.4.1 (pinned for production, with noted upgrade path to 2.5+) - All service Gemfiles
- JavaScript/React - Frontend application code in
jam-ui/src/ - Protocol Buffers (proto3) - Real-time messaging definitions in
pb/src/client_container.proto
Secondary:
- TypeScript 3.9.10 (dev dependency) -
jam-ui/package.json, used for type checking - Python - Utility scripts in
web/script/py/
Runtime
Environment:
- Node.js 14.21.3 -
jam-ui/.nvmrc - Ruby 2.4.1 (production), Ruby 2.3.1 (legacy compatibility) - Multiple service Gemfiles
- PostgreSQL database server
Package Manager:
- npm -
jam-ui/package.json(React frontend) - Bundler 1.17.3 - Ruby gem management (Gemfile.alt for Silicon/M1 Macs with
MODERN_OS=1flag) - Lockfiles:
package-lock.json(npm),Gemfile.lock(bundler),Gemfile.alt.lock(M1 Macs)
Frameworks
Core:
- Rails 4.2.8 - Backend API framework (
web/Gemfile,admin/Gemfile,websocket-gateway/Gemfile) - React 16.13.1 - Frontend SPA framework (
jam-ui/package.json) - React Router DOM 5.2.0 - Client-side routing
- Redux Toolkit 1.6.1 - State management (
jam-ui/src/store/) - EventMachine 1.0.4/1.2.3 - Async I/O for WebSocket gateway
Testing:
- Jest - Unit testing for React (inferred from test patterns)
- Playwright 1.40.0 - E2E testing (
jam-ui/package.json,jam-ui/playwright.config.ts) - RSpec 2.11 - Ruby testing framework (
ruby/Gemfile, test specs in*/spec/) - Jasmine - Legacy JavaScript tests (
web/spec/javascripts/karma.conf.js) - Capybara 2.13.0 - Browser automation for Rails tests
Build/Dev:
- React Scripts 3.4.3 (Create React App) -
jam-ui/package.json - Webpack CLI 4.10.0 - Module bundling
- Gulp 4.0.2 - SCSS compilation (
jam-ui/package.json) - Sprockets 3.6.3 - Rails asset pipeline (all Rails services)
- Babel - JavaScript transpilation (via React Scripts)
Key Dependencies
Critical:
- ruby-protocol-buffers 1.2.2 - WebSocket message serialization (all service Gemfiles)
- Devise 3.3.0 - User authentication (all Rails services)
- ActiveRecord 4.2.8 - ORM for PostgreSQL (
ruby/Gemfile) - Resque - Background job processing (
ruby/Gemfile,web/Gemfile,admin/Gemfile) - amqp gem - RabbitMQ messaging (
ruby/Gemfile,web/Gemfile,websocket-gateway/Gemfile)
Infrastructure:
- PostgreSQL adapter (pg 0.17.1/0.21.0) - Database connectivity
- Redis (redis gem 3.3.0/3.3.3) - Job queue and session storage
- CarrierWave 0.9.0/0.11.2 - File upload handling with S3 support
- aws-sdk ~1 - AWS S3 integration for file storage
Frontend UI:
- Bootstrap 4.5.3 - CSS framework
- Reactstrap 8.6.0 - Bootstrap React components
- Font Awesome 5.15.1 - Icon library
- Howler.js 2.2.4 - Audio playback
- Chart.js 2.9.3, ECharts 4.9.0 - Data visualization
- FullCalendar 5.3.1 - Calendar UI
- Leaflet 1.7.1 - Maps integration
- React Hook Form 7.11.1 - Form handling
- i18next 21.3.3 - Internationalization
Payment/Billing:
- Stripe (via stripe gem) - Payment processing
- PayPal SDK (paypal-sdk-merchant-jk 1.118.1) - PayPal integration
- Recurly 2.19.14 - Subscription management
Configuration
Environment:
.envfiles for environment-specific config -jam-ui/.env.development,.env.staging,.env.production- Rails environments -
web/config/environments/*.rb - Application config -
web/config/application.rb(534 lines of configuration) - Initializers -
web/config/initializers/(26+ initialization files)
Build:
tsconfig.json- TypeScript compiler options (if TypeScript used)jam-ui/package.json- Node dependencies and scripts- Gemfiles - Ruby dependencies for each service
.prettierrc- Code formatting (jam-ui/).eslintrc.json- JavaScript linting (jam-ui/)
Platform Requirements
Development:
- macOS/Linux/Windows with Node.js 14.21.3
- Ruby 2.4.1 (or 2.3.1 for legacy)
- PostgreSQL server
- Redis server (for Resque)
- RabbitMQ server (for AMQP messaging)
- Local hosts configuration:
www.jamkazam.local(Rails),beta.jamkazam.local(React)
Production:
- Linux server environment
- PostgreSQL production database
- Redis for job queuing
- RabbitMQ for async messaging
- AWS S3 for file storage with CloudFront CDN
- WebSocket gateway server with EventMachine
Stack analysis: 2026-01-11 Update after major dependency changes