wiki-vault/Sources/Venture/pbs-membership-platform-overview.md

71 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
created: '2026-06-12'
path: Sources/Venture
project: pbs-membership-platform-overview
tags:
- pbs
- sunnie
- membership
- garden
type: project-plan
---
## Goal
Single source of truth for the **big picture** of the PBS Membership Platform — the initiative to evolve plantbasedsoutherner.com from a content site into a full plant-based lifestyle platform. This document orients; it does not duplicate phase-level detail.
**Read this first** at the start of any membership planning session, then drill into the specific phase doc you're working on.
### End-State Vision
A full plant-based lifestyle platform powered by a standalone Flask backend (**the Sunflower Garden**) running alongside WordPress. WordPress owns identity; the Garden owns membership features. Free tier first, paid tiers later.
The platform is delivered as four Lines of Effort (see Phases). Beyond the LOEs sit two **horizon goals** — not yet scoped, intentionally past the current roadmap:
- A **companion app**
- A **custom LLM** trained on plant-based cooking knowledge
These are direction, not plans. They exist here so the roadmap remembers where it's ultimately pointed.
## Locked Decisions
These architectural decisions are settled and inherited by every LOE:
- **WordPress owns identity, the Garden owns features.** Bridge = validated WordPress session + read-only access to `wp_posts`.
- **The Garden is a standalone Flask app in its own container**, separate from `pbs-hub`. Shared MySQL server; no shared application tables or logic.
- **Database: `pbs_garden`**, with a generic `user_interactions` table serving all interaction types.
- **Auth: WordPress validates its own cookie** (Option 2) via an internal-only endpoint. Secrets stay sealed in WordPress; ~5 min per-session cache.
- **Tiers are WordPress `roles[]`** — no separate tier field, no second source of truth.
- **Garden lives at `/the-garden/`**, Traefik path-routed, and owns its own visual identity (Option D — intentionally distinct from the main site).
## Open Items
None at drafting — this is the originating roadmap.
## Phases
### The Four Lines of Effort
| LOE | Project |
|-----|---------|
| 1 | Recipe Saving |
| 2 | Weekly Meal Plan Viewer |
| 3 | Whole Food Diversity Tracker |
| 4 | User Profiles & Preferences |
**Why this order:** the LOEs are sequenced not only by priority but because each teaches skills that compound into the next. LOE 1 is foundational — it establishes the shared membership infrastructure (WordPress-cookie auth, the `user_interactions` table, Flask patterns, and the Garden shell) that every later LOE inherits. Build it first and the rest get cheaper.
### LOE 1 — Recipe Saving (phase ladder)
- **Phase 0** — Ultimate Member setup (registration, login, roles, basic profile)
- **Phase 1** — Backend foundation: `pbs_garden` DB, the Garden Flask app, WP-cookie auth endpoint, the four interaction APIs
- **Phase 2** — Save button on WordPress recipe pages (JS widget; needs Phase 1's check endpoint)
- **Phase 3** — Saved-recipes member area = the Garden frontend, broken into **3a3e**:
- 3a shell → 3b saved-recipes card wired to data → 3c detail page → 3d recently-added strip + empty state → 3e coming-soon cards
- **Phase 4** — Collections (named recipe groups)
- **Phase 5** — Polish (mobile, loading states, error handling)
## Notes
- **The Garden naming:** the member area is "the Sunflower Garden," at `/the-garden/`. Community members are Sunnies.
- This doc exists because the big picture was previously scattered across multiple phase docs and chat sessions, forcing every session to reconstruct the map from fragments. This is the map.