DUO.bz — Inventory & Salvage Audit

Prepared by Revenue | 2026-08-08 | Purpose: inventory + salvage for Duo 2.0 (NOT migration)

Raw data bundle: `duo-audit/` in this workspace (JSON dumps + extracted app sources)

0. Executive Summary

The single most important finding: duo.bz is not a “WordPress site with content.” It is ~20 hand-built custom React apps living inside WordPress pages (via the ReactPress plugin, Blocksy theme, Breeze cache). Every pillar page, every lesson, every hub, and the Compass diagnostic is a bespoke JavaScript application embedded in a WP page. The WordPress layer is mostly a shell: hosting, login, WooCommerce checkout, and Paid Member Subscriptions gating.

Implications for Duo 2.0:

  • The *content* is almost entirely structured data + copy inside these apps — it is fully extractable (done, see data bundle) and maps directly onto Duo 2.0’s learning/journey model.
  • The *app logic* (Compass scoring, routing, capacity check, 28-day engine) is the real salvageable IP — and it’s client-side, so the complete source is in hand.
  • The *WordPress plumbing* (WooCommerce, member subscriptions, register flow) is business-data migration, not UI migration — exactly as Marcus predicted.
  • **Do not port pages. Extract and classify.** The classification matrix is in §4.
  • 1. Site Stack

    HostingHetzner, IP 46.224.213.11 (same box as Mightymax image library), Apache/Ubuntu, HTTPS
    CMSWordPress + Blocksy theme (Blocksy Companion)
    React-in-WP**ReactPress** plugin (embeds React apps in pages), CDN React 18 + Babel standalone + Tailwind CDN (no build step — browser compiles JSX at runtime)
    CommerceWooCommerce + **WooCommerce Payments (Stripe)**, 1 product
    Membership**Paid Member Subscriptions** — gates the 28 Days program
    Other pluginsJetpack (Protect, forms, payments), Breeze cache, Google Site Kit, Kadence Blocks, Klaviyo, GenerateBlocks
    MailZoho (MX)
    DNSGoDaddy nameservers
    AuthWP login protected by Jetpack Protect math captcha; stored creds (DUOBZ_WP_*) exist but REST app-passwords not configured

    Front-end pattern: each page = Custom HTML block containing a full React app (JSX compiled in-browser via Babel). Styling is bespoke (cream/gold “DUO” design system on the Compass; “DUO VIBRANT” navy/emerald system on the homepage). No shared component library — each app is self-contained and copy-pasted (multiple versions of the same app exist across pages/posts).

    2. Full Inventory

    2.1 Pages (21 published) — roles

    Marketing / funnel

  • `home-3` (/) — custom landing page: “Join the Twenty-Three”, 23% stat, 4 pillars, Compass CTA, 28-Day CTA, book block, science+faith, social proof. 18 section headings.
  • `pillars` — “Four Pillars. One System.” framework explorer app.
  • `book` (URL /book/, not in page API list — WooCommerce product page) — book sales page.
  • Pillar landing pages (apps)

  • `foundations`, `communication`, `household`, `repair` — 25–29K each; pillar overview apps (“It’s a practice.” / framework intro).
  • The Compass (diagnostic)

  • `co2` (/compass) — **full Marriage Compass app** (68K source) — the flagship tool.
  • `co2-3` — newer Compass variant (92K) — Connection-focused version.
  • `co21` — Connection Hub 1 (148K) — big content hub app.
  • post `compass` — another Compass app instance (category: Assessment Tools).
  • Content hubs (big apps)

  • `fh2` — Foundations Hub (134K), `fh2-2` — Household Hub (152K), `co21` — Connection Hub 1 (148K), `co2-3` (92K), `rt2` — Repair & Transformation (116K, has audio), `fu2` — Fundamentals Router (63K, “Module Boundary Map” routing tool).
  • 28 Days program

  • `28days` — hub page, **member-gated** (“available to DUO members only”).
  • `28d` — the 28 Days program app (75K) — full curriculum engine.
  • Commerce / account

  • `shop`, `cart`, `checkout`, `my-account`, `login` (login-4), `register` — standard WooCommerce + custom register form with subscription.
  • Legacy

  • `28d` (id 2826, “28 Days – done”) — old program version (79K) — **retire candidate**.
  • 2.2 The custom React apps — functional fingerprint

    `co2` Compass68K12-dimension diagnostic, partner A/B, zones, flight plan (§2.4)
    `28d`75K28-day program engine: 28 sections, prep/shared/carry steps, pace options (Daily/Weeks), progress in localStorage (§2.5)
    `fu2` Fundamentals Router63K“Where Does It Hurt?” routing — Module Boundary Map, diagnostics, pattern matching, module integrity
    `fh2` / `fh2-2` / `co21` / `co2-3` / `rt2`92–152KPillar content hubs: entries with Definition / Why it matters / Signs you’re in this / Try this next / Go deeper / Safety Valve / Faith Layer / Practical Application + “Retake Diagnostic”
    lesson posts (ss1, dp1, db1, cs11, hc1, lc1, mf1, dh1, etc.)56–60K eachInteractive lesson apps: hook question → symptom picker → routing → content → Script → Apply this → notes + **Capacity Check (90/10)** (§2.6)
    `pillars`27KFramework explorer (4 pillars, one system)
    pillar landers (foundations/communication/household/repair)25–29KPillar intro apps
    `home-3`4KSmall chart widget (Compass Rose radar) on the landing page

    Key structural insight: lessons and hubs share one recurring interaction pattern (symptom → route → structured content with a “practice” step). This is directly reusable as the Duo 2.0 learning-component pattern.

    2.3 Posts (67) — the content library

    Categories: Foundations 22, Connection 17, Household 19, Assessment Tools 4, Repair 0 (empty), Private 0 public (exists), Layouts 0. 6 posts uncategorized (legacy 28-days prototype content: Starting Point, The Inner, The Outer, The Repair, The Background, The Design, The Repair Process).

    Most posts are the interactive lesson apps (§2.2). Notable titles: The Season of Survival, The Division of Power, The Mental Load, The Forgiveness Baseline, Negative Sentiment Override, Rupture & Return, Bids: The Small Reaches, The Flooding Protocol, The Exhumation Protocol, The Death of Warmth, Neuroception: Your Body’s Scanner, The Consumer vs. The Covenant, Values Alignment vs. Collision, The Six Hours That Save a Marriage, The Financial Blueprint, Legacy & Shared Meaning, Trajectory, The Mission, The Discovery, Compass.

    The 67 posts = the durable learning-content inventory (titles + full structured content in the data bundle).

    2.4 The Compass engine (fully extracted — `compass_dims.json` + app source)

  • **12 dimensions**, 3 categories (Foundation 4, Connection 4, Household 4 — note: Repair is deliberately absent as a diagnostic category):
  • – Foundation: Trust & Integrity, Shared Values, Starting Point, Environment & Support

    – Connection: Safety & Regulation, Presence & Joy, Attachment Dynamics, Physical Intimacy

    – Household: Financial Stewardship, Shared Mission, Mutual Responsibility, Parenting Partnership

  • Each dimension: 1 question, 3–5 options (values +10…−10 with labels + descriptions), 3 ranges (Strong / Developing / Critical) each with **insight copy + action list**, optional urgency flag and skipIfNoKids logic (Parenting).
  • **Scoring:** both partners answer (Partner A/B); score = avg of both / max possible → percentage.
  • **4 zones:** Flourishing ≥80 (“The Eight”), Growth ≥60 (“The Solid Fifteen”), Stability ≥40 (“The Broader Twenty-Three”), Restoration <40 ("The Seventy-Seven") — each with color + positioning copy. (The "Twenty-Three" brand name derives from the Stability zone / 23% stat.)
  • **Delta Detector:** top-4 dimension gaps between partners (routed to priority dims).
  • **Flight Plan:** 3 priority tracks — (1) Structural Damage (trust/safety <3: "stop here, stabilize first"), (2) The Drift / roommate-phase (presence), (3) The Stall (operational dims) — each with rootCause copy, **timeframe** (e.g. "Weeks 1–8: Stabilize. Months 3–6: Rebuild"), primary module routes (name/url/desc) and secondary routes, plus legacy projection.
  • **Outputs:** Compass Rose radar chart, Top 3 Growth Priorities, Category breakdown, Resource Map → lesson URLs.
  • **Resource URLs are partially broken:** `URLS` map points to short URLs (duo.bz/f, /t, /co, /s…) that resolve to empty pages — the Compass’s “go deeper” links mostly lead nowhere. Fix or replace in 2.0.
  • 2.5 The 28 Days program (fully extracted — `sections28.json` + app source)

    28 sections, 4 phases (Foundation → Structure → Transformation → Sustainability), two paces (Daily(28) / Weeks), each section = prep / shared / carry steps, with: Warm start, “What this looks like in real life”, “Why this works”, Action plan, Expected shift, “If this feels hard”, Common stuck point, Course correction, Progress tracking (localStorage), sprint review, “Reset (local)”.

    The 28 sections:

    1. The Brutal Assessment 2. Identify Your Pattern 3. Stop the Bleeding 4. Clear the Toxins 5. Build the Emotional Bank Account 6. The Weekly Meeting 7. Week 1 Debrief 8. The Invisible Load Audit 9. The Domain Division 10. The First Failure 11. Weekly Meeting 2.0 12. The Stress Spillover Protocol 13. The Parenting Partnership 14. Week 2 Review 15. Drop the Rock 16. Close the Ledger 17. Soften Your Startup 18. The Art of Repair 19. Rebuild Trust 20. Cultivate Hope 21. Week 3 Review 22. Build the Daily Rituals 23. Quarterly Tune-Ups 24. The Relapse Plan 25. Date Night Discipline 26. The Long Obedience 27. The Celebration 28. The Fortress of Joy

    Salvage verdict: the rigid “28 days” container is likely wrong for a subscription, but every exercise/prompt/structure is a building block for personalized journeys (see §4).

    2.6 Lesson app pattern (e.g. `ss1` — The Season of Survival)

    Hook question (“Why does the crisis feel like it’s breaking you?”) → “Pick the symptom that describes your current survival season” → routing → sections: The hard part / In practice / Script / Apply this / Common mistake / Your notes + solo-spouse handling (“If your spouse won’t engage with this” → what to do solo / what to avoid) + The Capacity Check (90/10): each partner declares battery % (self + guessed partner %) — a clever, reusable couples-regulation tool.

    2.7 Commerce & subscriptions

  • **1 WooCommerce product:** “DUO: Enjoying Life Together” — $9.90 regular / **$7.90 sale** (USD), simple product, custom long-description tables (feature comparison). Sold via WooPayments (Stripe). Short copy: “The relationship you want is still possible…”
  • **Subscription:** register form bundles **”28 Days Plan — $19 / 1 month, auto-renew”** with payment details (Paid Member Subscriptions). This is the gating + recurring revenue mechanism.
  • The book itself: *DUO: Enjoying Life Together* (Amazon Kindle/paperback per strategy docs; full-color PDF copy exists in the media library).
  • 2.8 Membership & accounts

  • Paid Member Subscriptions gates `/28days/` (and `/28d/`). Login/register pages custom. **Note:** the 28d app source is served publicly via REST (client-side gate only) — member content exposure risk to flag for 2.0 (server-side gating required).
  • 2.9 Media (129 items)

  • ~38 current (2025–26): book cover, **full-color book PDF** (“DUO Enjoying Life Together – In Color”), duo logo, avatar, 11 infographic-style images (572×1024, named 1–8 + variants), ~25 stock photos (Pexels/Canva).
  • ~91 legacy (2020–21): old theme assets (icons, logos, dashboard mockups, templates) — **retire**.
  • 2.10 Forms & interactions

  • Register (username/email/password + subscription payment), Login, WooCommerce checkout/cart. Klaviyo present in plugin stack (newsletter). No contact form found. Compass/lesson apps capture data in localStorage only (no backend sync) — progress is device-local, a key 2.0 opportunity.
  • 3. Risks & Technical Debt (for the team)

    1. No build step: React apps compiled in-browser via Babel CDN — slow, fragile, no asset pipeline. Rebuild (not port) in 2.0.

    2. Copy-paste sprawl: multiple divergent versions of the same app (Compass in co2/co2-3/compass post; hubs; old 28d) — content has forked. The audit captured the current state; 2.0 must have a single source of truth.

    3. Broken resource links (Compass → short URLs render empty).

    4. Client-side gating on member content (REST exposes app source publicly).

    5. Data silo: all progress/answers in localStorage — no accounts-based state, no cross-device, no analytics.

    6. Legacy cruft: 91 old media files, uncategorized prototype posts, “28 Days – done” page.

    7. Login friction: Jetpack Protect captcha blocks even legitimate logins (we could not reach wp-admin; REST app passwords not configured). If the team needs wp-admin access, create an application password (or whitelist IP).

    4. Classification Matrix (per Marcus’s 5 buckets)

    🔒 KEEP AS-IS (strong copy/assets, port verbatim)

  • Compass dimension questions + option labels/descriptions (all 12 dims — the language is the product)
  • Zone names + positioning copy (“The Twenty-Three”, “The Eight”, “The Solid Fifteen”, “The Seventy-Seven”, Restoration/Growth/Stability/Flourishing)
  • Root-cause + timeframe copy for the 3 priority tracks
  • 28-day section names + prep/shared/carry step copy (all 28)
  • Lesson “Script” blocks + “If your spouse won’t engage” solo guidance
  • Book short description + product feature-comparison tables
  • Homepage funnel copy (hero, 23% stat, pillar sections, CTAs)
  • Book cover, logo, infographic images, full-color book PDF
  • 📚 CONVERT TO STRUCTURED LEARNING CONTENT

  • 67 lesson posts → lesson library (title, hook question, symptom routing, sections, script, apply, common mistake) — each maps to a learning module with metadata (pillar, dimension, pattern)
  • Hub app entries (Definition / Why it matters / Signs / Try this next / Go deeper / Safety Valve / Faith Layer) → content schema
  • 28-day exercises → journey step templates (prep/shared/carry), reusable outside the 28-day container
  • Capacity Check (90/10) → reusable couple activity component
  • 🔧 REBUILD AS DUO APP FUNCTIONALITY (logic, not UI)

  • Compass scoring engine (12 dims, ranges, delta, zones, flight plan, timeline) → Assessment + Relationship Profile + Next Recommendation in the 2.0 loop
  • Fundamentals Router / “Where Does It Hurt?” → routing/next-step engine
  • 28-day engine (progress, pace options, course correction) → Journey engine
  • Partner A/B model → couple profile model
  • localStorage → backend sync (Supabase)
  • 📣 USE ONLY FOR MARKETING

  • Homepage landing sections + copy
  • Pillar overview pages (condensed)
  • Book sales page
  • 23% / Twenty-Three brand narrative
  • Science-and-faith positioning (“Two streams. One destination.”)
  • 🗑️ RETIRE

  • Legacy 28d app (“28 Days – done” page, id 2826)
  • Old Compass variants (compass post, co2-3) once co2 content is reconciled
  • Uncategorized prototype posts (The Inner/The Outer/The Background/The Design/Starting Point-done etc.)
  • 91 legacy 2020–21 media files
  • Broken short-URL resource map (replace with real routes)
  • 5. Mapping to the Duo 2.0 Product Loop

    **Assessment**Compass: 12 dimensions, options, Partner A/B, skipIfNoKids logic
    **Relationship Profile**Zone assignment + delta detector + category breakdown + Compass Rose data
    **Personalized Journey**Flight plan priority tracks (Structural Damage / Drift / Stall) + timeframe copy + primary/secondary module routing; 28-day prep/shared/carry steps as journey templates; fu2 “Where Does It Hurt?” routing
    **Learning + Couple Activities**67 lesson apps (hook → symptom → content → script → apply) + hub entries + Capacity Check + safety valve/faith layer
    **AI Coach***New* — but ground it in the existing diagnostic language (dimension insights, root-cause copy, course-correction patterns from 28d)
    **Progress / Check-ins**28d progress model (done-state, notes, course correction, sprint review, reset) → make it account-backed
    **Next Recommendation**Flight plan routing + fu2 router + delta-based priorities

    Commerce mapping: WooCommerce book product → pricing/entitlement table; 28 Days Plan $19/mo (PMS) → Duo subscription tiers; WooPayments → Stripe. (Business-data migration, as Marcus said.)

    6. Data Bundle (saved in `duo-audit/`)

  • `pages.json` — all 21 pages, full content
  • `posts_1.json` — all 67 posts, full content
  • `products.json`, `product_cats.json` — WooCommerce
  • `media_1.json` + `media_2.json` — all 129 media items
  • `categories.json`, `tags.json`, `navigation.json`
  • `apps/` — extracted source of every embedded React app (`{slug}.app0.js`) + rendered text (`{slug}.html.txt`)
  • `compass_dims.json` — 12 dimensions, options, ranges, insights, actions
  • `sections28.json` — all 28 program sections (prep/shared/carry)
  • `raw_co2.html` — full Compass page source
  • All data pulled from the live site via public REST API, 2026-08-08.