What is JOIP?
JOIP (Jerk Off Instruction Player) is a production-ready web application for creating and playing multimedia slideshows with AI-powered captions. Built with modern TypeScript architecture, it offers powerful tools for content creation, discovery, and community sharing.Quick Start
Get up and running in minutes with your first session
Installation
Complete installation guide for local and production environments
Environment Setup
Configure API keys and environment variables
API Reference
Explore the complete API documentation
Core Features
Session Management
Session Management
Create multimedia slideshows from Reddit content or personal uploads with customizable intervals, transitions, and AI-generated captions. Sessions can be shared publicly or kept private.Session Types:
- Reddit Sessions: Automatically fetch content from subreddits
- Manual Sessions: Upload personal images with custom captions
- Imported Sessions: Import from Imgchest with preserved order
Smart Captions
Smart Captions
AI-powered caption generation with multiple themed prompts including JOI, Beta, Cuckold, CBT, and Forced Bi. Supports batch generation and custom prompts with contextual narrative continuity.Features include:
- Multiple AI providers (OpenRouter, OpenAI)
- Client-side caption caching with 24-hour TTL
- Background caption pre-warming for reduced latency
- Custom prompt support with length and tone controls
Babecock Studio
Babecock Studio
Advanced image combination tool for creating split-screen compositions with automatic layout detection. Supports Reddit integration for sourcing images and direct uploads.Capabilities:
- Automatic side-by-side or top-bottom arrangements
- Real-time preview with customizable layouts
- Smart pairing algorithm for optimal composition
- Remix functionality to swap images
Content Discovery
Content Discovery
Gaslighter: Interactive Reddit browser with content swapping between subreddits, autoscroll, and infinite loading.Scroller: Enhanced Reddit browsing with customizable feeds, autoscroll speed controls, and favorite subreddit management.Community Feed: Discover sessions and media shared by the community with filtering, search, and save-to-library features.
Media Vault
Media Vault
Centralized storage for user-uploaded and generated content with cloud storage via Supabase. Features include:
- Bulk operations and downloads
- Public/private sharing with unique codes
- Usage tracking and statistics
- Automatic organization in user-specific subfolders
Technology Stack
Frontend
React 18 with TypeScript
Vite for fast development
Tailwind CSS + Radix UI components
TanStack React Query for state management
React Hook Form + Zod validation
Vite for fast development
Tailwind CSS + Radix UI components
TanStack React Query for state management
React Hook Form + Zod validation
Backend
Express.js with TypeScript
Drizzle ORM with PostgreSQL
Passport.js authentication
Multer + Sharp for image processing
OpenRouter/OpenAI for AI features
Drizzle ORM with PostgreSQL
Passport.js authentication
Multer + Sharp for image processing
OpenRouter/OpenAI for AI features
Database
PostgreSQL with comprehensive constraints
Neon serverless PostgreSQL
Connection pooling with health monitoring
36 total constraints for data integrity
Neon serverless PostgreSQL
Connection pooling with health monitoring
36 total constraints for data integrity
Storage & Auth
Supabase Storage for cloud files
Replit OIDC for production auth
Local development strategy
Session management with secure cookies
Replit OIDC for production auth
Local development strategy
Session management with secure cookies
Key Capabilities
AI Integration
Multiple AI providers with automatic fallback, themed prompt engineering, and xAI image edits for advanced features
Real-time Updates
Live analytics, comprehensive usage tracking, and audit logging for all user interactions
Security
Role-based access control, rate limiting with token bucket algorithm, and comprehensive input validation
Scalability
Connection pooling, health monitoring, and optimized database queries with indexes
Developer API
Programmatic access to sessions, captions, and other features (Early Access)
Community
Share sessions publicly, discover content, and save community creations to your library
Architecture Highlights
The application follows a monorepo structure with shared TypeScript types between client and server:- Centralized Schema: All database schemas and validation in
shared/schema.tsusing Drizzle + Zod - Storage Abstraction: Database operations centralized in
server/storage.tsimplementing anIStorageinterface - Dynamic Authentication: Replit OIDC for production, local strategy for development
- Cloud-First Storage: Supabase Storage with automatic bucket initialization (no local filesystem dependency)
- Comprehensive Tracking: All user interactions logged via
server/usageTracking.ts
JOIP runs on port 5000 by default. The server serves both the API (under
/api) and the built client application in production.Development Workflow
Coming Soon
Joip API
Enhanced programmatic access to Smart Captions, Beta Censoring, and webhook support
Mobile Apps
Native mobile applications for iOS and Android