Define a small, realistic app scope with clear data contracts and a testable core.
Building a full-stack app is where “Clojure fundamentals” become engineering habits: data contracts, boundaries, and a workflow that stays debuggable as features accumulate.
This section defines a realistic scope—small enough to finish, but large enough to exercise real concerns: validation, persistence, errors, background work, and UI integration.
For Java engineers, the key idea is to express requirements as data and transformations, not as a growing object graph.