Skip to main content
JOIP Hero Light

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.

Core Features

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
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
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
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.
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

Backend

Express.js with TypeScript
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

Storage & Auth

Supabase Storage for cloud files
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.ts using Drizzle + Zod
  • Storage Abstraction: Database operations centralized in server/storage.ts implementing an IStorage interface
  • 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

# Install dependencies
npm install

# Start development server (port 5000)
npm run dev

# Build for production
npm run build

# Run production server
npm start

# Type checking
npm run check

# Apply database migrations
npm run db:push

Coming Soon

Joip API

Enhanced programmatic access to Smart Captions, Beta Censoring, and webhook support

Mobile Apps

Native mobile applications for iOS and Android

Support & Resources

Age Restriction: JOIP is an adult (18+) application containing NSFW content. All documentation remains technical and avoids explicit content.