Architecture
Backend vs client
Understand the responsibility split between Laravel and Nuxt.
Backend responsibility
The backend is the source of truth for:
- form schema and revisions
- validation rules
- publication windows and lifecycle state
- ownership and scoped routes
- response storage and export
public_urlresolution- submission protection and business rules
Client responsibility
The client is responsible for:
- rendering the current form or block
- collecting user input
- showing progress, previous, next, and submit controls
- builder editing UX
- standalone save/publish orchestration
- admin screens built on composables
Shared contract
Both packages work on the same schema shape. The client must not invent backend rules on its own, and the backend must not depend on client-specific UI state.
| Question | Owns it | Notes |
|---|---|---|
| Can this response be accepted? | Backend | Validation always happens on the server. |
| How should the form be displayed? | Client | Renderer and builder are presentation concerns. |
| Is the form publishable? | Backend | Publication is part of the form lifecycle. |
| Should settings be visible in a system form? | Client | hideSettings is a UI concern. |
| What is the public link? | Backend | public_url is resolved server-side. |
If a rule affects data correctness, the backend must enforce it even if the client also mirrors the same rule for UX.