ddd-vuelisted
Install: claude install-skill salimramirez/agent-skills
# DDD in Vue
Structure a **Vue** app around a domain. Start with the honest part below — DDD on the frontend is *adapted*, not the same as on the backend — then apply the structure and the idioms in the references.
This is an **opinionated** house style: for every decision it names one convention and says what that convention buys, rather than listing options. It is one coherent way to do this, not the only correct one; where a choice is genuinely open, the reference says so. Examples use the **QuickBite** food-delivery domain, in an `ordering` bounded context.
The idioms are Vue 3 with `<script setup>`, Pinia, Vue Router and axios, written in **JavaScript with JSDoc** rather than TypeScript. JSDoc is not decoration here — with no compiler in the picture, it is where the shape of every class, store and function is written down.
## What DDD means on the frontend
The backend is the **system of record**: it owns the business rules, the invariants, and the transactional consistency. The frontend cannot enforce those — a determined user can bypass any client-side check — so it should not pretend to.
What the frontend *does* gain from DDD is **structure**: organizing the app by the domain (not by technical type), speaking the same **ubiquitous language** as the backend and the experts, keeping a client-side model of the domain separate from the UI, and pushing logic out of components. So treat what follows as **DDD-inspired organization**, not as a place to re-enforce busines