Repository navigation
Home

Build once, experience everywhere, from zero. In this course you build Bookshelf, a small catalog of books and authors, the Caligrafy way: every feature is written once, as a capability, and every experience of the application uses it: web pages, a REST API for other programs, AI agents such as Claude, a Vue app, and an app for phones and tablets. The same rules, the same permissions and the same audit log everywhere. And it ends on the internet: the last lesson puts Bookshelf online, so you go from an idea to an application anyone can open.
In a hurry? The Quickstart with Claude takes an idea of yours to an application online in one conversation (
/caligrafy-quill:idea). This course is the same journey, one step at a time, so that you understand and can change everything Claude does.
You need a little HTML, CSS, JavaScript, PHP and SQL. Everything else (Docker, Caligrafy, Pug, Vue, Vite, MCP) is explained when it first appears. You do not install PHP or MySQL: they run in Docker.
| Experience | What it does | Lesson |
|---|---|---|
| A catalog page and a page per book | browse, filter by author, add, edit, delete | 06 |
| A REST API |
GET /api/books, POST /api/books... for other programs |
07 |
| AI agent tools | Claude or Cursor search the catalog, add books, lend them | 08, 13 |
| A Vue "finder" app | search as you type | 09 |
| A phone and tablet app | installable, a list, a form and a page per book in one Vue app | 10 |
| People and permissions | sign in, administrators, scoped tokens for agents | 11 |
| Loans | one more feature, built once, in every experience at once | 13 |
| Online | Bookshelf on the internet at https://bookshelf-<you>.caligrafy.com, deployed from GitHub |
14 |
All of it on ten capabilities of a few dozen lines of PHP each.
Every lesson has the same structure:
- New concepts: what you are about to use, and why.
-
Manual track: numbered steps. Each step says what to type or which file to write (complete, no
...), what you should see, and how to check it. Do this track first: it is how you learn. - If it doesn't work: the real errors of that step and their fix.
-
With Claude: the exact prompt or plugin command for Claude Code (the
caligrafy-quillplugin ships inside every project), what Claude should do, and a Check list to review it. Use it on a second pass, or for a lesson you already understand. -
Checkpoint: a commit and a git tag (
lesson-05...). The finished code of every lesson is in thecheckpoints/folder of the course repository. - A short quiz or exercise, with its solution under "Show the solution".
Part 0 - Start
- Lesson 00 - What you will build, and your tools
- Lesson 01 - Your project in one command
- Lesson 02 - Build once, seen three ways
Part 1 - Build once
- Lesson 03 - Your data: tables and models
- Lesson 04 - Your first capabilities
- Lesson 05 - Rules: adding, changing and deleting books
Part 2 - Experience everywhere
- Lesson 06 - Web pages
- Lesson 07 - The REST API
- Lesson 08 - AI agents
- Lesson 09 - A Vue app
- Lesson 10 - Phones and tablets
Part 3 - People and trust
Part 4 - Ship it
- Lesson 12 - Ship it: tests, review, doctor
- Lesson 13 - Capstone: one more feature, everywhere
- Lesson 14 - Put it online
Appendix - Under the hood (optional, any time after lesson 06; the exercise of B after lesson 13)
The course uses Caligrafy Quill 2.13.0: Route::page and Caligrafy's look (the master site.pug, layout.css
and look.css, 2.11.0 and later) for the pages of lesson 06, the list and its detail side by side (.cq-split,
2.12.0 and later) for the apps of lessons 09 and 10, and the production image and the deploy step of lesson
14 (2.4.0 and later). The full framework documentation is the
Caligrafy Quill wiki. This course replaces the older
caligrafy-course and
caligrafy-vue-course.
Part 0 - Start
- 00 What you will build, and your tools
- 01 Your project in one command
- 02 Build once, seen three ways
Part 1 - Build once
Part 2 - Experience everywhere
Part 3 - People and trust
Part 4 - Ship it
Appendix (optional)