Skip to content

Kemma Local Development Setup Guide

This guide explains how to clone Kemma from GitHub and run it locally using Turborepo.


Prerequisites

Before you begin, ensure you have the following installed:

ToolVersionPurpose
Node.js20.0.0+JavaScript runtime
npm11.6.2+Package manager
Python3.13+Backend runtime
uvLatestFast Python package manager

Check Your Versions

bash
node --version   # Should be v20.x or higher
npm --version    # Should be v11.x or higher
python --version # Should be 3.13+

Step 1: Install Turborepo (if needed)

Turbo is included as a dev dependency in the project, so it will be installed automatically with npm install. However, you can also install it globally for convenience:

bash
npm install -g turbo

Verify the installation:

bash
turbo --version

Option B: Use npx (No Installation Required)

If you prefer not to install globally, you can run Turbo commands using npx:

bash
npx turbo dev

💡 Note: The project's package.json scripts already wrap Turbo commands, so npm run dev will work without a global installation.


Step 2: Clone the Repository

bash
git clone https://github.com/dhilsand/kemma.git
cd kemma

Step 3: Install Dependencies

Frontend Dependencies (via npm workspaces)

bash
npm install

This installs dependencies for:

  • Root workspace (including Turbo)
  • apps/web-client (React + Vite frontend)
  • apps/server (FastAPI backend Node dependencies, if any)

Backend Dependencies (Python)

bash
cd apps/server
uv sync
cd ../..

💡 Don't have uv? Install it with: pip install uv or pipx install uv


Step 4: Run the Development Server

Run Everything (Frontend + Backend)

From the project root:

bash
npm run dev

Or using Turbo directly:

bash
turbo dev

This starts both servers in parallel:

  • Frontend: http://localhost:5173
  • Backend: http://localhost:8000
  • API Docs: http://localhost:8000/docs

Run Individual Services

To run only the frontend:

bash
turbo dev --filter=web-client

To run only the backend:

bash
turbo dev --filter=server

Available Turbo Commands

CommandDescription
npm run devStart all services in development mode
npm run buildBuild all packages for production
npm run testRun all test suites
npm run lintLint all packages
npm run formatFormat all code with Prettier
npm run typecheckRun TypeScript + Pyright type checking
npm run checkRun typecheck + lint + test (CI validation)
npm run cleanClean all build artifacts

Troubleshooting

"turbo: command not found"

If you get this error, Turbo is not installed globally. You have two options:

  1. Install globally: npm install -g turbo
  2. Use npm scripts: Run npm run dev instead of turbo dev

Port Already in Use

If port 5173 or 8000 is busy:

bash
# Kill the process using the port (example for port 5173)
lsof -ti:5173 | xargs kill -9

Python Dependencies Issues

Make sure you're using uv for Python dependency management:

bash
pip install uv
cd apps/server
uv sync

Quick Start Summary

bash
# 1. Clone
git clone https://github.com/dhilsand/kemma.git
cd kemma

# 2. Install dependencies
npm install
cd apps/server && uv sync && cd ../..

# 3. Run
npm run dev

🎉 That's it! Open http://localhost:5173 in your browser to see Kemma.


Resources