A high-fidelity social networking platform with native desktop app, real-time streaming, and AI-powered features. Built with React, TypeScript, Electron, and powered by Google's Gemini AI.
- π₯οΈ Native Desktop App - Electron-based app for macOS, Windows, Linux
- π Dark Mode UI - Elegant dark theme optimized for extended use
- π¬ Real-time Chat - Socket.IO powered messaging with typing indicators
- π€ AI Integration - Powered by Google Gemini AI for intelligent content
- π± Responsive Design - Works seamlessly on desktop and mobile
- π¨ Smooth Animations - Fluid animations using Framer Motion
- π¬ Social Features - Posts, comments, profiles, and direct messaging
- π Custom Servers - Create gaming, study, or custom communities
- π₯ User Profiles - Customizable profiles with status and presence
- π Notifications - Real-time notifications for activity
- π₯ Native Streaming - Built-in RTMP server with HLS/DASH support
- πΊ Twitch Integration - Stream to Twitch & watch streams in-app
- π¬ Screen Capture - Stream desktop or window content
- π‘ Stream Management - Viewer count, stream keys, live indicators
- ποΈ Local Database - SQLite embedded database (no setup)
- π§ Developer Portal - Built-in tools for developers
- π― Project Boards - Kanban-style task management
- π€ Voice Channels - High-quality audio communication
For the full native app experience with streaming and database:
See ELECTRON_SETUP.md for complete setup guide.
npm install
npm run build
npm run electron # Start appBuild installers:
npm run electron:build:mac # macOS DMG
npm run electron:build:win # Windows installer
npm run electron:build:linux # Linux AppImage/DEB- Node.js 18+ (recommended: 20.x)
- npm or yarn package manager
-
Clone the repository:
git clone https://github.com/astickleyid/nXcor.git cd nXcor -
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.localfile in the root directory:GEMINI_API_KEY=your_gemini_api_key_here
-
Run the development server:
npm run dev
-
Open your browser: Navigate to
http://localhost:3000
npm run dev- Start development server (port 3000)npm run build- Build for productionnpm run preview- Preview production build locallynpm test- Run testsnpm run test:watch- Run tests in watch modenpm run test:ui- Run tests with UInpm run test:coverage- Generate test coverage report
npm run electron:dev- Start desktop app in development modenpm run electron:build- Build desktop app for current platformnpm run electron:build:mac- Build for macOSnpm run electron:build:win- Build for Windowsnpm run electron:build:linux- Build for Linux
The desktop app includes native streaming functionality that allows you to stream directly to Twitch.
- β Screen Capture - Stream your entire screen
- β Cross-Platform - Works on macOS, Windows, and Linux
- β RTMP Streaming - Direct streaming to Twitch
- β Go Live Button - Easy access from Twitch channels or sidebar
- β³ Audio Support - Coming soon (mic + system audio)
-
Get Your Twitch Stream Key
- Visit Twitch Dashboard
- Copy your stream key (keep it secret!)
-
Open Desktop App
npm run electron:dev # Development mode # OR npm run electron:build # Build installer
-
Start Streaming
- Click the "Go Live" button (red video icon)
- Enter your Twitch stream key
- Select "Full Screen" as your source
- Click "Go Live on Twitch"
-
Verify
- Open your Twitch channel
- Your stream should appear live!
For detailed documentation, see STREAMING_IMPLEMENTATION.md.
Watch Twitch streams directly within lmnaid:
-
Install Twitch Integration
- Click
+in server sidebar - Browse integrations
- Add Twitch
- Click
-
Features
- Live stream player with chat
- VOD browser
- Clips gallery
- Stream info and stats
For detailed documentation, see TWITCH_INTEGRATION.md.
- Framework: React 19.2.3
- Language: TypeScript 5.8.2
- Build Tool: Vite 6.2.0
- Desktop: Electron 39.2.7
- Streaming: FFmpeg + fluent-ffmpeg
- Styling: Tailwind CSS
- Animations: Framer Motion 12.23.26
- Icons: Lucide React
- AI: Google Generative AI (Gemini)
- State: Zustand
- Testing: Vitest + React Testing Library
This project uses GitHub Actions for automated deployment to Vercel:
- Preview Deployments: Automatically created for all pull requests
- Production Deployments: Automatically deployed when changes are pushed to the
mainbranch
Configure these secrets in your GitHub repository settings:
VERCEL_TOKEN- Your Vercel authentication tokenVERCEL_ORG_ID- Your Vercel organization IDVERCEL_PROJECT_ID- Your Vercel project IDGEMINI_API_KEY- Your Google Gemini API key
To deploy manually to Vercel:
# Install Vercel CLI
npm install -g vercel
# Deploy to preview
vercel
# Deploy to production
vercel --prodThis project uses Vitest and React Testing Library for testing.
Tests are located in the __tests__ directory. Example:
import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import { Component } from './Component';
describe('Component', () => {
it('should render correctly', () => {
render(<Component />);
expect(screen.getByText('Expected Text')).toBeInTheDocument();
});
});# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverageWe welcome contributions! Please see our CONTRIBUTING.md for details on:
- Code of conduct
- Development workflow
- Coding standards
- Pull request process
- CI/CD pipeline
All pull requests trigger automated checks:
- Build Verification - Ensures the project builds successfully
- Test Execution - Runs all tests with coverage reporting
- Preview Deployment - Deploys a preview version to Vercel
Merges to main branch trigger:
- Production Build - Creates optimized production build
- Production Deployment - Deploys to Vercel production environment
- Deployment Summary - Generates summary with deployment URL
.github/workflows/ci.yml- Runs tests and builds on PRs.github/workflows/deploy-preview.yml- Deploys preview on PRs.github/workflows/deploy-production.yml- Deploys production on main
nXcor/
βββ .github/
β βββ workflows/ # GitHub Actions workflows
β βββ ISSUE_TEMPLATE/ # Issue templates
β βββ copilot-instructions.md # GitHub Copilot instructions
β βββ pull_request_template.md
βββ components/ # React components
βββ services/ # API services
βββ __tests__/ # Test files
βββ App.tsx # Main application component
βββ index.tsx # Application entry point
βββ types.ts # TypeScript type definitions
βββ vite.config.ts # Vite configuration
βββ vitest.config.ts # Vitest configuration
βββ vercel.json # Vercel deployment configuration
βββ package.json # Project dependencies
| Variable | Description | Required |
|---|---|---|
GEMINI_API_KEY |
Google Gemini API key for AI features | Yes |
This project is part of the AI Studio ecosystem.
- Built with Vite
- Powered by Google Gemini AI
- Hosted on Vercel
- Icons by Lucide
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- AI Studio: https://ai.studio/apps/drive/1nKpc_GKeiJhJfBjiIQy8c9UC0UJC_UZ2