71 lines
3.6 KiB
Markdown
71 lines
3.6 KiB
Markdown
---
|
||
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 **3a–3e**:
|
||
- 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. |