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 with automatic prompt generation from type signatures and docstrings.

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

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() -> any {
        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 is a superset of Python and TypeScript/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 is a Python superset.

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 WorldYour First Full-Stack AI 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#