A mobile-first, web-based presentation creator that replaces legacy desktop .pptx files with lightweight, interactive, mobile-optimized web pages.
Mobile Slide is designed primarily for people who need to present on mobile devices. Whether you're pitching an idea on your phone, presenting in a coffee shop, or sharing slides on a tablet, Mobile Slide creates beautiful, scrollable presentations optimized for mobile viewing and interaction.
- Mobile-First Design: Built from the ground up for mobile devices with touch-optimized interactions
- AI-Powered Generation: Create presentations from simple text prompts and images using LLM APIs
- Visual Style Presets: Choose from 11 curated themes with visual previews (Dark, Light, Specialty)
- Scroll-Triggered Animations: Smooth reveal animations as you scroll through slides
- Inline Editing: Edit slides directly without regenerating the entire deck
- Lightweight & Fast: No heavy desktop software required - everything runs in your browser
- Multi-Provider Support: Works with Claude (Anthropic), GPT (OpenAI), and Gemini (Google)
- Image Integration: Upload images from your camera roll and let AI map them to relevant slides
- Vertical Scrolling: Optimized for mobile vertical scrolling with smooth snap behavior
- Progress Tracking: Visual progress bar and thumbnail navigation
- Node.js 18+ and npm
- API key from one of the supported LLM providers (Claude, OpenAI, or Google)
- Clone the repository:
git clone https://github.com/Charleschtsoi/mobile_slide.git
cd mobile_slide- Install dependencies:
npm install- Set up environment variables:
cp .env.example .envEdit .env and add your API keys:
LLM_PROVIDER=claude # or 'gpt' or 'gemini'
CLAUDE_API_KEY=your_api_key_here
# or
OPENAI_API_KEY=your_api_key_here
# or
GOOGLE_API_KEY=your_api_key_here- Run the development server:
npm run dev- Open http://localhost:3000 in your browser on your computer
To view and test your presentation on a mobile device while running the dev server on your PC/MacBook:
Quick Method (macOS/Linux):
npm run get-ipThis will automatically detect and display your local IP address with the correct URL.
Manual Method:
On macOS:
ipconfig getifaddr en0
# or for Wi-Fi
ipconfig getifaddr en1On Linux:
hostname -I
# or
ip addr show | grep "inet " | grep -v 127.0.0.1On Windows:
ipconfig | findstr IPv4Look for the IPv4 address under your active network adapter (usually starts with 192.168.x.x or 10.x.x.x)
- Make sure your computer and mobile device are connected to the same Wi-Fi network
- Mobile data won't work - both devices must be on the same local network
- On your mobile device, open a web browser (Safari, Chrome, etc.)
- Enter the URL:
http://[YOUR_LOCAL_IP]:3000- Example: If your IP is
192.168.1.100, usehttp://192.168.1.100:3000
- Example: If your IP is
- The app should load on your mobile device!
Can't connect from mobile?
- ✅ Verify both devices are on the same Wi-Fi network
- ✅ Check that your computer's firewall allows connections on port 3000
- ✅ Make sure the dev server is running (
npm run dev) - ✅ Try accessing
http://localhost:3000on your computer first to confirm server is running - ✅ Double-check the IP address - it may change if you reconnect to Wi-Fi
Firewall Issues (macOS):
- System Preferences → Security & Privacy → Firewall
- Allow Node.js/Next.js through firewall if prompted
Firewall Issues (Windows):
- Windows Defender Firewall may block the connection
- Allow Node.js through firewall when prompted, or manually add port 3000
IP Address Changed?
- If you reconnect to Wi-Fi, your IP address may change
- Run the IP finder command again to get the new address
- Open the app on your mobile device
- Enter your presentation context - describe what you want to present (e.g., "Pitch for a new coffee shop in Mong Kok")
- Upload images from your camera roll (optional)
- Tap "Generate" to create your presentation
- View and present - swipe through your slides on any mobile device
- Frontend: Next.js 16 with React, Tailwind CSS, and Framer Motion
- Backend: Next.js API routes with LLM provider abstraction
- Validation: Zod schemas for type-safe deck structures
- Image Handling: Base64 encoding (extensible to cloud storage)
mobile_slide/
├── app/
│ ├── api/generate/ # API route for deck generation
│ └── page.tsx # Main entry point
├── components/
│ ├── creator/ # Creator UI components
│ ├── viewer/ # Viewer UI components
│ └── shared/ # Shared components
└── lib/
├── schemas/ # Zod validation schemas
└── utils/ # Utility functions
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Validation: Zod
Contributions are welcome! This is an open-source project designed to help people present effectively on mobile devices.
MIT
Built to replace legacy desktop presentation software with modern, mobile-first web technology.