Prerequisites
Before you begin, ensure you have:- Node.js 20+ installed
- PostgreSQL database (local or cloud)
- Reddit API credentials (Get them here)
- Supabase account for file storage (Sign up)
Quick installation
Configure environment
Create a
.env file in the project root:See the Environment Setup guide for complete configuration options.
Start development server
Create your first session
Now that you’re set up, let’s create a multimedia session with AI-generated captions.Reddit-based session
Configure your session
Fill in the session details:
- Title: My First JOIP Session
- Subreddits:
pics,aww(comma-separated) - Interval: 5-10 seconds (how long each image displays)
- Transition: Fade
- Caption Theme: JOI (or choose your preference)
Manual session
Prefer to upload your own images? Create a custom session:Upload images
- Drag and drop images, or click to browse
- Paste images from clipboard
- Add up to 100 images (100MB each max)
Write captions
For each slide, write your custom caption (no character limit, but keep under 500 for best display)
Enable AI features (Optional)
To use AI caption generation and Smart Captions, add AI provider keys:- OpenRouter (Recommended)
- OpenAI
Explore features
Now that you have your first session, explore these features:Smart Captions
Generate AI captions for any image with customizable themes and styling
Babecock Studio
Combine images with automatic layout detection
Media Vault
Manage your uploaded files in a centralized library
Community
Discover and share sessions with the community
Common issues
Database connection fails
Database connection fails
Cause: Invalid
DATABASE_URL or database not runningSolution:- Verify your database is running:
pg_isready - Check connection string format:
postgresql://user:password@host:5432/database - Ensure database exists:
createdb joip
Reddit API returns 401 errors
Reddit API returns 401 errors
Cause: Invalid Reddit credentialsSolution:
- Verify credentials at reddit.com/prefs/apps
- Ensure you’re using the correct client ID and secret
- Check that your app type is “web app” or “script”
Images fail to upload
Images fail to upload
Cause: Supabase Storage not configured or credentials invalidSolution:
- Verify Supabase project URL and keys
- Create
user-mediaandgeneralbuckets in Supabase - Set bucket policies to public
- Check storage diagnostics:
GET /api/storage/status
AI captions not generating
AI captions not generating
Cause: Missing AI provider keys or content policy rejectionSolution:
- Add
OPENROUTER_API_KEYorOPENAI_API_KEYto.env - Restart the server
- Check server logs for API errors
- Try a different caption theme
Next steps
Installation Guide
Complete installation instructions for all environments
Environment Setup
Comprehensive environment variable reference
API Documentation
Explore the REST API for programmatic access
Deployment Guide
Deploy to Replit for production use