Skip to content

Migrate a codelab from claat

1. Overview

claat, Google's codelab tool, is archived and no longer maintained. Good news: labforge reads almost the same Markdown, and publishes each lab at the same /<id>/ URL.

In this lab, you will migrate a claat codelab step by step.

2. Get the Markdown source

If your codelab is already written in claat Markdown, copy it into your labs folder:

labs/
└── first-web-app/
    ├── first-web-app.md
    └── img/

If it lives in Google Docs, export it one last time with claat:

claat export -f md <google-doc-id>

3. Convert the metadata

claat reads its metadata from key: value lines at the top of the file:

summary: Build your first web app
id: first-web-app
categories: Web, Cloud
status: Published
authors: Jane Doe
feedback link: https://github.com/acme/codelabs/issues

labforge uses a YAML frontmatter instead. Wrap the block between --- lines and adjust a few fields:

---
id: first-web-app
title: Build your first web app
summary: Build your first web app
categories: [Web, Cloud]
status: published
authors: [Jane Doe]
feedback: https://github.com/acme/codelabs/issues
---
claat labforge
Web, Cloud [Web, Cloud]
Published published
feedback link feedback
# Title only title field

4. Adapt the content

Steps (## Title) and Duration: mm:ss lines work as they are. labforge does not render raw HTML, so replace claat's info boxes with blockquotes:

> **Tip:** run the tests before deploying.

Also remove the <!-- ---- --> separators between steps, and rewrite durations given in minutes only: Duration: 5 becomes Duration: 5:00.

5. Preview and fix

Start the dev server:

npx labforge serve labs

labforge validates every lab and points to the exact field to fix:

error: Invalid frontmatter in …/first-web-app.md:
  - status: Invalid option: expected one of "draft"|"published"

Fix the reported issues: the page reloads on every save.

6. Wrap up

Your codelab now builds with labforge, keeps its URL, and gains dark mode, saved progress and a catalog for free. Repeat for your other codelabs, then deploy.