Frontend bucket — design docs
Owner: Agent C (round 1). Anchor directive: Andrew Kent 2026-05-10 — “front end (all the nested pages users will see on the platform)”.
This bucket covers everything a human user touches: lbzfai.com pages, the post-login application shell, the operational dashboards on the Jetson, Auth0 roles, localization, and the migration path from the current single-page Astro site to a multi-page platform.
Reading order
Section titled “Reading order”For a reviewer with 30 minutes, read in this order:
../../business/user-personas.md— who we are building for. Spend the most time on Ronald: his adoption is the entire Phase I success metric.information-architecture.md— every page on the platform, the nav graph, and the resolution of the “does lbzfai.com host the dashboard, or does it redirect to the Jetson via Tailscale” question.../../business/ronald-dashboard-ux.md— the single most important screen in the entire product. If this is wrong, the project fails.../../business/mariana-dashboard-ux.md— executive view; one number per module + one trend. Mobile-first.auth0-roles-and-access.md— how five personas map onto Auth0 roles and what gets exposed on lbzfai.com vs the Jetson.localization-es-co.md— Spanish-first decisions (copy, dates, sort orders, exports, error messages).lbzfai-evolution-plan.md— how the current single-file Astro site grows into the multi-page platform without breaking the Cloudflare Workers + Auth0 hardcoded-fallback deploy story.
Bucket layout
Section titled “Bucket layout”docs/design/├── business/│ ├── README.md # Agent E (do not write — Agent E owns)│ ├── README.frontend-stub.md # short anchor for the three frontend-bucket docs that live here│ ├── user-personas.md # Agent C│ ├── ronald-dashboard-ux.md # Agent C│ └── mariana-dashboard-ux.md # Agent C└── technical/ └── frontend/ ├── README.md # this file ├── _template.md # design-doc template ├── information-architecture.md ├── auth0-roles-and-access.md ├── localization-es-co.md └── lbzfai-evolution-plan.mddocs/design/business/ is shared with Agent E (business + cross-cutting). Agent E owns business/README.md; Agent C drops business/README.frontend-stub.md for the three persona/UX docs that live there.
Open cross-bucket questions surfaced from this bucket
Section titled “Open cross-bucket questions surfaced from this bucket”These need explicit resolution before Phase I deploy in July 2026. Each is repeated in the doc that surfaced it.
- Where does Ronald’s dashboard render? lbzfai.com calling a Jetson API over Tailscale, or
http://<jetson-tailscale-ip>:5000directly? Seeinformation-architecture.md§“The render-location question”. Owner: Agent B (integration spec). - Does Mariana install Tailscale on her phone? If yes, lbzfai.com is marketing-only and the dashboard is Jetson-direct. If no, lbzfai.com must proxy data through a Cloudflare Worker. See
information-architecture.md. Owner: Sophia + Mariana (UX decision); Agent B (infra decision). - Does ITBA see LBZF’s live data? Owner: Sophia + ITBA team; documented in
auth0-roles-and-access.md. - Faces vs anonymized boxes in live video. Privacy + Colombian labor law. Owner: Agent E (privacy & legal); UX consequences documented in
../../business/mariana-dashboard-ux.mdand../../business/ronald-dashboard-ux.md. - es-CO only, or es/en bilingual? Owner: Sophia + Andrew (product); proposal in
localization-es-co.md.
Conventions
Section titled “Conventions”- Spanish-first for everything LBZF users will read. English is acceptable for admin/dev surfaces (Sophia, Andrew, ITBA’s engineers if they prefer EN).
- Mobile-first for Mariana’s view; desktop-first for Ronald’s view (he’s at a desk in the office, occasionally tablet on the floor).
- Don’t reinvent Ronald’s workflow — the UI should look like a richer version of
INDICADORES ABRIL.xlsx, not a Silicon Valley reinvention. Ronald’s adoption is failure mode #1. - Auth0 SPA values are public-by-design. The hardcoded fallback in
src/pages/index.astrostays unless replaced with a documented build-var setup; see~/lbzfai/CLAUDE.md. - Static-output-via-Cloudflare-Workers must keep working.
public/.assetsignoremust exist;output: 'static'must remain unless we explicitly migrate.
What this bucket explicitly does NOT cover
Section titled “What this bucket explicitly does NOT cover”- The CV pipeline, model selection, inference path. Owned by Agent A (hardware/ML) and Agent D (ML/data).
- The Jetson Flask/FastAPI dashboard’s server-side implementation. Owned by Agent B. This bucket specifies the UX contract that the backend must satisfy.
- The SQLite schema. Owned by Agent B. See
docs/technical/software.mdfor the v1.9 baseline. - Business model, pricing, multi-tenancy strategy. Owned by Agent E.
- The IEEE paper. Owned by Sophia + Andrew.