Navigation for the Authenticated App Area: Parent Dashboard and Future Child/Adult Play Surfaces
Executive summary
The owner found, via a real screenshot, that the parent dashboard ("Tu casa") inherited Base.astro — the MARKETING nav, with "Sign in"/"Sign up" as actions for someone already logged in. Internal research confirmed this was omission, not decision: the three app/kids/ files carry extensive, cited reasoning for NOT using Base.astro (zero telemetry, zero brand nav, zero JavaScript — red line #2, D-037), but app/index.astro and app/signin.astro were the only two files under /app/ with no comment explaining their layout choice. Neither master-plan.md nor decisions.md contains a single decision about what navigation the authenticated adult area should have — D-064 and mc-49 cover the public site exclusively.
The deeper finding wasn't about layout but about the data model: the screen assumed every adult is a parent. users.is_learner has existed since migration 0001 — "does this adult use the product for themselves?" — and nothing downstream ever read it. An adult who registered via registro-aprendo saw the same empty, meaningless "Your children" section, and has nowhere to go: no practice screen exists for a solo adult learner — F5b (N8-N10 content) and F10 (adult clubs) remain unbuilt — so the navigation gap was really two gaps: the wrong layout, and a feature that doesn't exist yet.
External research converges on a known pattern: Google Family Link — the closest real analogue, an adult managing a minor's usage — uses exactly 3 fixed tabs (Highlights/Controls/Location), not a marketing-site nav [1]. UX literature confirms fixed tabs work for 3-5 equally-important destinations [2][3], and that a panel with more than that becomes a single scrollable list instead of tabs [4] — the same HIG/Material 3 rule D-064 already fixed at 5. On future CHILD-facing bands (PRIMARIA, SECUNDARIA): mc-20/mc-21 already settle this — maximum 2-tap navigation, zero menu, the avatar grid IS the navigation [5][6]. mc-21 adds, for PRIMARIA, a lightweight in-session "where am I" strip (not a menu) [7]. mc-22 (teens) is the only one suggesting a different navigation pattern: persistent sidebar, desktop-only, docked numeric keypad on phone — but framed as in-screen content density, not account-level chrome [8]. mc-23 (adult/pro) asks for visible jump navigation inside practice (skip to topic), instead of a fixed linear flow — again inside the problem-solving screen, not an account menu [9].
---
This document was written in English. It is published here in full, unedited.
Verification status
This document carries no [unverified] flag. Every claim in it is tied to a numbered source below.
[unverified] means the claim is stated in the research but was not confirmed against a primary source in the session that produced it. It is published rather than removed, because a research corpus that hides its gaps is not verifiable.
How this research was produced
The 47 documents were produced on 2026-07-31 by independent agents, each instructed not to invent citations and to flag as [unverified] anything it could not confirm against a primary source. The session's web-search quota ran out mid-way, and later agents worked by direct fetch against primary sources. Several sites (ftc.gov, ico.org.uk) block automated fetching, which is why certain legal claims are flagged on purpose.
This is research, not legal, medical or financial advice. Nothing here claims a learning outcome for Math Challenge; no such study exists yet.
Findings
1. Google Family Link’s tab structure. Three fixed tabs: Highlights (today’s usage, most-used app), Controls (screen time / app limits), Location — plus a shared notification hub. Multi-child households get fast profile switching from the same shell [1]. This is architecturally the closest real product to “Tu casa”: an adult account managing minors, not a marketing site.
2. Tabs vs. single-scroll-list, and where the line is. Bottom tabs suit 3-5 primary destinations accessed repeatedly [2]. Settings screens specifically: tabs work when destinations are equally important and not subordinate to each other; when one destination is clearly primary and the rest secondary, or when there are more varied categories than that, a single scrollable list serves better [3][4]. Sidebar navigation is the right call for products with 15-40 sections (admin panels, SaaS dashboards) — not applicable at this screen’s scale (2-5 sections) [10].
3. mc-20 (KINDER) navigation findings, restated for this task’s
purpose. Max 2 taps from app-open to “answering a challenge.” Tap 1: pick
avatar. Tap 2: tap mascot/Play. Explicit anti-pattern: “deep or hidden
navigation (hamburger menus, multi-level settings) inside the child-facing
surface” [5]. Applies to KINDER by design; the codebase currently reuses
this same zero-chrome pattern for ALL child bands via kids/jugar.astro
(explicitly documented as a simplification: “en esta rejilla conviven las
tres bandas de niño… manda el piso más alto de los tres”).
4. mc-21 (PRIMARIA) navigation findings. Fast, no-typing profile
switching; no assumption of a persisted personal login (shared family
tablets, school Chromebooks) [6]. One new element vs. KINDER: a lightweight
in-session context strip (progress/streak indicator) — the first band where
“where am I in this session” is recommended at all, but still not a menu
[7].
5. mc-22 (SECUNDARIA/teens) navigation findings. The one directly
transferable chrome idea across all four band docs: “Tablet: two-pane
(problem + scratch/graph). Desktop: persistent skill-tree sidebar that phone
omits — the ‘not a kids app’ signal on desktop leans toward
Desmos/Khan-Academy-style utility density.” [8] Explicitly framed as
per-surface density inside the practice screen, not account-level app
navigation. Dark-mode-by-default for this band is already implemented in
bandas.css.
6. mc-23 (adult/expert) navigation findings. “Expose explicit learner
control over path: visible skip/reorder/jump-to-topic… honoring the
self-concept assumption that adults disengage when the system controls
sequencing.” [9] Also inside the practice screen — multi-panel density
(problem, scratch area, attempt history), not a settings/account menu.
7. What none of the four band docs address. A persistent, top-level,
account-facing navigation menu for the authenticated area. KINDER/PRIMARIA
want zero chrome by design. SECUNDARIA/adult findings are about in-practice
content density. This confirms the private-app navigation gap this document
addresses had no prior research coverage at all — same conclusion mc-49
reached for the public site before D-064.
8. The data-model gap. migrations/0001_identity.sql, comment on the
deliberate absence of a role column: “Sin columna role… una persona
puede ser las tres cosas a la vez: el propio dueño es papá y aprendiz adulto
(por-que-existe.md). Un rol excluyente obligaría a mentir.” Capabilities are
derived: parent ⇐ has rows in child_profiles; teacher ⇐ has a row in
group_owner_identity (F9, unbuilt); learner ⇐ users.is_learner = 1,
the only explicit flag, set at signup from the registro-aprendo door
but never read downstream before this pass.
Design implications
- The authenticated adult area gets its own layout, not
Base.astro. Same principleapp/kids/**already established for child surfaces, extended to the one remaining gap (D-065). - Fixed top tab strip, not the four-context machinery of D-064. This
screen has 2-5 destinations, not “6 sections + overflow competing with a
marketing nav” — the problem D-064’s complexity solves doesn’t exist
here. A simple sticky tab row, present regardless of
display-mode(there’s no competing browser-tab-vs-installed nav to avoid stacking with), matches both the Family Link precedent and the product’s own “don’t build machinery a problem doesn’t need” instinct. - Tabs are derived from what the account actually has, not from which
door it registered through.
esFamilia= has ≥1 child profile.esSolo=users.is_learner = 1. Not mutually exclusive. Cap at 5 (HIG/Material 3, mc-49’s own citation, reapplied here). - “Cuenta” (passkey/password/sign-out) is always present and always
real — it’s the one destination that never depends on account type, and
guarantees the dashboard is never a dead end even for an account with
neither children nor
is_learnerset (e.g. teacher-only, F9 unbuilt). - Landing tab is the first REAL (non-”coming soon”) tab, not simply the first in display order — a solo learner should not open the app to a “coming soon” placeholder when “Cuenta” has real, working content.
- RUM band is
SERIO, notPUBLICO. D-037 permits measuring adult surfaces;PUBLICOmixes marketing traffic with authenticated product usage in the same metrics bucket. - For future child-facing bands (PRIMARIA, SECUNDARIA): no account-level
chrome, ever — this is the lineamiento the owner asked to fix now rather
than defer. The zero-navigation, avatar-grid-as-entry pattern
kids/**already implements for KINDER stays the pattern for every child band. What changes per band is content density inside the play screen, never app-level navigation: PRIMARIA adds a lightweight in-session progress strip (not a menu); SECUNDARIA’s desktop practice screen may carry a persistent skill-tree sidebar, phone still docks the keypad with no added chrome; none of the three ever gets a hamburger menu, a bottom tab bar, or any structure requiring more than 2 taps from open to “answering a challenge.” A child never reacheslayouts/Privada.astro— that layout is adult-only by construction (D-065). - For the future adult/pro self-study surface (F5b/F10, unbuilt): when
it ships, it lives as a real “Practicar” tab in this same
Privada.astroshell (not a new layout) —mc-23’s visible skip/jump-to-topic navigation happens inside that screen, the same way it would inside any practice screen, not as a second account-level nav system.
Open questions for the project owner
Already resolved this session, recorded here for traceability:
- Solo vs. family accounts, and how the menu should differ → resolved:
derived from real data (
is_learner, child count), not signup door; tabs are the union of what applies. - Whether to anticipate F8’s tabs now → resolved: yes, as visible “Próximamente” tabs rather than rebuilding navigation twice.
- Whether to write the future-band guideline now or defer → resolved: now (design implication #7 above).
Still open, for whoever builds F5b/F9/F10:
- When the adult “Practicar” tab goes from placeholder to real, does it
reuse
child_profiles-style entity modeling, or a separate table keyed directly onusers.id? (Out of scope for navigation; a content/data question for F5b.) - When F9 (teacher/classroom) ships, does the teacher get a 6th tab here,
or a fully separate
/app/maestro/area? This document’s 5-tab cap assumes parent+learner; a teacher tab would need its own scope decision at that point.
Sources
- Google Families / Family Link product documentation and support pages — tab structure (Highlights/Controls/Location), multi-child profile switching
- UXPin, "Mobile Navigation Patterns: Pros and Cons"
- LogRocket Blog, "Tabbed navigation in UX: Where and when to use it"
- Cursa, "Tab Navigation Patterns and When to Use Them"
- Math Challenge internal research, docs/research/2026-07-31-mc-20-ui-ages-3-6-kinder.md §8, design implications #8-#9
- Math Challenge internal research, docs/research/2026-07-31-mc-21-ui-ages-7-11-primary.md §10, design implication #13
- Same as [6], design implication #4
- Math Challenge internal research, docs/research/2026-07-31-mc-22-ui-teens-12-17.md, design implication #13
- Math Challenge internal research, docs/research/2026-07-31-mc-23-ui-adult-expert.md, design implications #8, #10
- AlfDesignGroup, "Sidebar Design for Web Apps: UX Best Practices (2026 Guide)"
- Math Challenge internal code/decisions — migrations/0001_identity.sql (schema comment on role vs. derived capabilities, is_learner column), apps/web/src/pages/[locale]/app/kids/index.astro (§"Por qué esta pantalla NO usa layouts/Base.astro"), docs/decisions.md D-034, D-064
Open questions this document leaves for the owner
These are unanswered on purpose. They are listed, not resolved — turning them into a FAQ would mean inventing answers the document does not contain.
- Solo vs. family accounts, and how the menu should differ → resolved: derived from real data (is_learner, child count), not signup door; tabs are the union of what applies.
- Whether to anticipate F8's tabs now → resolved: yes, as visible "Próximamente" tabs rather than rebuilding navigation twice.
- Whether to write the future-band guideline now or defer → resolved: now (design implication #7 above).
- When the adult "Practicar" tab goes from placeholder to real, does it reuse child_profiles-style entity modeling, or a separate table keyed directly on users.id? (Out of scope for navigation; a content/data question for F5b.)
- When F9 (teacher/classroom) ships, does the teacher get a 6th tab here, or a fully separate /app/maestro/ area? This document's 5-tab cap assumes parent+learner; a teacher tab would need its own scope decision at that point.
One of 51 research documents, 168,346 words in total, counted at build time from the files themselves. Read this document in the repository