Complete user interface suite for StudioBot.ai with both web dashboard and desktop application.
ui/
├── web/ # Next.js web dashboard
├── desktop/ # Electron desktop application
└── shared/ # Shared components and utilities (future)
- Node.js 16+
- npm or yarn
- StudioBot API running on http://localhost:3000
cd ui/web
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
npm startAvailable at: http://localhost:3001
cd ui/desktop
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build and package for distribution
npm run electron-distTechnology Stack:
- Next.js 14 (React framework)
- TypeScript
- Tailwind CSS (styling)
- Zustand (state management)
- Axios (API client)
- React Hook Form (form management)
- Recharts (analytics charts)
Pages:
- 🔐 Authentication - Login/Register
- 📊 Dashboard - Overview and stats
- 🎬 Videos - Upload and manage videos
- ✂️ Clips - Create and manage clips
- 📱 Shorts - Generate shorts from clips
- 📈 Analytics - View performance metrics
- 🌍 Distribution - Publish to multiple platforms
Key Features:
- Real-time upload progress
- Video status tracking
- Clip generation interface
- Multi-platform distribution
- Analytics dashboard
- User authentication
Technology Stack:
- Electron (desktop framework)
- React 18
- TypeScript
- IPC for system integration
- Native file dialogs
Desktop-Only Features:
- 📂 Native file system access
- 🎥 Local video preview
- ⚡ Offline-capable architecture
- 🖥️ Native system integration
- 🔄 Batch upload capability
- 💾 Local cache and settings
Both applications connect to the StudioBot API:
Development: http://localhost:3000/api
Production: Configure via environment variables
Web Dashboard (.env.local):
NEXT_PUBLIC_API_URL=http://localhost:3000/apiDesktop (src/utils/config.ts):
const API_URL = process.env.REACT_APP_API_URL || 'http://localhost:3000/api';All pages are fully responsive:
- Desktop: Optimized for 1920x1080+
- Tablet: Optimized for 768px+
- Mobile: Optimized for 320px+
Shared components available:
Layout- Main layout wrapperButton- CTA buttonsCard- Content containersModal- Dialog modalsProgressBar- Upload progressStatusBadge- Status indicators
Both apps use token-based authentication:
- Register/Login via API
- Store JWT token in localStorage (web) or secure storage (desktop)
- Include token in all API requests
- Auto-logout on 401 response
Web: Zustand stores in /store
authStore- User authenticationvideoStore- Video managementuiStore- UI state
Desktop: Context API + custom hooks (recommended for Electron)
cd ui/web
# Build
npm run build
# Deploy to Vercel, Netlify, or any hosting
vercel deploycd ui/desktop
# Build executables for all platforms
npm run electron-dist
# Files will be in dist/ directoryconst { uploadVideo } = useVideo();
await uploadVideo(file, 'My Video', 'Description');const { createClip } = useClips();
await createClip(videoId, userId, 'Clip Title', 15, 45);const { publishContent } = useDistributions();
await publishContent(contentId, 'video', ['youtube', 'twitch']);- Hot reload enabled in dev mode
- TypeScript strict mode
- ESLint configured
- Tailwind CSS IntelliSense
- DevTools available in dev mode
- IPC logging available
- File system access through secure bridges
- Auto-updates ready (configure in Electron)
Web: Create Docker container
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN npm install && npm run build
EXPOSE 3001
CMD ["npm", "start"]Desktop: Uses electron-builder (Windows/Mac/Linux)
.exefor Windows.dmgfor macOS.AppImage/.debfor Linux
- Ensure backend is running on port 3000
- Check CORS settings in backend
- Verify API_URL environment variable
- Check file size limits (500MB max)
- Verify file format (video/* required)
- Check disk space
- Clear node_modules and reinstall
- Check Node version compatibility
- Install build tools for your platform
For issues with:
- Web Dashboard: Check Next.js documentation
- Desktop: Check Electron documentation
- API: Check StudioBot API documentation
Same license as StudioBot.ai main project