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 (
_spfmghost) — 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.pyas 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¶
- Tomorrow: gusoutdoor + gusthebass fold-in (with Michael) → sipnserve retire (→ Krystal) + Mailchimp/Listmonk. Email workstream mostly closes.
- Parallel: finances session continues Phase 1; notion session when Justin's ready.
- After email: DKIM + DMARC enforcement across the hub domains.
- 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)¶
- Gusto: W2 employees, 1099 contractors, or owner draws? (keep/downgrade/cut $50)
- Discord Nitro: confirm canceled? ($10.81)
- Krystal/sipnserve: paid seat vs free Gmail+relay; transfer the existing sipnserve Workspace billing to her?
- gusoutdoor admin@: do Shopify/Amazon log in via GOOGLE sign-in? (Group=free vs shared-mailbox=seat)
- Gus Workspaces seat inventory (gusthebass $17.91, gusoutdoor $25.20) -> tells if fold-in saves $.
- 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).