Skip to content

Next Steps#

Choose a learning path based on your goals and background.


Learning Paths#

I want to build AI-powered applications#

Path: AI Integration

  1. byLLM Quickstart - Basic LLM integration
  2. Structured Outputs - Type-safe AI responses
  3. Agentic AI - Tool calling and ReAct patterns

Key concept: The by llm() syntax lets you delegate function bodies to AI models. The compiler generates prompts from function names, parameter names, and type signatures. Use sem for additional semantic context.

def summarize(text: str) -> str by llm();
sem summarize = "Summarize the article in 2-3 sentences.";

I want to build full-stack web apps#

Path: Full-Stack Development

  1. Project Setup - Create a Jac web project
  2. React-Style Components - Build UI with JSX
  3. State & Effects - Reactive state management
  4. Backend Integration - Connect frontend to walkers
  5. Authentication - Add user login
  6. Routing - Multi-page apps

Key concept: Write frontend and backend in one file. The cl { } block marks client-side code.

# Backend
walker get_data {
    can fetch with Root entry {
        report {"message": "Hello from backend"};
    }
}

# Frontend
cl {
    def:pub app() -> JsxElement {
        data = root spawn get_data();
        return <div>{data}</div>;
    }
}

I want to learn the Jac language deeply#

Path: Core Language

  1. Jac Basics - Syntax and fundamentals
  2. Object-Spatial Programming - Nodes, edges, walkers
  3. Testing - Write and run tests

Key concept: Jac supersets Python and JavaScript, adding graphs as first-class citizens and walkers for graph traversal.

node Person { has name: str; }
edge Knows { has since: int; }

walker find_friends {
    can search with Person entry {
        friends = [here ->:Knows:->];
        report friends;
    }
}

I want to deploy to production#

Path: Production Deployment

  1. Local API Server - Run as HTTP server
  2. Deploy to Kubernetes - Scale with jac-scale

Key concept: One command transforms your Jac code into a production API with auto-provisioned infrastructure.

# Local development
jac start app.jac

# Production Kubernetes
jac start app.jac --scale

By Background#

Coming from Python#

You'll feel at home. Jac supersets Python.

What's different:

  • Braces { } instead of indentation
  • Semicolons ; required
  • Type annotations encouraged
  • New keywords: node, edge, walker, has, can

Start here: Jac Basics


Coming from JavaScript/TypeScript#

Jac's frontend syntax will look familiar (JSX-style).

What's familiar:

  • Braces and semicolons
  • JSX for components
  • React-like patterns (useState, useEffect)

What's different:

  • Python-based syntax for logic
  • No const/let - just variable assignment
  • Type annotations use : not TypeScript syntax

Start here: Full-Stack Setup


Coming from Other Languages#

Key concepts to learn:

  1. Python ecosystem - Jac uses Python libraries
  2. Graph thinking - Model data as nodes and edges
  3. Walker pattern - Computation that moves through data

Start here: Hello WorldBuild Your First App


Reference Documentation#

When you need details:

Resource Use For
Language Reference Complete syntax and semantics
CLI Reference All jac commands
Configuration jac.toml settings
byLLM Reference AI integration details
jac-client Reference Frontend framework
jac-scale Reference Production deployment

Learn by studying complete applications:

Example Description Difficulty
LittleX Twitter clone in 200 lines Intermediate
EmailBuddy AI email assistant Intermediate
RAG Chatbot Document Q&A with MCP Advanced
RPG Generator AI-generated game levels Advanced

Get Help#