Skip to content
HOZU0.30.1
Menu
All trials

Trial 0027 — The owner's real project rebuilt with Hozu (ADR 0080 B)

Question: can Hozu carry a real project the owner already runs, a booking and shop site for a beauty studio with a Go API, its public site and its back office, to the same behaviour and a deploy, and where does it stall?

Answer (agents building on Hozu 0.27–0.29 from npm, claude-opus-5-5, against a local copy of the Go API):

  • Yes: both frontends were rebuilt, checked and deployed in containers.
    • Public site: 25 pages. At 390 and 1440 px, most pages differ from the Nuxt original by under 1 % of pixels, and none by more than 2.05 %. It makes the same API requests per flow. 38 contracts cover its decisions.
    • Back office: 43 routes for two roles, every feature of the original (bookings, orders, members, inventory, reports with charts, uploads, page editor). It has 51 contracts, and its API requests were matched against the original's source.
    • Deploy: both ran from hozu build --target node images with docker run. A member, and a staff member, signed in through native forms, and admin-only pages refused staff.
  • The walls were in the framework, and each was fixed in a release: 19 frictions on the public site (ADR 0083), 23 in the back office (ADR 0084), and 2 in the deploy (ADR 0085). Three were serious:
    • a fixed mobile menu drawn under the page (0.29);
    • an admin link shown to staff with no diagnostic, from a ?: inside a test (0.30);
    • containers that stopped at start because of dependency lists (0.30.1).
  • Not measured: people. The builders were agents. The owner set the goal and the parity standard: the public site identical, the back office functionally exact.

Setup

Public site Back office
Original Nuxt (frontend-web-nuxt) Nuxt (frontend-cms-nuxt)
Rebuilt in 2025-mori-hozu/web 2025-mori-hozu/cms
Standard Identical: screenshots at 390 / 1440 px, the same API requests per flow Functionally exact: every feature, field, permission and API request; the presentation may differ
Backend The original Go API, unchanged, in local containers (Postgres, Redis), seeded with fake data The same
External services Email and object storage replaced by local stand-ins; no real key used The same
Tool calls About 185 About 365

Deviations kept on purpose

Where Deviation Why
Public Toasts after a page change come from a ?notice= enum in the address Every link is a document load; there is no global store (recipe since 0.29)
Public JSON-LD only for the site; no title template The head is a closed set (ADR 0043 D); recorded for after 1.0
Public Booking draft kept in the server session State across pages lives on the server or in the address
Public Member history pages show data The original showed empty pages: a bug there, fixed here on request
Back office Filters are GET forms with a button, and confirmations are native dialogs They work without JavaScript
Back office Uploads need JavaScript A native post sends file names only (ADR 0084)
Back office Activity logs and member events work The original answered 500

What each release took from it

Release From Main changes
0.29 (ADR 0083) Public site F1–F19 Shared views named only during a transition; kit configs keep plain project classes; *; HZ079 / HZ028 / HZ063 fixes; browse keys, overlays, CSP hint
0.30 (ADR 0084) Back office C1–C23 Conditional tests lowered; an unconvertible schema is HZ014; browse loads local-port images and uploads files; recipes for uploads, bound checkboxes, Invalid
0.30.1 (ADR 0085) Docker rehearsal @hozu/bundle moved, not duplicated; --target node names dependency-list mistakes

Limits

  • The builders were agents with the full guide. The owner did not write the code.
  • Local containers only; no hosting platform, real email or storage was used.
  • The rebuilt apps and the original repositories stay private; this record holds no customer data, and every account and record used was fake.