# Phase 3: Mini App Shell + Geolocation - Pattern Map **Mapped:** 2026-10-22 **Files analyzed:** 40 (33 new `web/` files, 4 new `bot/` files, 3 modified root/bot config files) **Analogs found:** 36 / 40 (4 with no codebase analog — new platform surfaces; RESEARCH.md provides the code) > Repo state: Phases 1 (theme) + 2 (bot) are complete. There is **no `web/` directory and no frontend app code yet** — every browser-runtime analog below is either a *theme proof page*, a *mockup* (read-only), or a *bot-side* pattern. The strongest analogs are: the Worker route/KV/test patterns from `bot/`, and the MapLibre Rams-basemap proof page `theme/basemap/index.html`. ## File Classification ### `web/` workspace — new files (per RESEARCH.md §Recommended Project Structure + D-01/D-02) | New/Modified File | Role | Data Flow | Closest Analog | Match Quality | |-------------------|------|-----------|----------------|---------------| | `web/package.json` | config | — | `bot/package.json` | exact | | `web/tsconfig.json` | config | — | `bot/tsconfig.json` | role-match (swap workers-types → DOM) | | `web/vite.config.ts` | config | build | *(none — new tool)* | none | | `web/index.html` | route/entry | — | `stitch_minimalist_route_navigator/navigate_map_overview/code.html` + `theme/basemap/index.html` | role-match | | `web/src/main.ts` | controller (composition root) | event-driven | `theme/basemap/index.html` lines 103-173 (boot script) | role-match | | `web/src/shell.css` | component (styles) | — | `theme/basemap/index.html` `