Cookbook Projects

A self-contained, platform-agnostic project definition format. Define what your app is — generation tools produce native code for any platform.

What is a Cookbook Project?

A cookbook project is a directory containing a cookbook-project.json manifest and supporting files — recipes, resources, and context. Think of it like an Xcode project, but at a higher abstraction level.

The manifest is the single source of truth. It defines the complete project tree — components, dependencies, resources, and context. Files in the directory that aren't referenced in the manifest are ignored.

Recipes start from the cookbook when available — they're forked, customized for the project, and can be contributed back upstream. Resources like localization strings, icons, and app configs are defined in platform-neutral JSON that generates to native formats per platform.

Multi-Platform, Not Cross-Platform

The project format is platform-agnostic. The same project definition generates to Swift/SwiftUI on Apple, Kotlin on Android, C#/WinUI on Windows — native, best-of-class code for each platform. Not cross-platform lowest-common-denominator.

With agentic programming, the right constraints and instructions (recipes) can produce native code for any platform. The project defines what to build. The platform is a parameter at generation time.

Project Structure

my-app-cookbook-project/
├── cookbook-project.json        ← the manifest
├── app/
│   ├── app.md                  ← recipe: app entry point
│   └── document-window/
│       ├── document-window.md  ← recipe: main window
│       ├── toolbar/
│       │   └── toolbar.md
│       └── editor/
│           └── editor.md
├── resources/
│   ├── app-config.json         ← generates to Info.plist, AndroidManifest, etc.
│   ├── app-icon.json           ← generates to .xcassets, drawable/, etc.
│   └── strings.json            ← generates to .strings, .xml, .resx, etc.
└── context/
    ├── decisions/              ← architectural decisions
    ├── research/               ← design research and evaluations
    └── notes/                  ← project notes

The Manifest

The cookbook-project.json file defines the entire project as a hierarchical tree of components:

{
  "type": "cookbook-project",
  "schema_version": "1.0.0",
  "name": "My Document Editor",
  "platforms": ["ios", "macos", "windows"],
  "cookbook": {
    "repo": "https://github.com/agentic-cookbook/cookbook",
    "version": "1.0.0"
  },
  "components": {
    "app": {
      "recipe": "app/app.md",
      "components": {
        "document-window": {
          "recipe": "app/document-window/document-window.md",
          "source": {
            "domain": "agentic-cookbook://recipes/ui/windows/document-window",
            "version": "1.0.0"
          },
          "components": {
            "toolbar": { "recipe": "app/document-window/toolbar/toolbar.md" },
            "editor": {
              "recipe": "app/document-window/editor/editor.md",
              "depends-on": ["app.document-window.toolbar"]
            }
          }
        }
      }
    }
  }
}

Key Concepts

Components

Named nodes in a tree. Each has a recipe (markdown spec), optional resources, and nested children. A component without a recipe is a grouping node.

Resources

Platform-agnostic definitions — localization, icons, app config, sounds, data. JSON files that generate to native formats per platform.

Context

Research, decisions, and notes. Not generated to code, but provides background for the LLM.

Provenance

Recipes forked from the cookbook track their source domain and version. Tools can diff against the original for contribution back.

Lifecycle

  1. Create — Describe what you want to build. A tool scaffolds the project, pulling starter recipes from the cookbook.
  2. Refine — Iterate on the definition. Add components, customize recipes, add resources and context.
  3. Generate — Tools read the manifest and produce native code for target platforms.
  4. Iterate — Run, test, refine the generated code. Port improvements back to the project recipes.
  5. Contribute — Push improved recipes back to the cookbook via the existing contribution workflow.

Resource Types

TypeDescriptionGenerates to
localizationTranslated UI strings.strings (Apple), .xml (Android), .resx (Windows)
asset-catalogImages, icons, color sets.xcassets (Apple), drawable/ (Android)
app-manifestApp identity & capabilitiesInfo.plist, AndroidManifest.xml, Package.appxmanifest
soundAudio assetsPlatform-native audio formats
dataStatic data filesBundled as-is or transformed per platform