Skip to content

Master Consolidation Roadmap, 2026-06-08

Single tracker for the multi-workstream consolidation Justin kicked off 2026-06-08: cut subscription cost, consolidate email onto one Workspace, build a finances hub, and tidy Notion. Ties together the detail plans: - subscription-consolidation - email-strategy - finances-app

Status key: ✅ done · 🔄 in progress · ⏳ pending · 🅿️ parked session · 🔒 needs Justin/3rd-party


Workstream A: Email consolidation (5 Workspaces → 1, $70→$18/mo)

Goal: one Google Workspace on justinwieb.com; each brand domain folded in; per-person seats + free aliases + Groups. Reusable tools now in place: forge_mbox_to_gmail.py (mail import), full-power business OAuth (forge_google_user.py user_token("business")) for API-driven aliases/groups/filters/send-as.

Domain Plan Status
shopnovadesign.com (Nova) Retire seat → fold as secondary domain; native send/receive; auto-filter DONE
gusoutdoor.co Fold-and-keep: alias for michael@, shared Group for admin@ (Justin+Michael), DKIM, filter ⏳ tomorrow (needs Michael)
gusthebass.com Fold-and-keep: michael@ primary seat/alias, justin@ alias, DKIM, filter ⏳ tomorrow (needs Michael)
sipnservesociety.com Retire → forward to Krystal; archive mail+Drive; cancel seat ⏳ tomorrow
justinwieb.com The hub / survivor ✅ keeper

Per-domain retire/fold checklist (proven on Nova): Takeout (mail+Drive) → forge cold archive → forge_mbox_to_gmail import → rclone Drive to keeper → aliases/Group via API → DKIM (Justin generates, Claude publishes) → auto-filter via API → re-point logins → cancel/fold seat.

Email cross-cutting

  • Michael's channel Gmails (MichaelWieb11, michaelwieb03, wiebelhausfishing03): forward-a-copy into [email protected] (originals kept) so he has one inbox.
  • DKIM on justinwieb.com + gusthebass.com + gusoutdoor.co (generate in admin, Claude publishes).
  • DMARC ratchet none → quarantine → reject once DKIM live everywhere (Claude via Cloudflare).
  • sipnserve SPF still broken (_spfm ghost) — fix with its ESP include during retire.
  • ✅ SPF fixed: gusthebass, justinwieb, gusoutdoor, shopnova.

Workstream B: Subscription cost reduction (~$243 → ~$20-85/mo)

Item $/mo Plan Status
Nova Workspace seat 8.95 canceled (folded to hub) ✅ saved
Discord Nitro 10.81 cancel (or Nitro Basic) 🔒 Justin (discord.com → Subscriptions)
QuickBooks ×4 71.41 → ERPNext (already on CT 104); reconcile books, then cancel 🔄 ERPNext project
Mailchimp (sipnserve) 28.25 → self-hosted Listmonk + Amazon SES (~$1-2/mo); export list first
Gusto 50.00 review: W2 employees? else downgrade/cancel 🔒 needs headcount answer
Other GWorkspace seats ~ collapse via Workstream A 🔄
Rocket Money 6.00 → finances.justinsforge.com (Workstream C) 🔄
Nabu Casa 6.93 keep ✅ keep

Open decisions: Gusto headcount (W2 vs 1099 vs owner draws); confirm Discord canceled.


Workstream C: finances.justinsforge.com (Rocket Money + spending-plan replacement)

Full plan: finances-app. Being built in the finances session. - 🅿️ Phase 1 foundation: SimpleFIN sync → sqlite → net worth + manual-asset layer + accounts/transactions pages + weekly snapshot + Google-Sheet mirror + import "Wieb Spending Plan" history. - ⏳ Phase 2: recurring detection + monthly breakdown + alerts + coordinator bot query/edit. - ⏳ Phase 3: polish, charts, Krystal sharing. - Justin reports SimpleFIN ("FN") already set up; session needs the setup token.


Workstream D: Notion (original session task)

🅿️ Parked in the notion session. Scope TBD with Justin: per-brand Tasks/Projects DB tweaks, coordinator behavior, property changes, automation. Orient on forge_telegram_inbox_brain.py (real tool registry) before editing. No Notion writes without explicit go.


Cross-cutting infra / follow-ups

  • ✅ Full-power business Google OAuth (Gmail incl. settings/send-as, Drive/Sheets/Docs/Slides, Calendar, Contacts, Tasks, YouTube, Workspace Admin Directory). Per-account scopes in forge_google_user.py.
  • ✅ Dead Calendar OAuth revived (now prefers user_token).
  • Register forge_mbox_to_gmail.py as a canonical forge tool (memory file + MEMORY.md + smoke test) per doctrine.
  • ⏳ Possible: Admin Directory API automation for bulk alias/group/user ops (now unlocked by the OAuth scopes).
  • ⏳ Cloudflare token gained Email Routing + (if added) Tunnel/Access scopes.

Suggested sequence

  1. Tomorrow: gusoutdoor + gusthebass fold-in (with Michael) → sipnserve retire (→ Krystal) + Mailchimp/Listmonk. Email workstream mostly closes.
  2. Parallel: finances session continues Phase 1; notion session when Justin's ready.
  3. After email: DKIM + DMARC enforcement across the hub domains.
  4. Ongoing: QuickBooks→ERPNext reconciliation (its own project, cancel QB after cutover); Gusto + Discord decisions.

Savings tracker

  • Baseline: ~$243.36/mo (~$2,920/yr)
  • Banked so far: Nova seat ~$8.95/mo
  • In flight: Nitro $10.81, QB $71.41, Mailchimp ~$26, Gusto up to $50, Rocket $6, remaining Workspace seats
  • Target: ~$20-85/mo (saving ~$1,900-2,675/yr)

[Claude Code, 2026-06-08]


CURRENT STATUS UPDATE, 2026-06-09 (supersedes above where conflicting)

Done since 2026-06-08

  • Nova Design email FULLY migrated (Google-native fold-in, send-as working, auto-filter, ~$8.95/mo saved).
  • SPF fixed: gusthebass, justinwieb, gusoutdoor.
  • Full-power business Google OAuth live (forge_google_user.py, gmail.settings + admin.directory + youtube etc.) -> API-driven aliases/groups/filters now possible.
  • forge_mbox_to_gmail.py built (mail importer, reusable).
  • DATA LAYER PHASE 1 LIVE (the north star): forge_shopify_oauth + forge_datalayer_db + forge_datalayer_shopify_sync; Nova synced (18 prod / 3372 orders / 3111 customers / $125K revenue); AI product email generated from live data. Plan: forge-data-layer-2026-06-09.md.
  • Strategic principle saved: feedback_ai_native_tool_selection.md (build/connect vs buy).

Decisions still needed from Justin (the unblockers)

  1. Gusto: W2 employees, 1099 contractors, or owner draws? (keep/downgrade/cut $50)
  2. Discord Nitro: confirm canceled? ($10.81)
  3. Krystal/sipnserve: paid seat vs free Gmail+relay; transfer the existing sipnserve Workspace billing to her?
  4. gusoutdoor admin@: do Shopify/Amazon log in via GOOGLE sign-in? (Group=free vs shared-mailbox=seat)
  5. Gus Workspaces seat inventory (gusthebass $17.91, gusoutdoor $25.20) -> tells if fold-in saves $.
  6. Email marketing path: Omnisend (~$30, keeps Shopify flows) vs AI-native build vs Listmonk-per-brand. Does Gus Outdoor rely on Klaviyo automated flows?

Build queue (Claude executes)

  • Email: gusoutdoor+gusthebass fold-in (w/ Michael), sipnserve, Michael channel-Gmail forwards, DKIM on 3 keepers + DMARC ratchet, send@ bulk architecture.
  • Data layer: identity resolution, roll to Gus Outdoor + brands, ESP + ERPNext connectors, sync timers, coordinator bot tools, datalayer.justinsforge.com dashboard, the real email engine (better design).
  • Cleanups: register forge_mbox_to_gmail + forge_shopify_oauth + forge_datalayer_*; narrow Nova Shopify token scope (came back full read+write, only need reads).
  • Parked sessions: finances.justinsforge.com (Phase 1), Notion tasks/coordinator.
  • QuickBooks -> ERPNext (own project; reconcile then cancel QB).