diff --git a/.gitignore b/.gitignore
index 300d387baf..e5ff39fa6a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,8 @@ out
/.gradletasknamecache
**/*.flattened-pom.xml
+
+node
+node_modules
+package-lock.json
+package.json
diff --git a/pom.xml b/pom.xml
index ef96813dfd..8992991514 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,6 +69,7 @@
0.6.1
+ 0.0.4
1.6.2
1.5.1
0.0.6
diff --git a/spring-ai-docs/pom.xml b/spring-ai-docs/pom.xml
index 56112e04de..04f019992e 100644
--- a/spring-ai-docs/pom.xml
+++ b/spring-ai-docs/pom.xml
@@ -12,6 +12,27 @@
+
+ io.spring.maven.antora
+ antora-maven-plugin
+ ${io.spring.maven.antora-version}
+ true
+
+ src/main/antora/antora-playbook.yml
+
+
+
+ io.spring.maven.antora
+ antora-component-version-maven-plugin
+ ${io.spring.maven.antora-version}
+
+
+
+ antora-component-version
+
+
+
+
org.asciidoctor
asciidoctor-maven-plugin
diff --git a/spring-ai-docs/src/main/antora/antora-playbook.yml b/spring-ai-docs/src/main/antora/antora-playbook.yml
new file mode 100644
index 0000000000..9f6019df2d
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/antora-playbook.yml
@@ -0,0 +1,37 @@
+# PACKAGES antora@3.2.0-alpha.2 @antora/atlas-extension:1.0.0-alpha.1 @antora/collector-extension@1.0.0-alpha.3 @springio/antora-extensions@1.1.0-alpha.2 @asciidoctor/tabs@1.0.0-alpha.12 @opendevise/antora-release-line-extension@1.0.0-alpha.2
+#
+# The purpose of this Antora playbook is to build the docs in the current branch.
+antora:
+ extensions:
+ - '@antora/collector-extension'
+ - require: '@springio/antora-extensions/root-component-extension'
+ root_component_name: 'ai'
+site:
+ title: Spring AI Reference
+ url: https://docs.spring.io/spring-ai/reference
+content:
+ sources:
+ - url: ./../../../..
+ branches: HEAD
+ start_path: spring-ai-docs/src/main/antora
+ worktrees: true
+asciidoc:
+ attributes:
+ page-pagination: ''
+ hide-uri-scheme: '@'
+ tabs-sync-option: '@'
+ chomp: 'all'
+ extensions:
+ - '@asciidoctor/tabs'
+ - '@springio/asciidoctor-extensions'
+ sourcemap: true
+urls:
+ latest_version_segment: ''
+runtime:
+ log:
+ failure_level: warn
+ format: pretty
+ui:
+ bundle:
+ url: https://github.com/spring-io/antora-ui-spring/releases/download/v0.3.0/ui-bundle.zip
+ snapshot: true
\ No newline at end of file
diff --git a/spring-ai-docs/src/main/antora/antora.yml b/spring-ai-docs/src/main/antora/antora.yml
new file mode 100644
index 0000000000..29be701ec2
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/antora.yml
@@ -0,0 +1,12 @@
+name: ai
+version: true
+title: Spring AI
+nav:
+ - modules/ROOT/nav.adoc
+ext:
+ collector:
+ - run:
+ command: mvnw process-resources
+ local: true
+ scan:
+ dir: target/classes/antora-resources
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc
new file mode 100644
index 0000000000..338e20e272
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc
@@ -0,0 +1,8 @@
+* xref:index.adoc[Overview]
+* xref:domain/index.adoc[]
+** xref:domain/prompt.adoc[]
+* xref:prompt/index.adoc[]
+* xref:client/index.adoc[]
+** xref:client/usage.adoc[]
+* Appendices
+** xref:glossary.adoc[]
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/client/index.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/client/index.adoc
new file mode 100644
index 0000000000..c37018f08c
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/client/index.adoc
@@ -0,0 +1,3 @@
+= Configuring an AiClient
+
+TBD
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/client/usage.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/client/usage.adoc
new file mode 100644
index 0000000000..5659f0e49a
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/client/usage.adoc
@@ -0,0 +1,3 @@
+= Using AiClient
+
+TBD
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/domain/index.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/domain/index.adoc
new file mode 100644
index 0000000000..ad23dac83f
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/domain/index.adoc
@@ -0,0 +1,3 @@
+= The Domain Language of AI
+
+TBD
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/domain/prompt.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/domain/prompt.adoc
new file mode 100644
index 0000000000..0740ed88ee
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/domain/prompt.adoc
@@ -0,0 +1,7 @@
+= Prompt
+
+TBD
+
+== AiClient
+
+TBD
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/glossary.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/glossary.adoc
new file mode 100644
index 0000000000..f7661ad474
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/glossary.adoc
@@ -0,0 +1,3 @@
+[appendix]
+[glossary]
+= Glossary
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/index.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/index.adoc
new file mode 100644
index 0000000000..f20a922c3a
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/index.adoc
@@ -0,0 +1,3 @@
+= Spring AI
+
+Reference Documentation
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/prompt/index.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/prompt/index.adoc
new file mode 100644
index 0000000000..eb1c0d0b62
--- /dev/null
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/prompt/index.adoc
@@ -0,0 +1,3 @@
+= Creating a Prompt
+
+TBD