Skip to content

rawr-ai/slides

Repository files navigation

Slides

A high-performance, AI-assisted presentation editing platform built with React 19, Elysia, and TypeScript.

🚀 Quick Start

Prerequisites

  • Bun (v1.0+)
  • Node.js (v20+)

Installation

# Install dependencies
bun install

Environment Setup

# Copy environment templates
cp apps/server/.env.example apps/server/.env
cp apps/web/.env.example apps/web/.env

Required: Set ANTHROPIC_API_KEY in apps/server/.env for AI assistant features.

Running Locally (Development)

# Start both Frontend and Backend
bun run dev

Standalone Binary

For portable deployment without installing dependencies, use the standalone binary.

From Pre-built Archive

# Download and extract
tar -xzf slides.tar.gz
cd slides

# Run with default settings (uses bundled data)
./slides --port 4000

# Run with custom slideshow directory
./slides --data-dir /path/to/slideshows --port 4000

# Run with AI assistant enabled
./slides --api-key sk-ant-xxx --port 4000 --open

# Optional one-time setup: save defaults + install launcher
./slides --init --data-dir /path/to/slideshows --port 4000 --api-key sk-ant-xxx
# After init, you can just run `slides` if the launcher was installed into your PATH.

Building from Source

# Clone and install
git clone <repo-url>
cd slides
bun install

# Build standalone binary + archive
cd apps/server
bun run compile:standalone

# Output: dist-standalone/slides.tar.gz (~23MB; slides.zip on Windows)

CLI Options

Flag Description Default
--port <n> Server port 3000
--data-dir <path> Slideshow JSON directory ./data/slideshows
--api-key <key> Anthropic API key for AI features (none)
--open Open browser on start false
--init Save defaults to config + try installing launcher -
--install-path <path> Custom install dir for launcher symlink auto-detected
--help Show help -

Saved defaults live in ~/.config/slides/config.json (or %APPDATA%\slides\config.json on Windows) and are used when flags/env are not provided. Flags still win over saved config. To change defaults later, re-run slides --init with new values or edit that config file directly.

Directory Structure

slides/
├── slides               # Binary (launcher name)
├── web/                 # Web assets (must be colocated)
└── data/slideshows/     # Default slideshows
    └── default.json

You can use the bundled data/slideshows/ or point to your own directory with --data-dir.

Running Tests

# Run all tests
bun test

📚 Documentation

We maintain comprehensive documentation in the docs/ directory.

Start here:

  • Product: What this is and why it exists.
  • System: High-level architecture and technical overview.
  • Process: How we work (PRs, Linear, maintenance).

Deep dives:

Meta:


🏗️ Project Structure

.
├── apps/
│   ├── web/             # Frontend (React, TanStack Router)
│   └── server/          # Backend (Elysia, ORPC)
├── packages/
│   ├── api/             # Shared API definition
│   ├── config/          # Shared TS config
│   └── core/            # Core domain logic
└── docs/                # Documentation

🛠️ Tech Stack

  • Runtime: Bun
  • Monorepo: TurboRepo
  • Frontend: React 19, TanStack Router, TanStack Query, TailwindCSS v4
  • Backend: Elysia, ORPC
  • Validation: Zod, TypeBox

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published