Skip to content
  • One of the tools that I used to help me stay focused and energized on my $MART DEBT Coach mission was a single HTML file that was easily updated and visible on any web device.
    • It is at \\wsl$\Ubuntu-24.04\home\ta\projects\sdc-mission\smartdebt-mission.html
  • This is independent of my Astro monorepo, at \\wsl$\Ubuntu-24.04\home\ta\projects\monorepo\README.md, but it uses similar brand design elements of color, font etc.
  • My web_deploy util, at \\wsl$\Ubuntu-24.04\home\ta\utils\web\web-deploy\README.md, deploys this tiny project (currently to a folder on my talbotstevens.com site).
  • With my business focus now shifted to myBetterRates (mBR), I want a similar single HTML file to provide a similar visual focus document, accessible anywhere.
  • The simplest approach is to simply duplicate this file in a different project and change the content.
  • However a more professional approach would be to have these Focus HTML artifacts as a sub project of the monorepo, so that any desired focus HTML file can be derived for the desired website/brand.
    • Thus the existing smart debt mission HTML file would become a subfolder of \\wsl$\Ubuntu-24.04\home\ta\projects\monorepo\sites\sdc\, perhaps semantically containing focus.html.
    • And a similar focus.html file would go under \\wsl$\Ubuntu-24.04\home\ta\projects\monorepo\sites\mbr\.
  • In Plan mode, plan an integrated approach that allows the creation of these focus files for the SDC and MBR sites and brands. Derive the brand design system from the single source of truth for each site. Maintain existing animations, favicons, and the “show” query param functionality. This means also using the brand entity components for each. These are used in the monorepo’s template site /brands page. Be careful of the reverse colors in card headers.
  • Can the content of these focus files be specified in a markdown source file (focus.md), including the “show” query pram functionality, to give a cleaner separation of content for easier editing? Are there other enhancements that a world-class developer would make in this tiny project? If so suggest them.
  • Generate the detailed plan for making these changes, before proceeding.
  • When the plan is approved, adjust the web deploy projects to accommodate these changes.
  • Test thoroughly to ensure that everything is working, local first and then online deployment can go to a folder of talbotstevens.com.
    • talbotstevens.com\sdc\focus.html
    • talbotstevens.com\mbr\focus.html
  • Remove the old \\wsl$\Ubuntu-24.04\home\ta\projects\sdc-mission\smartdebt-mission.html, after the upgraded approach is working.

Examined all relevant source files before planning:

Existing SDC file (sdc-mission/smartdebt-mission.html):

  • Standalone HTML with inline CSS/JS — no external dependencies except Google Fonts
  • Features: SMART DEBT S→$ animation (4s cycle), ?show= param (all/next/cycle), card layout with reversed card headers (white text on #004425 bg), favicon differentiator script, PWA assets
  • Brand colors: Treasury Emerald #004425, Wealth Gold #D5B038

Monorepo state:

  • sites/sdc/ — minimal Astro site (just src/pages/index.astro placeholder), has Tailwind + @smart-debt/components
  • sites/mbr/ — full Astro site with brand token system (@brand/mbr/tokens.css), full layout, MyBetterRates.astro component
  • Brand components: SmartDebt.astro (uses Web Component JS module), MyBetterRates.astro (CSS-only animation), SDFavicon.astro, MBRFavicon.astro
  • Design tokens: src/brand/sd/tokens.css and src/brand/mbr/tokens.css — both define Treasury Emerald (#004425) and Wealth Gold (#D5B038)

Architecture Decision: Self-Contained Astro Pages

Section titled “Architecture Decision: Self-Contained Astro Pages”

Each focus page is an Astro page (focus.astro) that builds to a self-contained HTML file with no external asset dependencies. This is possible because:

  • CSS is inlined at build time via Astro’s build.inlineStylesheets: 'always' option
  • JS is inlined via <script is:inline> (no bundled modules)
  • Favicons: SVG paths inlined directly into the HTML (derived from SDFavicon.astro / MBRFavicon.astro)
  • Brand colors: CSS variables defined once from design tokens, referenced throughout

Result: dist/focus.html is a single deployable file — FTP-uploaded as before.

Why not use SmartDebt.astro / MyBetterRates.astro components directly? Both use JS module imports that Vite bundles as external _astro/*.js files. Those reference absolute paths (e.g. /_astro/SmartDebt.abc123.js), which break when the file is deployed to a subfolder (/sdc/focus.html). For self-contained deployment, the animation logic is written inline — the same visual behavior, no framework overhead. The brand design system (colors, fonts, card styles) is still derived from SSOT tokens.


Files to create:

  • sites/sdc/src/pages/focus.astro — Astro template (layout, HTML structure, styles, inline scripts)
  • sites/sdc/src/data/sdc-focus.ts — SDC content: mission text, plan items, next-item markers

astro.config.mjs change (add @brand alias and inlineStylesheets):

import { resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
export default defineConfig({
integrations: [tailwind()],
build: { inlineStylesheets: 'always' },
vite: {
resolve: { alias: { '@brand': resolve(__dirname, '../../src/brand') } }
}
});

focus.astro structure:

---
import { sdcFocusContent } from '../data/sdc-focus.ts';
---
<!doctype html>
<html lang="en">
<head>
<!-- Inter font (Google Fonts CDN — acceptable external dep for font) -->
<!-- Inline SVG favicons (light + dark) from SDFavicon SVG paths -->
<!-- PWA theme-color: #004425 -->
<style>
/* Brand tokens — Vite inlines at build */
@import '@brand/sd/tokens.css';
/* Focus page styles: container, card, h2, prominent-heading, animations */
:root { --brand-primary: #004425; --brand-gold: #D5B038; }
/* ... card layout, mobile responsive, show-next styles ... */
</style>
<script is:inline>
/* Favicon differentiator (show=next gold bar) */
/* DOMContentLoaded: show param handler, transformSmartDebt(), startCycle() */
</script>
</head>
<body>
<!-- Rendered from sdc-focus.ts content -->
{sdcFocusContent.sections.map(section => <div class="card">...</div>)}
</body>

sdc-focus.ts structure:

export const sdcFocusContent = {
title: "Talbot's SMART DEBT Mission",
sections: [
{
heading: "$MART DEBT Coach Mission",
type: "mission",
body: "SMART DEBT Coach helps average advisors...",
items: ["Focusing on controversial topic...", ...]
},
{
heading: "Prominent Heading",
type: "prominent",
text: "ADVISOR COMMUNITY, EDUCATION"
},
{
heading: "$MART DEBT Plan",
type: "plan",
id: "plan",
intro: "Client-first SMART DEBT education...",
items: [
{ text: "SMART DEBT Coach website", next: true, subtasks: [...] },
{ text: "SMART DEBT App (mini-app)", next: false },
// ...
]
}
]
}

Why .ts data file instead of .md? The content is highly structured (nested items, next: flags, entity spans, id: attributes). Markdown can’t represent this without custom directives. A typed .ts file is more editable than raw HTML and catches typos at build time. The Astro template renders it cleanly. If plain-text editing (phone, Obsidian) is important, a YAML frontmatter file (sdc-focus.yaml) is an alternative — suggest this as an option.


Files to create:

  • sites/mbr/src/pages/focus.astro
  • sites/mbr/src/data/mbr-focus.ts — MBR mission, plan, current focus content

Key differences from SDC:

  • Brand animation: myBetterRates bar animation (inline CSS from MyBetterRates.astro comments)
  • Favicon: MBR logo SVG paths (from MBRFavicon.astro)
  • Content: Talbot’s MBR mission, priorities, current work items (Talbot to provide or iterate)
  • MBR already has full brand token setup — @brand/mbr/tokens.css import works directly

New deploy scripts (in sdc-mission-deploy/):

  • deploy_sdc_focus.py — builds sites/sdc, FTP-uploads dist/focus.html/httpdocs/sdc/focus.html
  • deploy_mbr_focus.py — builds sites/mbr, FTP-uploads dist/focus.html/httpdocs/mbr/focus.html

Each script:

  1. Runs pnpm run build in the site directory
  2. FTP-uploads dist/focus.html to the correct remote path
  3. Verifies the upload (HTTP fetch to confirm)

web-deploy/config.yaml additions:

sdc-focus:
name: "SDC Focus"
description: "Build sites/sdc → FTP focus.html to talbotstevens.com/sdc/"
path: "/home/ta/projects/monorepo/sites/sdc"
external_deploy_script: ".../sdc-mission-deploy/deploy_sdc_focus.py"
build_dir: "dist"
entry_point: "focus.html"
allowed_destinations: ["online", "local"]
port: 8001
url: "https://talbotstevens.com/sdc/focus.html"
auto_open: true
mbr-focus:
name: "mBR Focus"
description: "Build sites/mbr → FTP focus.html to talbotstevens.com/mbr/"
path: "/home/ta/projects/monorepo/sites/mbr"
external_deploy_script: ".../sdc-mission-deploy/deploy_mbr_focus.py"
build_dir: "dist"
entry_point: "focus.html"
allowed_destinations: ["online", "local"]
port: 8002
url: "https://talbotstevens.com/mbr/focus.html"
auto_open: true

After both focus pages are live and verified:

  1. Delete sdc-mission/smartdebt-mission.html (and assets/)
  2. Remove or archive sdc-mission entry from config.yaml
  3. Delete sdc-mission-deploy/deploy_smartdebt_mission.py (replaced by deploy_sdc_focus.py)
  4. Update sdc-mission-deploy/ deploy scripts for the new pattern

EnhancementValueComplexity
Typed content file (.ts data)Structured, editor-validated, easy to changeLow — included in plan
Keyboard shortcuts n/a/cKeyboard control of view modes (desktop display)Low — ~10 lines inline JS
Print stylesheetClean reference card for printingLow — @media print block
Dark mode via prefers-color-schemeAutomatic dark theme on phones/tablets at nightMedium — CSS vars already support it, needs dark card/heading styles
Hash-based view (#next, #all)Bookmarkable views, no server-side query stringLow — alternative URL pattern
YAML content sourceEdit on phone via Obsidian without TypeScriptLow — if plain-text editing matters
Offline (service worker)Works with no internet on any deviceMedium — adds complexity, not essential

Recommended: include keyboard shortcuts and print stylesheet in the initial implementation (low effort, high value). Dark mode and YAML content as optional follow-ons.


  1. MBR content — What should the MBR focus page show? Options:

    • a. Placeholder (implement structure, fill content later)
    • b. You draft the content in the Talbot Response below and I implement it
    • c. Mirror the SDC pattern with MBR-branded content (mission, plan, current focus)
  2. Enhancement decisions:

    • Include keyboard shortcuts (n/a/c) in v1? (recommended yes)
    • Include print stylesheet? (recommended yes)
    • Data format: .ts file (recommended) or .yaml file (Obsidian-friendly)?
  3. Confirm plan approval — say “approved” or note any changes, then I’ll implement.


Summary: Checked ✅ existing HTML, ✅ monorepo brand components, ✅ design token system, ✅ deploy infrastructure. Plan ready. Awaiting content decisions and approval.

Next Steps for Talbot:

  • Decide MBR content approach (placeholder / draft content / mirror pattern)
    1. mBR Focus
    • Mission
      • To create “Benefit Financially F.A.S.T.” win-win-wins by making it easy to discover, act on, and share Better Rates on debts and savings, and untaught strategies. Through our Cancer50Pledge—donating at least 50% of all profits to research—we fuel a powerful engine that benefits individuals, companies, and society.
    • Plan
      • Business-OS-Architecture upgrade
      • Business plan, pitch deck to Jeff, Th
      • myBetterRates 1-Minute Challenge
  • Decide on enhancements (keyboard shortcuts, print, data format)
    1. Implement all enhancements except dark mode and offline mode.
    • Approve plan to proceed with implementation
    1. proceed
  • good plan

  • sites/sdc/src/data/sdc-focus.ts — typed SDC content (mission, prominent heading, plan with next-item markers, subtasks)
  • sites/sdc/src/pages/focus.astro — self-contained focus page with all SDC brand styles + SMART DEBT S→$ animation
  • sites/sdc/astro.config.mjs — added build.format: 'file' (produces dist/focus.html) + build.inlineStylesheets: 'always'
  • sites/sdc/public/ — added PNG favicons + site.webmanifest from sdc-mission/assets/ (co-located for deployment)
  • sites/mbr/src/data/mbr-focus.ts — typed MBR content (mission with Cancer50Pledge, plan with Business-OS-Architecture as next item)
  • sites/mbr/src/pages/focus.astro — self-contained focus page with MBR brand styles + myBetterRates CSS bar animation (inlined from MyBetterRates.astro)
  • sites/mbr/astro.config.mjs — added build.inlineStylesheets: 'always'
  • sdc-mission-deploy/deploy_sdc_focus.py — builds SDC site, FTP-deploys dist/focus.html + favicons to /httpdocs/sdc/
  • sdc-mission-deploy/deploy_mbr_focus.py — builds MBR site, FTP-deploys dist/focus/index.html (as focus.html) + SVG favicons to /httpdocs/mbr/
  • web-deploy/config.yaml — added sdc-focus (port 8001) and mbr-focus (port 8002) projects
  • Typed content data files (.ts) — edit content without touching template
  • Keyboard shortcuts: n = next view, a = all view, c = cycle mode (with history.replaceState URL update)
  • Hash-based view support: #next, #all, #cycle work in addition to ?show= query param
  • Print stylesheet: @media print with forced color rendering for headers
  • Self-contained output: CSS inlined via Vite, JS inlined via is:inline — each page deploys as a single HTML file + favicon files only
  • Both sites build cleanly with Astro 5
  • SDC dist/focus.html verified: 22KB, no external CSS links, all content present
  • MBR dist/focus/index.html verified: 22KB, no _astro/ references, myBetterRates animation CSS inlined
  • Visual: screenshots confirmed card layout, reversed card headers, SMART DEBT branding, show=next with yellow subtask box and dimmed non-next items
  • MBR visual: card layout, myBetterRates entity in mission text and plan item 3, show=next working
  • SDC: dist/focus.html + PNG favicons → /httpdocs/sdc/focus.html + /httpdocs/sdc/favicon*.png
  • MBR: dist/focus/index.html deployed as focus.html/httpdocs/mbr/focus.html + SVG favicons to /httpdocs/mbr/
  • Favicon relative paths work correctly because deploy script places HTML and favicons in the same remote directory
  • Test local first: run web-deploy, select sdc-focus or mbr-focus, choose local destination — browse to http://localhost:8001/focus.html 1.
  • Deploy online when ready: web-deploysdc-focus or mbr-focusonline (requires FTP credentials in .env)
    1. web-deploy already deploys to ts.com, so you should have the FTP params
  • Verify live URLs: https://talbotstevens.com/sdc/focus.html and https://talbotstevens.com/mbr/focus.html 1.
  • Migration cleanup (after online verification): delete sdc-mission/smartdebt-mission.html, remove legacy sdc-mission project from config.yaml 1.
  • MBR content refinement: update sites/mbr/src/data/mbr-focus.ts with any changes to mission text or plan items (subtasks for plan items 2-3 if needed) 1.
  • use site/brand favicons
  • Where is the documentation for this many project? Is it sufficient to simply add a section in the monorepo README.md?
  • And there should be some simple usage documentation somewhere. I suggest the most maintainable place is in comments at the top of the typescript file. Is there a better location? All functionality should be explained.
  • Deploy online with the needed FTP prams and test.


  • Brand favicons: Copied SD brand SVG favicons from src/brand/sd/favicons/sites/sdc/public/. Updated focus.astro favicon links to SVG. Updated deploy_sdc_focus.py FAVICON_FILES to deploy SVGs. (MBR was already using SVGs from src/brand/mbr/favicons/.)

  • Documentation — monorepo README: Added “Focus Pages (Mission / Status Pages)” section with table of both pages (brand, source, live URL, web-deploy key), edit instructions, deploy commands, query param/keyboard reference. Location confirmed: README.md is the right place — co-located with the code, version-controlled, no duplication needed.

  • Documentation — TypeScript data files: Added a full usage comment block at the top of both sdc-focus.ts and mbr-focus.ts covering: content structure (all section/item types), query params + keyboard shortcuts, brand animation mechanism, and deployment commands. This is the maintainable SSOT because it lives next to the code it documents and travels with it.

  • Deployed online and verified:

    • SDC: https://talbotstevens.com/sdc/focus.html — HTTP 200, 22,904 bytes ✓
    • MBR: https://talbotstevens.com/mbr/focus.html — HTTP 200, 22,379 bytes ✓
    • Both built cleanly; all 7 favicon/manifest files uploaded to each remote directory.
  • Review both live pages in browser and confirm they look correct
    1. On mobile, the margins are too small, and should match those of the original \\wsl$\Ubuntu-24.04\home\ta\projects\sdc-mission\smartdebt-mission.html
  • Migration cleanup (when ready): delete sdc-mission/smartdebt-mission.html, remove legacy sdc-mission entry from config.yaml 1.
  • MBR content: add subtasks to plan items 2–3 in mbr-focus.ts if needed 1.
  • On my Android phone …
    • Add to Homescreen, after browsing to the page in Chrome, does not seem to remember the full URL and I want the icon to use the favicon
    • How to I add this ‘focus.html’ to my phone properly, as a PWA?
  • Also provide guidance for doing same on my iPad.


  • Mobile margins fixed: Container mobile padding 0.05rem0.5rem on both SDC and MBR focus pages. Root cause: body { margin: 0 } in focus pages removed the browser’s default 8px body margin that the original smartdebt-mission.html kept. The 0.5rem container padding restores equivalent visual gutter.

  • Add to Homescreen — Android Chrome URL fix: Both manifests had broken/missing start_url. SDC had no start_url at all; MBR had start_url: "/" (pointing to site root). Both now set to "focus.html" (relative) with scope: "/sdc/" / scope: "/mbr/". Chrome uses this to open the correct page when launched from homescreen.

  • Add to Homescreen — icon fix: Both manifests previously referenced non-existent or wrong-path icons. Both now reference apple-touch-icon.png (180x180, generated from brand SVG via cairosvg) and favicon-32x32.svg. PNG files deployed to server for both SDC and MBR.

  • iOS Safari “Add to Homescreen” support: Added iOS-specific meta tags to both focus.astro pages: apple-mobile-web-app-capable, apple-mobile-web-app-status-bar-style, apple-mobile-web-app-title. Changed <link rel="apple-touch-icon"> to reference PNG (iOS Safari doesn’t use SVG for homescreen icons).

  • Deployed and verified: SDC 200 OK, MBR 200 OK, both manifests 200, both PNG icons 200.

Add to Homescreen — Step-by-Step Instructions

Section titled “Add to Homescreen — Step-by-Step Instructions”

Android Chrome (both SDC and MBR):

  1. Open Chrome → navigate to the URL (https://talbotstevens.com/sdc/focus.html or /mbr/focus.html)
  2. Tap the three-dot menu (⋮) → Add to Home screen
  3. Edit the label if desired → tap Add
  4. The icon should use the brand favicon; tapping the shortcut opens directly to focus.html
  5. If Chrome shows an install banner automatically (“Install app”), tap it — same result

iOS Safari (iPhone and iPad):

  1. Open Safari → navigate to the focus URL
  2. Tap the Share button (box with arrow pointing up) — bottom toolbar on iPhone, top right on iPad
  3. Scroll down and tap Add to Home Screen
  4. Edit the name if desired (defaults to “SD Focus” / “MBR Focus”) → tap Add
  5. The icon appears on your home screen; tap to open (runs in standalone/fullscreen mode, no browser UI)

Notes:

  • On iOS, the page runs as a standalone app (no Safari navigation bar) because of the apple-mobile-web-app-capable meta tag
  • On Android, Chrome may eventually offer an automatic “Install app” banner — this is normal PWA install behavior
  • The ?show=next URL variant works fine as a homescreen shortcut too: just navigate to focus.html?show=next before adding to homescreen, and Chrome will save that full URL
  • Test “Add to Homescreen” on Android — navigate to focus.html, use Chrome ⋮ menu → “Add to Home screen”. Verify icon shows SD/MBR brand, tapping opens directly to focus page.
    1. Install app worked great! On mobile, how do I see the Next vs All views? Before I installed a separate version of the PWA.
  • Test “Add to Home Screen” on iPad — open in Safari, tap Share, tap “Add to Home Screen”. Verify icon and that it opens in standalone mode (no browser chrome).
    1. Works
  • Migration cleanup (when ready): delete sdc-mission/smartdebt-mission.html, remove legacy sdc-mission entry from config.yaml 1.
  • MBR content: add subtasks to plan items 2–3 in mbr-focus.ts if needed 1.
  • When starting the MBR app on my Android, it briefly shows the brand favicon or logo properly. But with SDC, it does not. The entire background of the screen is emerald green, and thus the leaf shape of the logo is missing.
    • Also and perhaps related, The app icon on my home screen is properly framed for MBR, but not for SDC. See screenshot, at https://drive.google.com/file/d/1pDr4jQRksguBohq012XHnEbk3t9qvaoq/view?usp=drive_link.


  • SDC icon/splash fix: Root cause — SD leaf SVG is #004425 (green) on transparent background; manifest background_color was also #004425. Green leaf on green background = invisible. Fix: changed SDC manifest background_color to #ffffff (white) and regenerated apple-touch-icon.png with white background via cairosvg(background_color='white'). Leaf now shows against white splash/background. MBR was already correct (background_color: #f5f5f0).

  • Mobile Next/All toggle button: Added floating ► Next / ◄ All pill button (bottom-right corner) to both SDC and MBR focus pages. Visible only on touch devices (@media (hover: none) and (pointer: coarse)), hidden on desktop (keyboard shortcuts still work there), hidden in print. Button text updates to reflect current state. State-synced with keyboard shortcuts too.

  • Deployed and verified: Both pages live, toggle button present in source, SDC manifest confirms background_color: #ffffff.

Android Chrome caches the homescreen icon aggressively. To see the updated SDC icon, Talbot may need to:

  1. Remove the existing SDC shortcut from the home screen
  2. Clear Chrome’s site data for talbotstevens.com (Chrome Settings → Site Settings → talbotstevens.com → Clear & reset)
  3. Re-add the shortcut via Chrome ⋮ → Add to Home screen

Or simply wait — Chrome refreshes PWA icons on its own schedule (typically within a few days of visiting the updated page).

  • Test SDC shortcut icon — remove old shortcut and re-add to see updated icon with white background + visible leaf 1.
  • Test mobile toggle button on both pages — tap ”► Next” to focus view, ”◄ All” to return
    1. I redeployed to cloudflare, but do not see the new toggle button. Maybe confirm that deployment was successful.
    2. Should I need to uninstall and reinstall the app for the changes to be seen?
  • Migration cleanup (when ready): delete sdc-mission/smartdebt-mission.html, remove legacy sdc-mission entry from config.yaml 1.
  • MBR content: add subtasks to plan items 2–3 in mbr-focus.ts if needed
    1. done
  • Keep Next/All button for desktop also, float below last card/element
  • Unable to Clear Chrome’s site data for talbotstevens.com
    • this isn’t correct … (Chrome Settings → Site Settings → talbotstevens.com → Clear & reset)


  • Toggle button now always visible (all devices): Removed @media (hover: none) restriction and position: fixed. Button now renders as a centred block element after the last card, visible on desktop and mobile. Hidden in print only.

  • Toggle button moved inside container: Renders after all sections, inside the page content flow — “floats” below the last card naturally.

  • Cloudflare Pages MBR redeployed: Confirmed root cause — mbr-site.pages.dev/focus/ had 0 toggle references (Talbot’s earlier deploy didn’t include the changes). Redeployed from current source. Now verified: all 3 targets have toggle button.

    • talbotstevens.com/sdc/focus.html
    • talbotstevens.com/mbr/focus.html
    • mbr-site.pages.dev/focus/

Do you need to uninstall/reinstall? Not necessarily — but the standalone PWA app caches the page. To force it to show the latest version:

  • Open the app → pull to refresh (if the app allows it), OR
  • Hard-close the app from the recents screen, then reopen it

If that doesn’t work, uninstall and reinstall the shortcut. That clears all cached state.

Correct Chrome site data clearing path (Android):

  1. Chrome → Settings (⋮) → Privacy and security → Site settings → All sites
  2. Scroll to find talbotstevens.com → tap it → “Clear & reset”

Or the fastest way for a PWA: long-press the app icon on the home screen → App infoStorageClear Cache. Then reopen the app.

  • Verify toggle button appears and works on both PWA apps (open app, check for ”► Next” button below last card; tap to toggle)
    1. Toggle button gets to Next view, but then not shown to all returning to All view.
  • SDC icon: remove + re-add shortcut to see updated icon with white background + visible leaf
    1. works
  • Migration cleanup (when ready): delete sdc-mission/smartdebt-mission.html, remove legacy sdc-mission entry from config.yaml 1.


  • Toggle button visibility bug fixed: Root cause — handleShowParam('next') hides all .container > * children except #plan. Since the button was moved inside the container, it got hidden too. Fixed by excluding #view-toggle from the hide condition in both pages:

    if (el.id !== 'plan' && el.id !== 'view-toggle') el.style.display = 'none';

    Button now stays visible in both All and Next views on both pages.

  • Deployed and verified: All 3 targets updated — FTP (talbotstevens.com/sdc/ and /mbr/) and Cloudflare Pages (mbr-site.pages.dev/focus/). Confirmed fix is live in source on all targets.

  • Verify toggle button works end-to-end: appears in All view → tap to go to Next view → ”◄ All” button still visible → tap returns to All 1.
  • Migration cleanup (when ready): delete sdc-mission/smartdebt-mission.html, remove legacy sdc-mission entry from config.yaml
    1. proceed with cleanup
  • ensure that monorepo README.md is current
  • task complete, ready for commit


  • README verified current: Focus Pages section accurate — URLs, data file paths, deploy commands, query param/keyboard reference all match current implementation.

  • Migration cleanup done:

    • Removed sdc-mission entry from web-deploy/config.yaml
    • Deleted sdc-mission/smartdebt-mission.html from local filesystem
  • Committed — 3 repos:

    • monorepo (874ecee) — feat: add SDC and MBR focus pages (mission/status PWA dashboards) — 18 files, 1,192 insertions
    • web-deploy (8269163) — feat: add SDC and MBR focus page deploy scripts, update config — 4 files (deploy scripts, config.yaml, CLAUDE.md)
    • sdc-mission (a3a8a81) — chore: remove smartdebt-mission.html (superseded by sites/sdc focus page)

All focus page work shipped and committed. Live URLs:

  • https://talbotstevens.com/sdc/focus.html
  • https://talbotstevens.com/mbr/focus.html
  • https://mbr-site.pages.dev/focus/ (Cloudflare Pages)
  • None — task complete.