Skip to content

Next Steps

Choose a learning path based on your goals and background.


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.";

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>;
}
}

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;
}
}

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

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


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


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


When you need details:

ResourceUse For
Language ReferenceComplete syntax and semantics
CLI ReferenceAll jac commands
Configurationjac.toml settings
byLLM ReferenceAI integration details
jac-client ReferenceFrontend framework
jac-scale ReferenceProduction deployment

Learn by studying complete applications:

ExampleDescriptionDifficulty
LittleXTwitter clone in 200 linesIntermediate
EmailBuddyAI email assistantIntermediate
RAG ChatbotDocument Q&A with MCPAdvanced
RPG GeneratorAI-generated game levelsAdvanced