diff --git a/docs/template/build.mdx b/docs/template/build.mdx
index 8119f0b..588f95a 100644
--- a/docs/template/build.mdx
+++ b/docs/template/build.mdx
@@ -3,12 +3,14 @@ title: "Build"
description: "How to build the template"
---
-Configure the build process:
+## Build and wait for completion
+
+The `build` method builds the template and waits for the build to complete. It returns build information including the template ID and build ID.
```typescript JavaScript & TypeScript wrap
-Template.build(template, {
+const buildInfo = await Template.build(template, {
alias: 'my-template', // Template alias (required)
cpuCount: 2, // CPU cores
memoryMB: 2048, // Memory in MB
@@ -17,10 +19,12 @@ Template.build(template, {
apiKey: 'your-api-key', // Override API key
domain: 'your-domain', // Override domain
})
+
+// buildInfo contains: { alias, templateId, buildId }
```
```python Python wrap
-Template.build(
+build_info = Template.build(
template,
alias="my-template", # Template alias (required)
cpu_count=2, # CPU cores
@@ -30,6 +34,139 @@ Template.build(
api_key="your-api-key", # Override API key
domain="your-domain", # Override domain
)
+
+# build_info contains: BuildInfo(alias, template_id, build_id)
+```
+
+
+
+## Build in background
+
+The `buildInBackground` method starts the build process and returns immediately without waiting for completion. This is useful when you want to trigger a build and check its status later.
+
+
+
+```typescript JavaScript & TypeScript wrap
+const buildInfo = await Template.buildInBackground(template, {
+ alias: 'my-template',
+ cpuCount: 2,
+ memoryMB: 2048,
+})
+
+// Returns immediately with: { alias, templateId, buildId }
+```
+
+```python Python wrap
+build_info = Template.build_in_background(
+ template,
+ alias="my-template",
+ cpu_count=2,
+ memory_mb=2048,
+)
+
+# Returns immediately with: BuildInfo(alias, template_id, build_id)
+```
+
+
+
+## Check build status
+
+Use `getBuildStatus` to check the status of a build started with `buildInBackground`.
+
+
+
+```typescript JavaScript & TypeScript wrap
+const status = await Template.getBuildStatus(buildInfo, {
+ logsOffset: 0, // Optional: offset for fetching logs
+})
+
+// status contains: { status: 'building' | 'ready' | 'error', logEntries: [...] }
+```
+
+```python Python wrap
+status = Template.get_build_status(
+ build_info,
+ logs_offset=0, # Optional: offset for fetching logs
+)
+
+# status contains build status and logs
+```
+
+
+
+## Example: Background build with status polling
+
+
+
+```typescript JavaScript & TypeScript wrap
+// Start build in background
+const buildInfo = await Template.buildInBackground(template, {
+ alias: 'my-template',
+ cpuCount: 2,
+ memoryMB: 2048,
+})
+
+// Poll for build status
+let logsOffset = 0
+let status = 'building'
+
+while (status === 'building') {
+ const buildStatus = await Template.getBuildStatus(buildInfo, {
+ logsOffset,
+ })
+
+ logsOffset += buildStatus.logEntries.length
+ status = buildStatus.status
+
+ buildStatus.logEntries.forEach(
+ (logEntry) => console.log(logEntry.toString())
+ )
+
+ // Wait for a short period before checking the status again
+ await new Promise(resolve => setTimeout(resolve, 2000))
+}
+
+if (status === 'ready') {
+ console.log('Build completed successfully')
+} else {
+ console.error('Build failed')
+}
+```
+
+```python Python wrap
+# Start build in background
+build_info = Template.build_in_background(
+ template,
+ alias="my-template",
+ cpu_count=2,
+ memory_mb=2048,
+)
+
+# Poll for build status
+import time
+
+logs_offset = 0
+status = "building"
+
+while status == "building":
+ build_status = Template.get_build_status(
+ build_info,
+ logs_offset=logs_offset,
+ )
+
+ logs_offset += len(build_status.log_entries)
+ status = build_status.status.value
+
+ for log_entry in build_status.log_entries:
+ print(log_entry)
+
+ # Wait for a short period before checking the status again
+ time.sleep(2)
+
+if status == "ready":
+ print("Build completed successfully")
+else:
+ print("Build failed")
```