Skip to main content

System requirements

RequirementVersion
Bun1.2.x (pinned via packageManager)
Node.js20+ (recommended for tooling compatibility)
Operating systemmacOS, Linux, or Windows
The monorepo pins Bun to 1.2.x. Running a different major version may cause lockfile or runtime incompatibilities. Check your version with bun --version before installing.

Installation paths

Development mode runs the full monorepo with hot reload. This is the recommended path for contributing to Slides or building on top of the source.1. Clone the repository
git clone https://github.com/rawr-ai/slides.git
cd slides
2. Install dependencies
bun install
Bun workspaces install dependencies for all apps (apps/web, apps/server) and packages (packages/api, packages/core, packages/config) in one step.3. Configure environment variables
cp apps/server/.env.example apps/server/.env
cp apps/web/.env.example apps/web/.env
Edit apps/server/.env to set your Anthropic API key and any other values. See the Environment variables section below for the full reference.4. Start the dev servers
bun run dev
The frontend runs at http://localhost:3001 and the backend at http://localhost:3000.

Environment variables

Server (apps/server/.env)

VariableRequiredDefaultDescription
PORTNo3000Port the server listens on
CORS_ORIGINNohttp://localhost:3001Allowed origin for CORS requests
DATA_DIRNo./data/slideshowsDirectory from which slideshow JSON files are loaded
ANTHROPIC_API_KEYYes (for AI)Anthropic API key. Required for AI assistant features
ANTHROPIC_MODELNoclaude-sonnet-4-20250514Anthropic model identifier
ANTHROPIC_MAX_TOKENSNo16384Maximum tokens per AI response
BETTER_AUTH_SECRETNoAuth secret (feature not yet implemented)
BETTER_AUTH_URLNoAuth URL (feature not yet implemented)

Web (apps/web/.env)

VariableRequiredDefaultDescription
VITE_SERVER_URLNohttp://localhost:3000URL of the backend server. Must be a VITE_ prefixed variable to be accessible in the browser
Never expose ANTHROPIC_API_KEY or other server secrets in the web app environment. Frontend variables must use the VITE_ prefix; all other vars remain server-side only.

Running tests

bun test
To filter tests to a specific path or pattern:
bun test --filter <path|pattern>
For example, to run only tests in the packages/core package:
bun test --filter packages/core

Building

bun run build
This runs the full TurboRepo build pipeline across all apps and packages. To force a clean build and bypass the Turbo cache:
TURBO_CACHE=0 bun run build

Type checking

bun run check-types
To isolate type errors to a single package (for example, @slides/core):
bun run check-types --filter @slides/core
Run bun run check-types, bun run build, and bun test before opening a pull request. These three commands are the local gate for CI.

Build docs developers (and LLMs) love