GrowthKit in Mewayz
The GrowthKit Add-On is a stage-aware growth playbook with a CRM pipeline and goal tracking, for partners, white-label resellers, and tenants.
Mewayz-original module — no Mewayz upstream. Documentation authored from package source at
packages/mewayz/GrowthKit/.
Introduction
GrowthKit turns the abstract question "how do I grow my Mewayz business?" into a concrete, daily checklist. At signup, the operator runs a one-time wizard that captures their revenue target, currency, audience notes, outreach channels, and weekly activity target. From those answers, GrowthKit selects the right playbook for the operator's current revenue stage — from "blank" (no leads yet) all the way through "operating" (sustainable revenue).
Each day, the Today view surfaces the next three actions the operator should take. As they mark steps complete, GrowthKit advances their progress and (eventually) graduates them to the next stage's playbook. A built-in Pipeline view tracks leads through statuses (new → contacted → demo → proposal → won/lost) so the operator's sales activity feeds the same dashboard.
How To Install The Add-On?
GrowthKit ships always-on for any tenant that has the package installed. There is no "GrowthKit Add-On" toggle inside Add-Ons; the module is gated by a dedicated growthkit middleware that simply checks whether the operator has completed the wizard.
To enable GrowthKit feature-flag-wide, set in .env:
GROWTHKIT_ENABLED=true
GROWTHKIT_CURRENCY=USD
After the feature flag is on, Grow appears in the sidebar for every authenticated operator.
Wizard (First-Run Setup)
When an operator first visits /grow, GrowthKit detects that they have no seller_goals row yet and redirects them to the wizard at /grow/wizard.
The wizard captures:
- Target revenue — The number you're trying to hit (e.g. 5,000)
- Target currency — Defaults to
GROWTHKIT_CURRENCYenv value - Target date — When you want to hit it
- Baseline revenue — Where you are today (defaults to 0)
- Weekly action target — How many growth actions per week you
- Audience note — A short free-text description of who you sell
- Channels — Multi-select from: email, whatsapp, linkedin,
commit to (default 5)
to (e.g. "small dental clinics in the EU")
phone, in_person
Click Save Goal to upsert the seller_goals row (one per seller — re-submitting the wizard updates the existing goal rather than creating a duplicate).
Today View — Daily Playbook
- Navigate to Grow → Today (or just
/grow). - The page is divided into three sections:
- Active playbook header — Shows the playbook name, your
- Next 3 steps — The three highest-priority steps you have
- KPI cards — Pipeline count, demos this period, closed
current stage, and a circular progress bar (% of steps complete).
not yet marked done. Each step has a title, body, an optional template/link, and a Mark Done button.
deals, realized revenue. Numbers come from seller_leads and the wallet ledger.
- Clicking Mark Done POSTs to
/grow/step/donewith the step
ID; the page advances to the next batch.
Pipeline View — Lead CRM
- Navigate to Grow → Pipeline (
/grow/pipeline). - The list shows every lead you've added with: name, company,
- Click + New Lead to add a row. Required: name + status.
email, phone, status, estimated value, and next follow-up date.
Optional: company, email, phone, source, estimated value, next follow-up, free-form notes.
Lead Statuses
GrowthKit ships these statuses:
- new — Just added; no contact yet
- contacted — Reached out at least once
- demo — Demo scheduled or delivered
- proposal — Proposal sent
- won — Closed;
closed_atandclosed_valueare auto-stamped - lost — Closed-lost
Editing a Lead
- Click any row to open the edit drawer.
- Updating status to
wonautomatically stamps theclosed_atand - The
next_followup_atfield is what drives the "follow up"
closed_value fields. (Set the value first — the system reads it as the realized revenue.)
reminders in the Today view's KPI section.
Plan-Tier Limits
GrowthKit enforces a free-tier lead cap of 10 leads via config('growthkit.plan_gates.pipeline_max_free'). Operators on a paid plan have no cap.
Reaching the cap returns a 422 on the "create lead" form with a clear "upgrade your plan to add more leads" message.
Playbooks (How They're Picked)
Playbooks live in the playbooks table, with steps in playbook_steps. Each playbook is tagged with:
seller_type— partner, reseller, or tenantstage— blank, prospecting, first_sale, scaling, operating
The default seeder (TenantPlaybookSeeder) ships five tenant-stage playbooks. The AdapterResolver reads the operator's seller_type (from their account) and current stage (computed from their progress through prior playbooks) and picks the right one.
Operators do not currently switch playbooks manually — GrowthKit auto-graduates them. To force a different playbook, an admin can delete the operator's seller_step_progress rows directly via the database.
Database Tables
The package adds five tables:
playbooks— Playbook definitions (slug, seller_type, stage,playbook_steps— Ordered steps per playbook (slug, title, body,seller_step_progress— Tracks which steps each operator hasseller_leads— Lead pipeline rows (one per lead, scoped toseller_goals— One row per seller; the goal captured by the
name, target_days, etc.)
kind, optional payload)
marked done
seller)
wizard
Permissions
GrowthKit uses ownership filters rather than Spatie permissions — the controllers enforce that an operator can only see and edit their own steps + leads. A 403 is raised if a user attempts to mark a step done that doesn't belong to their active playbook.
Operator Notes
- The wizard runs once per seller. Re-submitting updates the
- When a stage's playbook is complete, the operator graduates;
- Channel choices in the wizard are stored as a JSON array on
- GrowthKit is always-on when the env flag is set — no
existing row.
there is no manual "go to next playbook" button.
seller_goals.channels for use by downstream nudges and reminders.
per-tenant Add-Ons activation.