XStreamRoll is a powerful distributed streaming platform designed for developers and content creators who need real-time data streaming capabilities. The platform provides a complete ecosystem for building, managing, and scaling streaming applications with a modern web interface, robust API backend, client SDKs, and dedicated stream processing infrastructure. It's built for teams looking to deploy production-ready streaming solutions without the complexity of managing multiple disconnected services.
- app/ - Next.js frontend application with modern UI components
- api/ - NestJS backend server with REST API and WebSocket support
- xstreamroll-sdk/ - TypeScript client SDK for easy integration
- xstreamroll-processing/ - Node.js stream processing worker for real-time data handling
- database/ - PostgreSQL schema and migrations
- Node.js 18+ and npm
- PostgreSQL 14+
- Git
-
Fork/Clone the repository
git clone https://github.com/XStreamRollz/XStreamRoll cd xstreamroll -
Install all dependencies
npm run install:all
-
Set up environment variables
# Create environment files for each service cp app/.env.example app/.env cp api/.env.example api/.env cp xstreamroll-sdk/.env.example xstreamroll-sdk/.env cp xstreamroll-processing/.env.example xstreamroll-processing/.envConfigure the following variables:
DATABASE_URL- PostgreSQL connection stringJWT_SECRET- JWT signing secretSTREAM_API_KEY- API key for stream authentication
-
Set up the database
# Import the schema into PostgreSQL psql -d your_database_name -f database/schema.sql -
Start the development environment
# Start all services concurrently npm run dev # Or start individual services npm run dev:app # Frontend on http://localhost:3000 npm run dev:api # API on http://localhost:3001
# Run tests for all services
npm run test
# Run tests for specific services
npm run test:app
npm run test:api
npm run test:sdkThe platform uses the following default ports:
- Frontend:
3000 - API Backend:
3001 - Stream Processing:
3002
Ensure these ports are available in your environment or update the environment variables accordingly.
- Repository Structure: See
REPOSITORIES.mdfor detailed service documentation - API Documentation: Available at
http://localhost:3001/docswhen API is running - SDK Documentation: See
xstreamroll-sdk/README.mdfor integration examples - Contribution Guidelines: See
CONTRIBUTING.mdfor development practices - Issue Tracking: Use GitHub Issues for bug reports and feature requests
- Frontend: Next.js 16 with TypeScript, Tailwind CSS, Radix UI
- Backend: NestJS with TypeScript, Express, WebSockets
- SDK: TypeScript with modern build tools
- XStreamRoll Processing: Node.js with TypeScript, event-driven architecture
- Database: PostgreSQL with optimized streaming schemas
- Development: npm workspaces, ESLint, Prettier, Husky
XStreamRoll is designed as a production-ready platform with comprehensive type safety, modern development practices, and scalable architecture. Each service is containerized and can be deployed independently or as part of the complete platform ecosystem. The codebase follows TypeScript best practices and includes extensive documentation for easy onboarding.