This project is organized as a monorepo with 4 main services:
- Framework: Next.js 16 with TypeScript
- Description: User-facing web application for the Stellar Streaming platform
- Setup:
cd app npm install npm run dev
- Framework: NestJS with TypeScript
- Description: REST API server handling all business logic and data operations
- Setup:
cd api pnpm install pnpm run dev
- Framework: TypeScript SDK
- Description: Client library for publishing events and interacting with streams
- Setup:
cd xstreamroll-sdk npm install npm run build
- Framework: Node.js with TypeScript
- Description: Dedicated service for processing real-time streaming data
- Setup:
cd xstreamroll-processing npm install npm run start
- Type: PostgreSQL
- Description: SQL schema and migrations for the platform
- Setup: Import
schema.sqlinto your PostgreSQL instance
This project uses npm workspaces at the repo root. The api/ package also
commits a pnpm-lock.yaml, so direct package work there should use pnpm
while the other packages use npm. Available root scripts:
# Install all dependencies for all services
npm run install:all
# Start both app and api concurrently
npm run dev
# Start individual services
npm run dev:app
npm run dev:api
# Build all services
npm run build- Clone this repository
- Install all dependencies:
npm run install:all - Set up each service according to the setup instructions above
- Ensure all services are running on their respective ports
- Web frontend typically runs on
http://localhost:3000 - API backend typically runs on
http://localhost:3001 - Stream processing worker starts automatically
Each service has its own .env file. Create these files based on the structure of the service before running.