AI-powered presentation editor with slide-by-slide editing and professional export capabilities.
- Node.js 20+
- PNPM (package manager)
# Install PNPM
npm install -g pnpm
# Clone and install
git clone <repository-url>
cd sliderium
pnpm install
# Approve native module builds
pnpm approve-builds
# Run database migrations
pnpm migration:run
# Start development servers
pnpm devAccess: Frontend at http://localhost:5173, Backend at http://localhost:5001
- 🤖 AI Generation: Claude-powered presentation creation
- ✏️ Slide-by-Slide Editing: Individual Monaco editors with real-time MARP preview
- 🖼️ Advanced Image Editor: Internet search with smart loading and fallback
- 📤 Multiple Export Formats: PDF, PowerPoint (.pptx), and HTML
- 💾 Data Persistence: SQLite database with TypeORM migrations
- 🔧 Professional Editor: Monaco with MARP syntax highlighting
- 🔔 Smart Notifications: react-hot-toast for user feedback
# Development
pnpm dev # Start both frontend and backend
pnpm dev:frontend # Frontend only (Vite dev server)
pnpm dev:backend # Backend only (NestJS)
# Building
pnpm build # Build all workspaces
pnpm build:shared # Build shared library
pnpm build:frontend # Build React app
pnpm build:backend # Build NestJS app
# Database
pnpm migration:run # Apply pending migrations
pnpm migration:generate # Generate new migration
pnpm migration:revert # Rollback last migration
# Production
pnpm start # Start production server
./deploy.sh # Deploy to productionMonorepo Structure (PNPM Workspaces):
sliderium/
├── apps/
│ ├── frontend/ # React + Vite + TypeScript
│ └── backend/ # NestJS + TypeORM + SQLite
├── libs/
│ └── shared/ # Shared types and utilities
└── configs/ # Production configurations
Tech Stack:
- Frontend: React 18, Vite, TailwindCSS, shadcn/ui, Monaco Editor, react-hot-toast
- Backend: NestJS, TypeORM, better-sqlite3, Anthropic Claude API, DuckDuckGo Images API
- Export: @marp-team/marp-cli for PDF/PowerPoint generation
Create .env in project root:
# Required for AI features
ANTHROPIC_API_KEY=your_anthropic_api_key
# Optional configurations
DATABASE_URL=file:./dev.db
PORT=5001See DEPLOYMENT.md for complete production setup guide including:
- Raspberry Pi deployment
- Nginx configuration
- PM2 process management
- SSL/TLS setup
TypeORM with SQLite:
- Automatic migrations in development
- Manual migrations in production for safety
- Entity definitions in
apps/backend/src/entities/ - Migration files in
apps/backend/src/migrations/
Quick Production Setup:
# Build everything
pnpm build
# Run migrations
pnpm migration:run
# Start with PM2
pm2 start ecosystem.config.js
# Deploy with script
./deploy.shSee DEPLOYMENT.md for complete Raspberry Pi production guide.
- Frontend: Uses Vite proxy to route
/apirequests to backend - Backend: NestJS with global
/apiprefix - Database: SQLite with TypeORM, better-sqlite3 driver
- Exports: Server-side PDF/PowerPoint generation via marp-cli
- Image Search: DuckDuckGo Images API with smart loading and fallback
- Notifications: react-hot-toast for user feedback and error handling
- Auth: Optional basic authentication for production
Sliderium - Modern presentation editing powered by AI ⚡
| 🚩 If you... | 🔢 Then bump... | 💡 Example |
|---|---|---|
| ❌ Broke compatibility (e.g., removed or changed API) | MAJOR |
v2.0.0 ← from v1.4.3 |
| ➕ Added a new feature, no breaking changes | MINOR |
v1.5.0 ← added export feature |
| 🐛 Fixed a bug, typo, or minor improvement | PATCH |
v1.4.4 ← fixed crash on login |