# Easy-Vibe: a VitePress textbook for learning AI coding by shipping real projects

> Easy-Vibe is Datawhale's open textbook for AI-native product builders, published as a VitePress site with interactive tutorials and four example projects. It is a course, not a library, and its CC BY-NC-SA 4.0 licence decides who can reuse it.

**datawhalechina/easy-vibe** — 💻  vibe coding 101｜The first course for AI-native product builders.

- Repository: https://github.com/datawhalechina/easy-vibe
- Website: https://datawhalechina.github.io/easy-vibe/
- Stars: 19,573 · Forks: 1,871
- Language: JavaScript
- License: not declared
- Published: 2026-09-09 · Updated: 2026-09-09 · Language: en
- Canonical page: https://hysenlabs.com/projects/datawhalechina-easy-vibe

## What Easy-Vibe solves, and who it is actually written for

Most people meeting an AI coding assistant for the first time do not fail at syntax. They fail at the loop: what to ask, how to judge the answer, and when to stop prompting and start reading the generated code. Easy-Vibe is a course built around that loop. The README frames it as "Learn AI coding from zero by shipping real products," and the repository is organised as a textbook rather than a toolkit. The README's own audience section separates learners into beginner entry, junior and mid-level developers, and advanced developers, which tells you the authors expect a mixed room rather than a single skill level.

The repository is primarily JavaScript because the site itself is built with VitePress, not because the course teaches JavaScript. The examples directory contains four projects, trae-3d-block-game, trae-block-game, trae-linear-dashboard and trae-screenshot-demo, which is where the "shipping real products" claim gets its concrete form. The topics list names the assistant ecosystem the course assumes: agent, mcp, gpt, gemini, deepseek, openai, vscode, nextjs, low-code, no-code. If you are looking for a library that wraps a model provider, this is the wrong repository. If you are looking for a syllabus, it is the right one.

## How the course is packaged: VitePress, locale builds and interactive appendices

The site is a VitePress project rooted at docs/. The package.json scripts confirm the shape: dev runs vitepress dev docs, build runs node scripts/build-locales.mjs, and build:single runs the sitemap generator and then a VitePress build with an increased Node heap. That locale build script is the interesting part. Rather than one monolithic site, the project generates per-language builds, and the README links ten README translations under docs-readme/ covering English, Simplified and Traditional Chinese, Japanese, Korean, Spanish, French, Arabic, Vietnamese and German. The README states the tutorial supports 10 languages.

Interaction is the second layer. The README points to an interactive tutorial at the appendix path and describes four kinds of embedded component: a simulated IDE with virtual mouse guidance, an animated diffusion explanation, a clickable RAG data-flow demo, and a visualised terminal. Those are custom Vue components inside the VitePress theme, which is why lint targets docs/.vitepress/theme specifically. The teaching method here is visual and click-driven, and the README's own framing ("stop learning and forgetting") makes clear the authors are optimising for retention over reference density.

Deployment is deliberately boring. The Dockerfile is a two-stage build: node:20-alpine runs npm ci and npm run build, then nginx:alpine serves the compiled output from /usr/share/nginx/html, with nginx.conf listening on port 7860 because the target platform requires that port. There is also a vercel.json and an ms_deploy.json, so the same static output is pushed to more than one host. Nothing here runs at request time.

## Running Easy-Vibe locally and reading your first lesson

There is nothing to install as a dependency, because Easy-Vibe is a documentation site. You clone it and run the VitePress dev server. The package.json engines field requires Node 18 or later, and the dev script points VitePress at the docs directory.

```bash
git clone https://github.com/datawhalechina/easy-vibe.git
cd easy-vibe
npm ci
npm run dev
```

VitePress prints a local URL in the terminal; opening it gives you the course with hot reload, so you can read the Markdown in docs/ and watch the rendered page change. If you only want to read the course, skip all of this and use the hosted site the README links, which is the faster path for a first pass.

To produce the static output yourself, the build script goes through the locale generator rather than calling VitePress directly:

```bash
npm run build
npm run preview
```

The build script is scripts/build-locales.mjs, and a --force variant exists as build:force for regenerating locales from scratch. The preview command serves the compiled result so you can check a page before pushing. For a containerised run, the Dockerfile builds the same output and serves it on port 7860, which matters if you are deploying to the platform the Dockerfile comments name.

A sensible first exercise is to open one of the four example projects under examples/, read its structure alongside the corresponding lesson, and then reproduce a smaller version with your own assistant. That is the intended use: the examples are worked answers, not templates to fork.

## Where Easy-Vibe stops being useful

The licence is the first boundary. The repository badge and package.json both give CC-BY-NC-SA-4.0, and the NonCommercial clause means you cannot fold this material into a paid course or an internal commercial training deck without checking what that clause permits in your jurisdiction. I am not giving legal advice; the point is that the licence is a real constraint on reuse, and it is easy to miss because the repository looks like ordinary documentation.

The second boundary is the audience ceiling. The README's own study suggestions split into beginner, junior and mid-level, and advanced. An experienced engineer who already ships with an agent will find the early sections slow, and the repository offers no reference material aimed at them beyond the advanced track. The README does not document how much of the advanced track is written versus planned, so treat the study-suggestion headings as a table of contents, not a guarantee of depth.

Third, there is no API, no CLI and no package to depend on. If your actual problem is wiring a model provider into a build pipeline, Easy-Vibe cannot help, and no amount of reading it will produce that integration. It teaches a workflow; it does not implement one.

Finally, the maintenance signal is mixed. The last push was on 2026-08-25, and v0.4.0 was released on 2026-08-07, so the project is moving, but the repository is a course and its content ages with the assistants it describes. A lesson written around one assistant's interface can read oddly six months later, and the README does not describe a content-deprecation policy.

## Easy-Vibe compared with a general prompt-engineering guide

The obvious alternative is a written guide to prompting a coding assistant, of which there are many. The difference is the unit of instruction. A prompt guide teaches you to produce a better prompt; Easy-Vibe teaches you to produce a product, and the prompt is one step inside that. Its interactive components exist because the authors assume a reader who has never seen a terminal, so the terminal lesson visualises what a command does rather than listing commands to memorise.

That choice has a cost. A prompt guide can be read in twenty minutes and skimmed for the one technique you need. Easy-Vibe is a linear course with a learning map, and the README's study suggestions assume you follow a track. If your goal is a single technique, the course format is overhead.

The other realistic comparison is the project's own sibling: the README links a separate repository, datawhalechina/hello-claw, described as "Learn OpenClaw." That suggests Datawhale splits its teaching by tool rather than maintaining one omnibus course, so if the tool you actually use has its own repository in that family, start there and come back to Easy-Vibe for the general workflow.

## Upgrade cost and what the build actually requires

Upgrading Easy-Vibe means pulling the repository, because there is no installed artefact. The cost is in the toolchain rather than the content: the build script runs a locale generation step before VitePress, and build:single raises the Node heap to 8192 MB, which is a hint that a full build is memory-hungry on a small machine. The Dockerfile sidesteps that by building inside node:20-alpine and shipping only static files, which is the cheaper option if you are redeploying rather than editing.

The test setup is worth noting before you contribute. The test script runs node --test over every *.test.js file found under docs and scripts, and test:coverage enforces 100 percent line, branch and function coverage. A pull request that adds a script without tests will fail that gate. There is also a husky prepare hook and a prettier format script, so the repository expects formatting to be applied before commits land.

The licence question does not go away on upgrade. CC-BY-NC-SA-4.0 is a share-alike licence, so translations and derivative course material carry the same terms. That is consistent with a community textbook and awkward for anyone hoping to build a commercial product on top of it.

## Conclusion

Adopt Easy-Vibe if you are teaching yourself or a group to build with AI assistants and you want a structured, illustrated path rather than scattered videos; its interactive appendix and example projects are the parts worth working through in order. Do not adopt it if you need a library to import, an API to call, or commercially reusable teaching material, because the licence is CC BY-NC-SA 4.0 and there is no package to install. Before committing, open the hosted site at datawhalechina.github.io/easy-vibe/welcome.html, confirm the language track you need exists in docs-readme/, and check whether the appendix topic you care about is covered in your language.

## FAQ

### What exactly is Easy-Vibe?

It is Datawhale's open textbook for AI-native product builders, published as a VitePress site with interactive tutorials and four example projects under examples/. The README describes it as a course for learning AI coding from zero by shipping real products.

### How much does Easy-Vibe cost?

The repository is free to read and is licensed CC-BY-NC-SA-4.0, which permits non-commercial sharing and adaptation with attribution and the same licence. There is no paid tier described in the README.

### What is Easy-Vibe used for?

It is used as a structured learning path for building products with AI coding assistants, with separate tracks for beginners, junior and mid-level developers, and advanced developers. The README also points to an interactive tutorial in the appendix.

### What is an example of an Easy-Vibe project?

The examples directory contains trae-3d-block-game, trae-block-game, trae-linear-dashboard and trae-screenshot-demo. These are the worked projects the course uses to illustrate shipping something real.

## Sources

- [datawhalechina/easy-vibe on GitHub](https://github.com/datawhalechina/easy-vibe)
- [Issues](https://github.com/datawhalechina/easy-vibe/issues)
- [Project website](https://datawhalechina.github.io/easy-vibe/)
- [README](https://github.com/datawhalechina/easy-vibe/blob/main/README.md)
- [Releases](https://github.com/datawhalechina/easy-vibe/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/datawhalechina-easy-vibe
