JK
JustKalm
Engineering Productivity

Developer Experience

Zero-friction development with one-command setup, live reload, and integrated debugging for maximum developer productivity.

< 5 min

Setup Time

< 200ms

Hot Reload

4 min

CI Feedback

9.2/10

Dev Satisfaction

One-Command Setup

Complete development environment in under 5 minutes with automatic dependency management.

# Quick Start
git clone https://github.com/justkalm/justkalm.git
cd justkalm
make dev

# That's it! 🚀
# Services available at:
# - Frontend: http://localhost:3000
# - API:      http://localhost:8000
# - Docs:     http://localhost:8000/docs
# - DB Admin: http://localhost:8080

Makefile Commands

# Makefile
.PHONY: dev setup test lint clean

dev: setup
	@echo "Starting development environment..."
	docker compose up -d postgres redis
	@sleep 3
	docker compose up -d --build

setup:
	@echo "Installing dependencies..."
	pnpm install
	cd backend && pip install -e ".[dev]"
	@make migrate

test:
	@echo "Running tests..."
	cd backend && pytest -v --cov=src
	pnpm test

lint:
	@echo "Running linters..."
	cd backend && ruff check . && mypy .
	pnpm lint

migrate:
	cd backend && alembic upgrade head

seed:
	cd backend && python -m scripts.seed_data

clean:
	docker compose down -v
	rm -rf node_modules .venv __pycache__

Docker Compose Stack

# docker-compose.yml
version: "3.9"

services:
  frontend:
    build:
      context: ./frontend/console
      dockerfile: Dockerfile.dev
    volumes:
      - ./frontend/console:/app
      - /app/node_modules
    ports:
      - "3000:3000"
    environment:
      - NEXT_PUBLIC_API_URL=http://localhost:8000
    depends_on:
      - api

  api:
    build:
      context: ./backend
      dockerfile: Dockerfile.dev
    volumes:
      - ./backend:/app
    ports:
      - "8000:8000"
    environment:
      - DATABASE_URL=postgresql://dev:dev@postgres:5432/justkalm
      - REDIS_URL=redis://redis:6379
      - ENVIRONMENT=development
      - DEBUG=true
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_started

  postgres:
    image: postgres:16-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=dev
      - POSTGRES_PASSWORD=dev
      - POSTGRES_DB=justkalm
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dev"]
      interval: 5s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

  adminer:
    image: adminer
    ports:
      - "8080:8080"
    depends_on:
      - postgres

volumes:
  postgres_data:
  redis_data:

Local Service Architecture

Frontend

:3000

Next.js 16

API Server

:8000

FastAPI

PostgreSQL

:5432

v16 Alpine

Redis

:6379

v7 Alpine

Adminer

:8080

DB Admin

MailHog

:8025

Email Testing

MinIO

:9000

S3 Compatible

Jaeger

:16686

Tracing UI

Start Building Today

From clone to first commit in under 5 minutes.

One-Command Setup200ms Hot Reload9.2/10 Dev Satisfaction