147 lines
4.7 KiB
Markdown
147 lines
4.7 KiB
Markdown
# Managed Add-on Plans (Marketing + App)
|
|
|
|
**Date:** 2026-01-20
|
|
|
|
## Goals
|
|
- Offer managed services as an optional add-on per site.
|
|
- Keep core SaaS plans unchanged while enabling add-on selection at pricing, signup, and billing.
|
|
- Provide clear separation between **Core Plans** and **Managed Add-ons** in backend, frontend, and billing UI.
|
|
|
|
---
|
|
|
|
## Proposed Managed Add-on Tiers
|
|
- **Managed Lite** — **$100/site/month**
|
|
- **Managed Pro** — **$399/site/month**
|
|
|
|
### Managed Features (shared)
|
|
- Onboarding & setup: site integration, automation schedule, content settings.
|
|
- Monthly SEO content plan: keyword import from library/clustering, topic strategy, content calendar.
|
|
- Content QA & optimization: review queue checks, SEO meta validation, internal link suggestions.
|
|
- Publishing ops: scheduled publishing, status monitoring, retry/failure handling.
|
|
- Reporting: monthly performance + usage summary (credits, content velocity, publishing outcomes).
|
|
- Support & tuning: strategy optimization/tweaks, automation adjustments, issue triage.
|
|
|
|
### Pro extras
|
|
- Proactive monitoring and escalation.
|
|
- Priority response.
|
|
- Expanded strategy iteration (more frequent adjustments).
|
|
|
|
---
|
|
|
|
## Marketing Site (https://igny8.com/pricing)
|
|
|
|
### Layout changes
|
|
1. **Keep Core Plans section unchanged**.
|
|
2. Add a **big + icon** directly below the pricing table.
|
|
3. Add **one single horizontal card** for Managed Add-on:
|
|
- Visible badge: **COMING SOON**
|
|
- Card title: “Managed Add-on (Per Site)”
|
|
- Short summary of major features (1 line)
|
|
- **Toggle switch** inside the card for **Managed Lite / Managed Pro**
|
|
- Show price per site for the selected toggle
|
|
4. No other sections or FAQs added.
|
|
|
|
### Suggested UX copy
|
|
- “Managed Add-on (Per Site) — Coming Soon”
|
|
- “Choose Lite or Pro”
|
|
|
|
---
|
|
|
|
## Signup Page (https://app.igny8.com/signup)
|
|
|
|
### Layout changes
|
|
Add **Step 2: Managed Add-ons (Optional)** after plan selection.
|
|
- Toggle per site: “Add managed services to selected site(s)”
|
|
- If user selects a plan with multiple sites:
|
|
- Show checkboxes for each site slot.
|
|
- Default: none selected.
|
|
- Inline price calculator:
|
|
- “Managed Lite x N sites = $X/mo”
|
|
- “Managed Pro x N sites = $X/mo”
|
|
|
|
### UX notes
|
|
- Keep signup friction low.
|
|
- If user skips add-on, allow adding later from Billing.
|
|
|
|
---
|
|
|
|
## App Billing & Plans (Account → Plans & Billing)
|
|
|
|
### New UI sections
|
|
1. **Current Plan** remains unchanged.
|
|
2. Add **“Managed Add-ons”** section:
|
|
- Show current add-on tier (if any) and assigned sites.
|
|
- Show monthly add-on price and next renewal date.
|
|
3. Add **“Upgrade Add-ons”** tab or sub-panel:
|
|
- Choose Managed Lite/Pro.
|
|
- Assign to site(s).
|
|
- Update monthly total.
|
|
|
|
### Existing users
|
|
- If a user already subscribed to a managed add-on:
|
|
- Display in **Plan** tab summary.
|
|
- Include in billing history and invoice breakdown.
|
|
|
|
---
|
|
|
|
## Backend Model Changes
|
|
|
|
### Option A (Minimal changes in Plan model)
|
|
Add fields to `Plan`:
|
|
- `plan_type` (choices: `core`, `managed`) — distinguishes SaaS vs add-on.
|
|
- `per_site` (bool, default false) — marks managed add-ons.
|
|
- `managed_tier` (optional slug: `lite`, `pro`).
|
|
|
|
Add optional relation to `Account` or `Site`:
|
|
- New model `SiteManagementAddon`:
|
|
- `site` (FK)
|
|
- `plan` (FK to Plan where `plan_type=managed`)
|
|
- `status`, `current_period_start`, `current_period_end`
|
|
- `external_subscription_id`
|
|
|
|
### Option B (Separate ManagedPlan model)
|
|
Create `ManagedPlan` model (clone of Plan fields needed for pricing + name).
|
|
Keep `Plan` for core SaaS only.
|
|
|
|
**Recommendation:** Option A (fewer tables, uses existing pricing pipeline).
|
|
|
|
---
|
|
|
|
## Backend Billing Logic
|
|
- Managed add-ons are **per site**.
|
|
- Create separate Stripe subscription items per site, or a single subscription with quantity = number of managed sites.
|
|
- Billing summary should show:
|
|
- Core plan price
|
|
- Managed add-on subtotal (N sites x price)
|
|
- Total monthly
|
|
|
|
---
|
|
|
|
## Frontend Data Contracts
|
|
|
|
### API additions
|
|
- `GET /api/v1/auth/plans/?type=core` (core plans only)
|
|
- `GET /api/v1/auth/plans/?type=managed` (managed add-ons)
|
|
- `GET /api/v1/account/managed-addons/` (current user add-ons + site assignments)
|
|
- `POST /api/v1/account/managed-addons/` (assign add-on to site(s))
|
|
- `PUT /api/v1/account/managed-addons/{id}/` (upgrade/downgrade add-on tier)
|
|
|
|
---
|
|
|
|
## Pricing Copy (Core Plans)
|
|
Suggested renames to keep consistency:
|
|
- Starter → **Launch**
|
|
- Growth → **Growth** (keep)
|
|
- Scale → **Scale** (keep)
|
|
|
|
---
|
|
|
|
## Rollout Checklist
|
|
- Add plan_type + per_site fields + migration.
|
|
- Add managed add-on seed data (Lite/Pro).
|
|
- Add managed add-on endpoints + serializer filtering.
|
|
- Update pricing page layout (marketing).
|
|
- Update signup flow (managed add-on step).
|
|
- Update billing page (Managed Add-ons section).
|
|
- Update invoices to show core + managed breakdown.
|